This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 1d9e160f97023cde87dbf624cd569239a91e1c8f Author: xiezhanpeng3 <[email protected]> AuthorDate: Wed Nov 12 15:52:03 2025 +0800 toolchain/ghs: add Greenhills compiler support for .type directive for arm-v8r The GreenHills Compiler uses different grammer for the .type directive in asm, this patch adds support for the grammer for arm-v8r. Similar change for arm-v7r was done in pull request #12883. Co-authored-by: Chengdong Wang <[email protected]> Signed-off-by: xiezhanpeng3 <[email protected]> --- arch/arm/src/armv8-r/arm_fpuconfig.S | 4 +++ arch/arm/src/armv8-r/arm_head.S | 32 +++++++++++++++++++++ arch/arm/src/armv8-r/arm_saveusercontext.S | 4 +++ arch/arm/src/armv8-r/arm_vectors.S | 45 ++++++++++++++++++++++++++++++ arch/arm/src/common/gnu/arm_fetchadd.S | 24 ++++++++++++++++ 5 files changed, 109 insertions(+) diff --git a/arch/arm/src/armv8-r/arm_fpuconfig.S b/arch/arm/src/armv8-r/arm_fpuconfig.S index c4a7c342908..2986655fd67 100644 --- a/arch/arm/src/armv8-r/arm_fpuconfig.S +++ b/arch/arm/src/armv8-r/arm_fpuconfig.S @@ -66,7 +66,11 @@ ****************************************************************************/ .globl arm_fpuconfig +#ifdef __ghs__ + .type arm_fpuconfig, $function +#else .type arm_fpuconfig, %function +#endif arm_fpuconfig: diff --git a/arch/arm/src/armv8-r/arm_head.S b/arch/arm/src/armv8-r/arm_head.S index 6d3eec5ff4e..36a5e0a7fba 100644 --- a/arch/arm/src/armv8-r/arm_head.S +++ b/arch/arm/src/armv8-r/arm_head.S @@ -132,7 +132,11 @@ .syntax unified .arm .global __start +#ifdef __ghs__ + .type __start, $function +#else .type __start, #function +#endif __start: /* Get cpuindex, cpu0 continue boot, others wait event from cpu0 */ @@ -275,7 +279,11 @@ __cpu0_start: ***************************************************************************/ .global arm_data_initialize +#ifdef __ghs__ + .type arm_data_initialize, $function +#else .type arm_data_initialize, #function +#endif arm_data_initialize: @@ -354,7 +362,11 @@ arm_data_initialize: ***************************************************************************/ .global hsctlr_initialize +#ifdef __ghs__ + .type hsctlr_initialize, $function +#else .type hsctlr_initialize, #function +#endif hsctlr_initialize: mrc CP15_HSCTLR(r0) /* Get Hyp System Control Register */ @@ -386,7 +398,11 @@ hsctlr_initialize: ***************************************************************************/ .global sctlr_initialize +#ifdef __ghs__ + .type sctlr_initialize, $function +#else .type sctlr_initialize, #function +#endif sctlr_initialize: /* Configure the system control register (see sctrl.h) */ @@ -553,7 +569,11 @@ sctlr_initialize: * end of memory. See g_idle_topstack below. */ +#ifdef __ghs__ + .type .Linitparms, $object +#else .type .Linitparms, %object +#endif .Linitparms: .long _sbss .long _ebss @@ -564,7 +584,11 @@ sctlr_initialize: .long _sys_vector_start #ifdef CONFIG_BOOT_RUNFROMFLASH +#ifdef __ghs__ + .type .Ldatainit, $object +#else .type .Ldatainit, %object +#endif .Ldatainit: .long _eronly /* Where .data defaults are stored in FLASH */ .long _sdata /* Where .data needs to reside in SDRAM */ @@ -572,7 +596,11 @@ sctlr_initialize: #endif #ifdef CONFIG_ARCH_RAMFUNCS +#ifdef __ghs__ + .type .Lfuncinit, $object +#else .type .Lfuncinit, %object +#endif .Lfuncinit: .long _framfuncs /* Where RAM functions are stored in FLASH */ .Lramfuncs: @@ -593,7 +621,11 @@ sctlr_initialize: .section .rodata, "a" .align 4 .globl g_idle_topstack +#ifdef __ghs__ + .type g_idle_topstack, $object +#else .type g_idle_topstack, object +#endif g_idle_topstack: diff --git a/arch/arm/src/armv8-r/arm_saveusercontext.S b/arch/arm/src/armv8-r/arm_saveusercontext.S index c67b0c287e2..b95f5858c65 100644 --- a/arch/arm/src/armv8-r/arm_saveusercontext.S +++ b/arch/arm/src/armv8-r/arm_saveusercontext.S @@ -54,7 +54,11 @@ .globl up_saveusercontext .globl up_saveusercontext +#ifdef __ghs__ + .type up_saveusercontext, $function +#else .type up_saveusercontext, %function +#endif up_saveusercontext: diff --git a/arch/arm/src/armv8-r/arm_vectors.S b/arch/arm/src/armv8-r/arm_vectors.S index 76a601c8c08..f9cf7f94fbe 100644 --- a/arch/arm/src/armv8-r/arm_vectors.S +++ b/arch/arm/src/armv8-r/arm_vectors.S @@ -154,7 +154,11 @@ .globl arm_decodeirq .globl arm_vectorirq +#ifdef __ghs__ + .type arm_vectorirq, $function +#else .type arm_vectorirq, %function +#endif arm_vectorirq: @@ -265,7 +269,11 @@ arm_vectorirq: .globl arm_syscall .globl arm_vectorsvc +#ifdef __ghs__ + .type arm_vectorsvc, $function +#else .type arm_vectorsvc, %function +#endif arm_vectorsvc: @@ -375,7 +383,11 @@ arm_vectorsvc: .globl arm_dataabort .globl arm_vectordata +#ifdef __ghs__ + .type arm_vectordata, $function +#else .type arm_vectordata, %function +#endif arm_vectordata: @@ -466,7 +478,11 @@ arm_vectordata: .globl arm_prefetchabort .globl arm_vectorprefetch +#ifdef __ghs__ + .type arm_vectorprefetch, $function +#else .type arm_vectorprefetch, %function +#endif arm_vectorprefetch: @@ -549,7 +565,11 @@ arm_vectorprefetch: .globl arm_undefinedinsn .globl arm_vectorundefinsn +#ifdef __ghs__ + .type arm_vectorundefinsn, $function +#else .type arm_vectorundefinsn, %function +#endif arm_vectorundefinsn: @@ -631,7 +651,11 @@ arm_vectorundefinsn: .globl arm_decodefiq #endif .globl arm_vectorfiq +#ifdef __ghs__ + .type arm_vectorfiq, $function +#else .type arm_vectorfiq, %function +#endif arm_vectorfiq: #ifdef CONFIG_ARCH_HIPRI_INTERRUPT @@ -728,7 +752,12 @@ arm_vectorfiq: ****************************************************************************/ .globl arm_vectoraddrexcptn +#ifdef __ghs__ + .type arm_vectoraddrexcptn, $function +#else .type arm_vectoraddrexcptn, %function +#endif + arm_vectoraddrexcptn: b arm_vectoraddrexcptn .size arm_vectoraddrexcptn, . - arm_vectoraddrexcptn @@ -742,9 +771,17 @@ arm_vectoraddrexcptn: .balign 8 .globl g_intstackalloc +#ifdef __ghs__ + .type g_intstackalloc, $object +#else .type g_intstackalloc, object +#endif .globl g_intstacktop +#ifdef __ghs__ + .type g_intstacktop, $object +#else .type g_intstacktop, object +#endif g_intstackalloc: .skip ((CONFIG_ARCH_INTERRUPTSTACK + 4) & ~7) @@ -758,9 +795,17 @@ g_intstacktop: #ifdef CONFIG_ARCH_HIPRI_INTERRUPT .globl g_fiqstackalloc +#ifdef __ghs__ + .type g_fiqstackalloc, $object +#else .type g_fiqstackalloc, object +#endif .globl g_fiqstacktop +#ifdef __ghs__ + .type g_fiqstacktop, $object +#else .type g_fiqstacktop, object +#endif g_fiqstackalloc: .skip ((CONFIG_ARCH_INTERRUPTSTACK + 4) & ~7) diff --git a/arch/arm/src/common/gnu/arm_fetchadd.S b/arch/arm/src/common/gnu/arm_fetchadd.S index 122923d6394..79eb592594f 100644 --- a/arch/arm/src/common/gnu/arm_fetchadd.S +++ b/arch/arm/src/common/gnu/arm_fetchadd.S @@ -53,7 +53,11 @@ ****************************************************************************/ .globl up_fetchadd32 +#ifdef __ghs__ + .type up_fetchadd32, $function +#else .type up_fetchadd32, %function +#endif up_fetchadd32: @@ -87,7 +91,11 @@ up_fetchadd32: ****************************************************************************/ .globl up_fetchsub32 +#ifdef __ghs__ + .type up_fetchsub32, $function +#else .type up_fetchsub32, %function +#endif up_fetchsub32: @@ -121,7 +129,11 @@ up_fetchsub32: ****************************************************************************/ .globl up_fetchadd16 +#ifdef __ghs__ + .type up_fetchadd16, $function +#else .type up_fetchadd16, %function +#endif up_fetchadd16: @@ -155,7 +167,11 @@ up_fetchadd16: ****************************************************************************/ .globl up_fetchsub16 +#ifdef __ghs__ + .type up_fetchsub16, $function +#else .type up_fetchsub16, %function +#endif up_fetchsub16: @@ -191,7 +207,11 @@ up_fetchsub16: ****************************************************************************/ .globl up_fetchadd8 +#ifdef __ghs__ + .type up_fetchadd8, $function +#else .type up_fetchadd8, %function +#endif up_fetchadd8: @@ -225,7 +245,11 @@ up_fetchadd8: ****************************************************************************/ .globl up_fetchsub8 +#ifdef __ghs__ + .type up_fetchsub8, $function +#else .type up_fetchsub8, %function +#endif up_fetchsub8:
