4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-23 17:19:33 +08:00
Victor L. Do Nascimento 15ad816ddd libc: arm: fix setjmp abi non-conformance
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
2022-12-13 15:50:35 +00:00
..
2022-07-13 06:55:41 +02:00
2022-08-31 15:18:08 -04:00
2022-08-31 15:18:08 -04:00
2022-07-13 06:55:41 +02:00
2022-09-19 15:35:55 -04:00
2022-03-28 23:17:06 -04:00