newlib-cygwin/newlib/libc/include/machine
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
..
_arc4random.h Add arc4random() etc. from OpenBSD 5.8 2016-03-18 12:33:41 +01:00
_default_types.h Provide __intmax_t and __uintmax_t 2016-10-25 16:24:05 +02:00
_endian.h BSD compatibility for <machine/endian.h> 2016-04-19 16:36:51 +02:00
_time.h Move kernel dependent parts of <sys/time.h> 2016-04-08 11:34:42 +02:00
_types.h 2007-09-07 Patrick Mansfield <patmans@us.ibm.com> 2007-09-07 21:16:25 +00:00
ansi.h
endian.h BSD compatibility for <machine/endian.h> 2016-04-19 16:36:51 +02:00
fastmath.h ansification: remove _HAVE_STDC 2018-01-17 11:47:30 -06:00
ieee.h Revert "sys/types.h: Don't include sys/_stdint.h" 2022-05-04 15:08:44 +02:00
ieeefp.h Aarch32/64: Support __FLT_EVAL_METHOD__ values other than 0, 1, 2 2022-04-11 12:00:16 -04:00
malloc.h
param.h 2004-05-07 Jeff Johnston <jjohnstn@redhat.com> 2004-05-07 20:39:57 +00:00
setjmp-dj.h 2012-03-09 Jeff Johnston <jjohnstn@redhat.com> 2012-03-09 20:26:39 +00:00
setjmp.h libc: arm: fix setjmp abi non-conformance 2022-12-13 15:50:35 +00:00
stdlib.h
termios.h
time.h Add RISC-V port for newlib 2017-08-16 18:00:58 -04:00
types.h Move RTEMS and XMK specific type definitions 2019-02-19 09:06:22 +01:00