4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-01-19 12:59:21 +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
..
2020-07-29 06:58:17 +02:00
2020-07-29 06:58:17 +02:00
2017-01-25 13:32:09 +01:00
2020-12-14 16:10:30 -05:00
2017-01-25 13:32:09 +01:00
2017-01-25 13:32:09 +01:00
2015-11-12 12:09:24 +00:00
2015-11-12 12:09:24 +00:00
2015-11-12 12:09:24 +00:00
2015-11-12 12:09:24 +00:00
2017-01-25 13:32:09 +01:00