4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-01-21 05:49:19 +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
..
2018-03-14 10:46:32 -05:00
2018-01-17 11:47:30 -06:00
2016-04-04 10:25:27 -05:00
2021-11-15 19:32:23 -05:00
2021-02-09 11:07:59 +01:00
2018-09-06 14:11:45 +02:00
2021-11-15 19:32:23 -05:00
2016-11-22 14:21:35 +01:00
2022-05-04 13:08:10 -04:00
2022-05-29 17:45:52 -04:00
2021-11-15 19:32:23 -05:00
2016-10-25 16:24:05 +02:00
2021-10-27 20:02:06 +02:00
2016-04-04 10:25:29 -05:00
2022-07-13 06:55:46 +02:00