build: Add IAR FPU support

Signed-off-by: Dávid Házi <david.hazi@arm.com>
Change-Id: I395609b9f02d928fcf547f3b9072264b2527b57a
diff --git a/platform/ns/toolchain_ns_IARARM.cmake b/platform/ns/toolchain_ns_IARARM.cmake
index 9c99f67..f8d0385 100644
--- a/platform/ns/toolchain_ns_IARARM.cmake
+++ b/platform/ns/toolchain_ns_IARARM.cmake
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2023, Arm Limited. All rights reserved.
+# Copyright (c) 2023-2024, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -42,7 +42,6 @@
         $<$<COMPILE_LANGUAGE:C,CXX>:-D_NO_DEFINITIONS_IN_HEADER_FILES>
         $<$<COMPILE_LANGUAGE:C,CXX>:--diag_suppress=Pe546,Pe940,Pa082,Pa084>
         $<$<COMPILE_LANGUAGE:C,CXX>:--no_path_in_file_macros>
-        "$<$<COMPILE_LANGUAGE:C,CXX,ASM>:SHELL:--fpu none>"
         $<$<AND:$<COMPILE_LANGUAGE:C,CXX,ASM>,$<BOOL:${TFM_DEBUG_SYMBOLS}>,$<CONFIG:Release,MinSizeRel>>:-r>
     )
 endmacro()
@@ -55,7 +54,6 @@
       --semihosting
       --redirect __write=__write_buffered
       --diag_suppress=lp005
-      "SHELL:--fpu none"
     )
 endmacro()
 
@@ -102,6 +100,26 @@
                 " cores with IAR version between 9.20 and 9.32.1")
     endif()
 
+    if (CONFIG_TFM_FLOAT_ABI STREQUAL "hard")
+        if (CONFIG_TFM_ENABLE_FP)
+            set(COMPILER_CP_C_FLAG "--fpu=${CONFIG_TFM_FP_ARCH_ASM}")
+            set(COMPILER_CP_ASM_FLAG "--fpu=${CONFIG_TFM_FP_ARCH_ASM}")
+            # armasm and armlink have the same option "--fpu" and are both used to
+            # specify the target FPU architecture. So the supported FPU architecture
+            # names can be shared by armasm and armlink.
+            set(LINKER_CP_OPTION "--fpu=${CONFIG_TFM_FP_ARCH_ASM}")
+        endif()
+    else()
+        set(COMPILER_CP_C_FLAG   "--fpu=none")
+        set(COMPILER_CP_ASM_FLAG "--fpu=none")
+        set(LINKER_CP_OPTION     "--fpu=none")
+    endif()
+
+    string(APPEND CMAKE_C_FLAGS " " ${COMPILER_CP_C_FLAG})
+    string(APPEND CMAKE_ASM_FLAGS " " ${COMPILER_CP_ASM_FLAG})
+    string(APPEND CMAKE_C_LINK_FLAGS " " ${LINKER_CP_OPTION})
+    string(APPEND CMAKE_ASM_LINK_FLAGS " " ${LINKER_CP_OPTION})
+
 endmacro()
 
 # Configure environment for the compiler setup run by cmake at the first