Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 May 2023 11:31:16 GMT
From:      Andrew Turner <andrew@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 37c1ef5ac0a2 - main - Move the arm64 sigcode to .rodata
Message-ID:  <202305171131.34HBVG0s000606@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=37c1ef5ac0a2867a59cfbdd73f1970389a7fc8e8

commit 37c1ef5ac0a2867a59cfbdd73f1970389a7fc8e8
Author:     Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2023-05-17 11:00:12 +0000
Commit:     Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2023-05-17 11:28:45 +0000

    Move the arm64 sigcode to .rodata
    
    The kernel doesn't execute this code, it's only ever copied to
    userspace. Move it to .rodata as we don't need to modify it.
    
    Sponsored by:   Arm Ltd
    Differential Revision:  https://reviews.freebsd.org/D39399
---
 sys/arm64/arm64/locore.S   | 8 +++++---
 sys/arm64/arm64/sigtramp.S | 7 +++++--
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S
index e17f897baeab..e26003b6c926 100644
--- a/sys/arm64/arm64/locore.S
+++ b/sys/arm64/arm64/locore.S
@@ -918,8 +918,10 @@ pagetable_end:
 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 @@ EENTRY(aarch32_sigcode)
 	.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
index a9ad10da766c..f1936e695f33 100644
--- a/sys/arm64/arm64/sigtramp.S
+++ b/sys/arm64/arm64/sigtramp.S
@@ -30,7 +30,10 @@
 #include <sys/syscall.h>
 #include <machine/asm.h>
 
-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 @@ ENTRY(sigcode)
 	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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202305171131.34HBVG0s000606>