[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