aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Vieira <andre.simoesdiasvieira@arm.com>2024-06-06 16:02:50 +0100
committerAndre Vieira <andre.simoesdiasvieira@arm.com>2024-06-12 15:12:14 +0100
commit448dd002a07aa268c00318066bfe843adebe7292 (patch)
treeed92b5fe41d4bbd4d47102ecf3481b8d316e699c
parent33663c0701a723846527f9bf2ea01d67d7033c0b (diff)
downloadgcc-448dd002a07aa268c00318066bfe843adebe7292.zip
gcc-448dd002a07aa268c00318066bfe843adebe7292.tar.gz
gcc-448dd002a07aa268c00318066bfe843adebe7292.tar.bz2
arm: Add .type and .size to __gnu_cmse_nonsecure_call [PR115360]
This patch adds missing assembly directives to the CMSE library wrapper to call functions with attribute cmse_nonsecure_call. Without the .type directive the linker will fail to produce the correct veneer if a call to this wrapper function is to far from the wrapper itself. The .size was added for completeness, though we don't necessarily have a usecase for it. libgcc/ChangeLog: PR target/115360 * config/arm/cmse_nonsecure_call.S: Add .type and .size directives. (cherry picked from commit c559353af49fe5743d226ac3112a285b27a50f6a)
-rw-r--r--libgcc/config/arm/cmse_nonsecure_call.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/libgcc/config/arm/cmse_nonsecure_call.S b/libgcc/config/arm/cmse_nonsecure_call.S
index 8051365..19bf18a 100644
--- a/libgcc/config/arm/cmse_nonsecure_call.S
+++ b/libgcc/config/arm/cmse_nonsecure_call.S
@@ -33,6 +33,7 @@
#endif
.thumb
+.type __gnu_cmse_nonsecure_call, %function
.global __gnu_cmse_nonsecure_call
__gnu_cmse_nonsecure_call:
#if defined(__ARM_ARCH_8M_MAIN__)
@@ -142,3 +143,4 @@ pop {r5-r7, pc}
#else
#error "This should only be used for armv8-m base- and mainline."
#endif
+.size __gnu_cmse_nonsecure_call, .-__gnu_cmse_nonsecure_call