newlib-cygwin/newlib/libc/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
..
aarch64 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
amdgcn amdgcn: Use __builtin_gcn_ in libc/machine/amdgcn/getreent.c 2022-11-22 18:05:34 -05:00
arc newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
arm libc: arm: fix setjmp abi non-conformance 2022-12-13 15:50:35 +00:00
bfin newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
cr16 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
cris Add _REENT_ERRNO(ptr) 2022-07-13 06:55:41 +02:00
crx newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
csky newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
d10v newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
d30v newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
epiphany newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
fr30 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
frv newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
ft32 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
h8300 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
h8500 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
hppa newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
i386 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
i960 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
iq2000 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
lm32 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
m32c newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
m32r newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
m68hc11 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
m68k newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
m88k newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
mep newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
microblaze newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
mips newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
mn10200 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
mn10300 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
moxie newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
msp430 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
mt newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
nds32 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
necv70 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
nios2 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
nvptx newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
or1k newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
powerpc powerpc/setjmp: Fix 64-bit buffer alignment 2022-11-10 16:05:17 +01:00
pru newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
riscv newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
rl78 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
rx newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
sh newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
shared_x86/sys Cygwin: don't export _feinitialise from newlib 2021-04-13 12:55:34 +02:00
sparc newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
spu Add _REENT_IS_NULL() 2022-07-13 06:55:46 +02:00
tic4x newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
tic6x newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
tic80 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
v850 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
visium newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
w65 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
x86_64 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
xc16x newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
xstormy16 newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
z8k newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00
Makefile.inc newlib: libc: merge build up a directory 2022-03-16 21:18:25 -04:00