diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -918,8 +918,10 @@ el2_pagetable: .space PAGE_SIZE -.text -EENTRY(aarch32_sigcode) + .section .rodata, "a", %progbits + .globl aarch32_sigcode + .align 2 +aarch32_sigcode: .word 0xe1a0000d // mov r0, sp .word 0xe2800040 // add r0, r0, #SIGF_UC .word 0xe59f700c // ldr r7, [pc, #12] @@ -927,10 +929,10 @@ .word 0xe59f7008 // ldr r7, [pc, #8] .word 0xef000000 // swi #0 .word 0xeafffffa // b . - 16 -EEND(aarch32_sigcode) .word SYS_sigreturn .word SYS_exit .align 3 + .size aarch32_sigcode, . - aarch32_sigcode aarch32_esigcode: .data .global sz_aarch32_sigcode diff --git a/sys/arm64/arm64/sigtramp.S b/sys/arm64/arm64/sigtramp.S --- a/sys/arm64/arm64/sigtramp.S +++ b/sys/arm64/arm64/sigtramp.S @@ -30,7 +30,10 @@ #include #include -ENTRY(sigcode) + .section .rodata, "a", %progbits + .globl sigcode + .align 2 +sigcode: blr x8 mov x0, sp add x0, x0, #SF_UC @@ -44,9 +47,9 @@ svc 0 b 1b -END(sigcode) /* This may be copied to the stack, keep it 16-byte aligned */ .align 3 + .size sigcode, . - sigcode esigcode: .data