Merge topic 'iar-fix-asm-windows'

654c357a05 Tests/RunCMake/IAR: Fix ASM cases for XLINK targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9801
This commit is contained in:
Brad King
2024-09-09 14:02:40 +00:00
committed by Kitware Robot
2 changed files with 50 additions and 41 deletions
+4 -7
View File
@@ -67,13 +67,10 @@ foreach(_iar_toolchain IN LISTS _iar_toolchains)
-DCMAKE_EXE_LINKER_FLAGS=${LINK_OPTS}
)
# FIXME(#26267): ASM tests fail on Windows.
if(NOT CMAKE_HOST_WIN32)
run_toolchain(iar-asm
-DCMAKE_SYSTEM_NAME=Generic
-DCMAKE_ASM_COMPILER=${IAR_ASSEMBLER}
)
endif()
run_toolchain(iar-asm
-DCMAKE_SYSTEM_NAME=Generic
-DCMAKE_ASM_COMPILER=${IAR_ASSEMBLER}
)
run_toolchain(iar-lib
-DCMAKE_SYSTEM_NAME=Generic
+46 -34
View File
@@ -1,41 +1,53 @@
#if defined(__IASM8051__) || defined(__IASM430__)
NAME main
#else
MODULE main
#if !defined(__IAR_SYSTEMS_ASM__)
#error This source file should be assembled by the IAR Assembler.
#endif
PUBLIC main
PUBLIC __iar_program_start
PUBLIC __program_start
#if !defined(__A430__) && \
!(((__TID__ >> 8) & 0x7F) == 32) && \
!(((__TID__ >> 8) & 0x7F) == 90) && \
!defined(__IASMARM__) && \
!defined(__IASMRH850__) && \
!defined(__IASMRISCV__) && \
!defined(__IASMRL78__) && \
!defined(__IASMRX__) && \
!defined(__IASMSTM8__)
#error Unable to detect a supported target architecture.
#endif
NAME main
#if defined(__IASMSTM8__)
EXTERN CSTACK$$Limit
SECTION `.near_func.text`:CODE:NOROOT(0)
#elif defined(__IASMAVR__)
ORG $0
RJMP main
RSEG CODE
#elif defined(__IASM8051__)
ORG 0FFFEh
DC16 main
RSEG RCODE
?cmain:
#elif defined(__IASM430__)
ORG 0FFFEh
DC16 init
RSEG CSTACK
RSEG CODE
init:
MOV #SFE(CSTACK), SP
#else
EXTERN __iar_static_base$$GPREL
SECTION CSTACK:DATA:NOROOT(4)
SECTION `.cstartup`:CODE(2)
CODE
PUBLIC main
PUBLIC __iar_program_start
PUBLIC __program_start
#if defined(__A430__)
ORG 0FFFEh
DC16 init
RSEG CSTACK
RSEG CODE
init: MOV #SFE(CSTACK), SP
RSEG CODE
#elif (((__TID__ >> 8) & 0x7F) == 32)
ORG 0FFFEh ; __A8051__
DC16 main
RSEG RCODE
#elif (((__TID__ >> 8) & 0x7F) == 90)
ORG $0 ; __AAVR__
RJMP main
#elif defined(__IASMARM__) || \
defined(__IASMRH850__) || \
defined(__IASMRISCV__) || \
defined(__IASMRL78__) || \
defined(__IASMRX__)
EXTERN __iar_static_base$$GPREL
SECTION CSTACK:DATA:NOROOT(4)
SECTION `.cstartup`:CODE(2)
CODE
#elif defined(__IASMSTM8__)
EXTERN CSTACK$$Limit
SECTION `.near_func.text`:CODE:NOROOT(0)
#endif
__program_start:
__iar_program_start:
main:
NOP
END
main: NOP
END