As per the arm Procedure Call Standard for the Arm Architecture section 6.1.2 [1], VFP registers s16-s31 (d8-d15, q4-q7) must be preserved across subroutine calls. The current setjmp/longjmp implementations preserve only the core registers, with the jump buffer size too small to store the required co-processor registers. In accordance with the C Library ABI for the Arm Architecture section 6.11 [2], this patch sets _JBTYPE to long long adjusting _JBLEN to 20. It also emits vfp load/store instructions depending on architectural support, predicated at compile time on ACLE feature-test macros. [1] https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aapcs32.rst [2] https://github.com/ARM-software/abi-aa/blob/main/clibabi32/clibabi32.rst |
||
|---|---|---|
| .. | ||
| _arc4random.h | ||
| _default_types.h | ||
| _endian.h | ||
| _time.h | ||
| _types.h | ||
| ansi.h | ||
| endian.h | ||
| fastmath.h | ||
| ieee.h | ||
| ieeefp.h | ||
| malloc.h | ||
| param.h | ||
| setjmp-dj.h | ||
| setjmp.h | ||
| stdlib.h | ||
| termios.h | ||
| time.h | ||
| types.h | ||