|
|
Message-ID: <20251208174940.949856-1-bill.roberts@arm.com> Date: Mon, 8 Dec 2025 11:44:43 -0600 From: Bill Roberts <bill.roberts@....com> To: musl@...ts.openwall.com Cc: Bill Roberts <bill.roberts@....com> Subject: [RFC 00/14] aarch64: Convert to inline asm Based on previous discussions on enabling PAC and BTI for Aarch64 targets, rather than annotating the existing assembler, use inline assembly and mix of C. Now this has the benefits of: 1. Handling PAC, BTI and GCS. a. prologue and eplilog insertion as needed. b. Adding GNU notes as needed. 2. Adding in the CFI statements as needed. I'd love to get feedback, thanks! Bill Roberts (14): aarch64: drop crt(i|n).s since NO_LEGACY_INITFINI aarch64: rewrite fenv routines in C using inline asm aarch64: rewrite vfork routine in C using inline asm aarch64: rewrite clone routine in C using inline asm aarch64: rewrite __syscall_cp_asm in C using inline asm aarch64: rewrite __unmapself in C using inline asm aarch64: rewrite tlsdesc reoutines in C using inline asm aarch64: rewrite __restore_rt routines in C using inline asm aarch64: rewrite longjmp routines in C using inline asm aarch64: rewrite setjmp routines in C using inline asm aarch64: rewrite sigsetjmp routines in C using inline asm aarch64: rewrite dlsym routine in C using inline asm aarch64: rewrite memcpy routine in C using inline asm aarch64: rewrite memset routine in C using inline asm arch/aarch64/crt_arch.h | 29 ++--- crt/aarch64/crti.s | 15 --- crt/aarch64/crtn.s | 7 -- src/fenv/aarch64/fenv.c | 96 ++++++++++++++++ src/fenv/aarch64/fenv.s | 68 ----------- src/ldso/aarch64/dlsym.c | 11 ++ src/ldso/aarch64/dlsym.s | 6 - src/ldso/aarch64/tlsdesc.c | 50 +++++++++ src/ldso/aarch64/tlsdesc.s | 31 ------ src/process/aarch64/vfork.c | 21 ++++ src/process/aarch64/vfork.s | 9 -- src/setjmp/aarch64/longjmp.c | 39 +++++++ src/setjmp/aarch64/longjmp.s | 23 ---- src/setjmp/aarch64/setjmp.c | 34 ++++++ src/setjmp/aarch64/setjmp.s | 24 ---- src/signal/aarch64/restore.c | 15 +++ src/signal/aarch64/restore.s | 10 -- src/signal/aarch64/sigsetjmp.c | 43 +++++++ src/signal/aarch64/sigsetjmp.s | 21 ---- src/string/aarch64/memcpy.S | 186 ------------------------------- src/string/aarch64/memcpy.c | 168 ++++++++++++++++++++++++++++ src/string/aarch64/memset.S | 115 ------------------- src/string/aarch64/memset.c | 122 ++++++++++++++++++++ src/thread/aarch64/__unmapself.c | 16 +++ src/thread/aarch64/__unmapself.s | 7 -- src/thread/aarch64/clone.c | 44 ++++++++ src/thread/aarch64/clone.s | 31 ------ src/thread/aarch64/syscall_cp.c | 61 ++++++++++ src/thread/aarch64/syscall_cp.s | 32 ------ 29 files changed, 736 insertions(+), 598 deletions(-) delete mode 100644 crt/aarch64/crti.s delete mode 100644 crt/aarch64/crtn.s create mode 100644 src/fenv/aarch64/fenv.c delete mode 100644 src/fenv/aarch64/fenv.s create mode 100644 src/ldso/aarch64/dlsym.c delete mode 100644 src/ldso/aarch64/dlsym.s create mode 100644 src/ldso/aarch64/tlsdesc.c delete mode 100644 src/ldso/aarch64/tlsdesc.s create mode 100644 src/process/aarch64/vfork.c delete mode 100644 src/process/aarch64/vfork.s create mode 100644 src/setjmp/aarch64/longjmp.c delete mode 100644 src/setjmp/aarch64/longjmp.s create mode 100644 src/setjmp/aarch64/setjmp.c delete mode 100644 src/setjmp/aarch64/setjmp.s create mode 100644 src/signal/aarch64/restore.c delete mode 100644 src/signal/aarch64/restore.s create mode 100644 src/signal/aarch64/sigsetjmp.c delete mode 100644 src/signal/aarch64/sigsetjmp.s delete mode 100644 src/string/aarch64/memcpy.S create mode 100644 src/string/aarch64/memcpy.c delete mode 100644 src/string/aarch64/memset.S create mode 100644 src/string/aarch64/memset.c create mode 100644 src/thread/aarch64/__unmapself.c delete mode 100644 src/thread/aarch64/__unmapself.s create mode 100644 src/thread/aarch64/clone.c delete mode 100644 src/thread/aarch64/clone.s create mode 100644 src/thread/aarch64/syscall_cp.c delete mode 100644 src/thread/aarch64/syscall_cp.s -- 2.51.0
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.