[libc-commits] [libc] [libc][arm] implement a basic setjmp/longjmp (PR #93220)
Nick Desaulniers via libc-commits
libc-commits at lists.llvm.org
Fri May 31 15:32:27 PDT 2024
nickdesaulniers wrote:
> I know this is titled basic implementation, so these are likely some TODOs for a full implementation:
>
> * Floating point/MVE registers. In all known implementations these are d0-d16.
> * Accounting for security extensions like v8.1-m PACBTI, where the return address may be signed/authenticated, and BTI landing pads may be needed at certain points.
Thanks for the tips! 6bed9ef91184 added some TODOs that I've filed. As @frobtech notes, there's even more that we can be doing here, too.
Looking at Bionic's implementation, it quotes the AAPC32 to claim that only d8-d15 need be preserved?
https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aapcs32.rst#vfp-register-usage-conventions
says d8-d15, q4-q7
https://github.com/llvm/llvm-project/pull/93220
More information about the libc-commits
mailing list