armclang: Fix assembly build

Using armlang instead of armasm. From now
definitions can be passed to the ASM files
for preprocessing.

Signed-off-by: Dávid Házi <david.hazi@arm.com>
Change-Id: If38c0efaf180e5b16bdfab80863aec6512b0bd26
diff --git a/toolchain_ARMCLANG.cmake b/toolchain_ARMCLANG.cmake
index 3e632da..581bcfd 100644
--- a/toolchain_ARMCLANG.cmake
+++ b/toolchain_ARMCLANG.cmake
@@ -12,7 +12,7 @@
 
 set(CMAKE_C_COMPILER armclang)
 set(CMAKE_CXX_COMPILER armclang)
-set(CMAKE_ASM_COMPILER armasm)
+set(CMAKE_ASM_COMPILER armclang)
 
 set(LINKER_VENEER_OUTPUT_FLAG --import_cmse_lib_out=)
 set(COMPILER_CMSE_FLAG $<$<COMPILE_LANGUAGE:C>:-mcmse>)
@@ -59,25 +59,6 @@
         OR TFM_SYSTEM_PROCESSOR STREQUAL "cortex-m85"))
             string(APPEND CMAKE_SYSTEM_PROCESSOR "+nofp")
     endif()
-
-    string(REGEX REPLACE "\\+nodsp" ".no_dsp" CMAKE_ASM_CPU_FLAG "${CMAKE_SYSTEM_PROCESSOR}")
-    string(REGEX REPLACE "\\+nomve" ".no_mve" CMAKE_ASM_CPU_FLAG "${CMAKE_ASM_CPU_FLAG}")
-    string(REGEX REPLACE "\\+nofp" ".no_fp" CMAKE_ASM_CPU_FLAG "${CMAKE_ASM_CPU_FLAG}")
-else()
-    set(CMAKE_ASM_CPU_FLAG  ${TFM_SYSTEM_ARCHITECTURE})
-
-    # Armasm uses different syntax than armclang for architecture targets
-    string(REGEX REPLACE "\\armv" "" CMAKE_ASM_CPU_FLAG "${CMAKE_ASM_CPU_FLAG}")
-    string(REGEX REPLACE "\\armv" "" CMAKE_ASM_CPU_FLAG "${CMAKE_ASM_CPU_FLAG}")
-
-    # Modifiers are additive instead of subtractive (.fp Vs .no_fp)
-    if (TFM_SYSTEM_DSP)
-        string(APPEND CMAKE_ASM_CPU_FLAG ".dsp")
-    endif()
-
-    if (CONFIG_TFM_FLOAT_ABI STREQUAL "hard")
-        string(APPEND CMAKE_ASM_CPU_FLAG ".fp")
-    endif()
 endif()
 
 # CMAKE_SYSTEM_ARCH is an ARMCLANG CMAKE internal variable, used to set
@@ -131,7 +112,7 @@
     $<$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:CXX>>:-nostdlib>
     $<$<COMPILE_LANGUAGE:C>:-std=c99>
     $<$<COMPILE_LANGUAGE:CXX>:-std=c++11>
-    $<$<COMPILE_LANGUAGE:ASM>:--cpu=${CMAKE_ASM_CPU_FLAG}>
+    $<$<COMPILE_LANGUAGE:ASM>:-masm=armasm>
     $<$<AND:$<COMPILE_LANGUAGE:C>,$<BOOL:${TFM_DEBUG_SYMBOLS}>>:-g>
     $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<BOOL:${TFM_DEBUG_SYMBOLS}>>:-g>
 )
@@ -176,6 +157,7 @@
 if (CMAKE_SYSTEM_PROCESSOR)
     set(CMAKE_C_FLAGS "-mcpu=${CMAKE_SYSTEM_PROCESSOR}")
     set(CMAKE_CXX_FLAGS "-mcpu=${CMAKE_SYSTEM_PROCESSOR}")
+    set(CMAKE_ASM_FLAGS "--target=${CMAKE_ASM_COMPILER_TARGET} -mcpu=${CMAKE_SYSTEM_PROCESSOR}")
     set(CMAKE_C_LINK_FLAGS   "--cpu=${CMAKE_SYSTEM_PROCESSOR}")
     set(CMAKE_CXX_LINK_FLAGS "--cpu=${CMAKE_SYSTEM_PROCESSOR}")
     set(CMAKE_ASM_LINK_FLAGS "--cpu=${CMAKE_SYSTEM_PROCESSOR}")
@@ -196,11 +178,8 @@
     set(CMAKE_CXX_FLAGS "-march=${CMAKE_SYSTEM_ARCH}")
 endif()
 
-set(CMAKE_ASM_FLAGS ${CMAKE_ASM_FLAGS_INIT})
-
 set(BL2_COMPILER_CP_FLAG
-    $<$<COMPILE_LANGUAGE:C>:-mfpu=softvfp>
-    $<$<COMPILE_LANGUAGE:ASM>:--fpu=softvfp>
+    -mfpu=softvfp
 )
 # As BL2 does not use hardware FPU, specify '--fpu=SoftVFP' explicitly to use software
 # library functions for BL2 to override any implicit FPU option, such as '--cpu' option.
@@ -209,8 +188,7 @@
 set(BL2_LINKER_CP_OPTION --fpu=SoftVFP)
 
 set(BL1_COMPILER_CP_FLAG
-    $<$<COMPILE_LANGUAGE:C>:-mfpu=softvfp>
-    $<$<COMPILE_LANGUAGE:ASM>:--fpu=softvfp>
+    -mfpu=softvfp
 )
 set(BL1_LINKER_CP_OPTION --fpu=SoftVFP)
 
@@ -220,8 +198,7 @@
     )
     if (CONFIG_TFM_ENABLE_FP)
         set(COMPILER_CP_FLAG
-            $<$<COMPILE_LANGUAGE:C>:-mfpu=${CONFIG_TFM_FP_ARCH};-mfloat-abi=hard>
-            $<$<COMPILE_LANGUAGE:ASM>:--fpu=${CONFIG_TFM_FP_ARCH_ASM}>
+            -mfpu=${CONFIG_TFM_FP_ARCH};-mfloat-abi=hard
         )
         # armasm and armlink have the same option "--fpu" and are both used to
         # specify the target FPU architecture. So the supported FPU architecture
@@ -230,17 +207,11 @@
     endif()
 else()
     set(COMPILER_CP_FLAG
-        $<$<COMPILE_LANGUAGE:C>:-mfpu=softvfp>
-        $<$<COMPILE_LANGUAGE:ASM>:--fpu=softvfp>
+        -mfpu=softvfp
     )
     set(LINKER_CP_OPTION --fpu=SoftVFP)
 endif()
 
-# Workaround for issues with --depend-single-line with armasm and Ninja
-if (CMAKE_GENERATOR STREQUAL "Ninja")
-    set( CMAKE_DEPFILE_FLAGS_ASM "--depend=<OBJECT>.d")
-endif()
-
 set(CMAKE_C_FLAGS_MINSIZEREL "-Oz -DNDEBUG")
 
 #