newlib-cygwin/newlib/libc/include
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
..
machine libc: arm: fix setjmp abi non-conformance 2022-12-13 15:50:35 +00:00
rpc ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
ssp ssp: fix wchar.h with -std=c99 2018-03-14 10:46:32 -05:00
sys Cygwin: define FILE as struct __sFILE64, not as __sFILE 2022-12-08 17:16:20 +01:00
_ansi.h ansification: remove _HAVE_STDC 2018-01-17 11:47:30 -06:00
_newlib_version.h Fix _newlib_version.h logic to support building gcc with newlib. 2016-02-25 15:04:19 -05:00
_syslist.h
alloca.h ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
ar.h Use remove-advertising-clause script to edit BSD licenses 2020-01-29 19:03:31 +01:00
argz.h
assert.h ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
complex.h Generally make all 'long double complex' methods available in <complex.h> 2022-11-08 21:38:08 +01:00
cpio.h Add cpio.h 2016-04-04 10:25:27 -05:00
ctype.h Revert "ctype: use less short names in public header" 2021-12-03 10:50:58 +01:00
devctl.h libc/include/newlib.h: Fix C++ compilation issue 2020-11-16 08:15:18 -06:00
dirent.h change _COMPILING_NEWLIB to _LIBC 2021-11-15 19:32:23 -05:00
elf.h Add the Aarch64 SVE specific HWCAP_SVE define 2017-11-22 14:10:37 -05:00
envlock.h ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
envz.h
errno.h
fastmath.h
fcntl.h
fenv.h Add default implementation of fenv.h and all methods 2019-08-09 17:49:16 +02:00
fnmatch.h Feature test macros overhaul: fnmatch.h 2016-03-17 21:08:54 -05:00
ftw.h FTW Port for Newlib 2021-02-09 11:07:59 +01:00
getopt.h newlib: getopt now permutes multi-flag options correctly 2018-06-18 18:45:44 +02:00
glob.h
grp.h Use remove-advertising-clause script to edit BSD licenses 2020-01-29 19:03:31 +01:00
iconv.h ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
ieeefp.h ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
inttypes.h inttypes.h: Use reserved names for function parameters 2021-06-25 16:48:31 -04:00
langinfo.h Rename <xlocale.h> back to <sys/_locale.h> 2019-06-14 10:02:08 +02:00
libgen.h ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
limits.h Include sys/syslimits.h in limits.h 2018-09-06 14:11:45 +02:00
locale.h change _COMPILING_NEWLIB to _LIBC 2021-11-15 19:32:23 -05:00
malloc.h Add prototype to _malloc_lock() and *unlock() to malloc.h, and inlude this from nano-mallocr.c 2018-02-16 12:16:07 +01:00
math.h Aarch32/64: Support __FLT_EVAL_METHOD__ values other than 0, 1, 2 2022-04-11 12:00:16 -04:00
memory.h Provide <memory.h> 2016-11-22 14:21:35 +01:00
ndbm.h Fix ndbm.c build break 2022-05-04 13:08:10 -04:00
newlib.h
paths.h
pthread.h libc: Added prototypes for new POSIX APIs 2021-08-09 10:29:55 +02:00
pwd.h Cygwin: simplify some function names 2022-05-29 17:45:52 -04:00
reent.h change _COMPILING_NEWLIB to _LIBC 2021-11-15 19:32:23 -05:00
regdef.h
regex.h
sched.h sched.h: Declare affinity functions only on targets supporting them 2019-08-12 17:30:20 +02:00
search.h
setjmp.h ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
signal.h ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
spawn.h ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
stdatomic.h sys: clean up empty lines in .c and .h files 2020-10-26 14:18:46 +01:00
stdint.h Provide __intmax_t and __uintmax_t 2016-10-25 16:24:05 +02:00
stdio.h libc: fix fropen/fwopen compile warnings 2022-12-07 13:10:24 +01:00
stdio_ext.h ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
stdlib.h Rename <xlocale.h> back to <sys/_locale.h> 2019-06-14 10:02:08 +02:00
string.h Unconditionally declare strsignal 2021-10-27 20:02:06 +02:00
strings.h Rename <xlocale.h> back to <sys/_locale.h> 2019-06-14 10:02:08 +02:00
tar.h Feature test macros overhaul: tar.h 2016-04-04 10:25:29 -05:00
termios.h
tgmath.h Add missing long double functions to Cygwin 2016-03-29 14:43:55 +02:00
threads.h Import <threads.h> from latest FreeBSD. 2015-10-13 17:52:34 -04:00
time.h libc/time: Move internal newlib tz-structs into own header 2020-10-15 16:59:51 +02:00
unctrl.h Use remove-advertising-clause script to edit BSD licenses 2020-01-29 19:03:31 +01:00
unistd.h
utime.h
utmp.h
wchar.h Add _REENT_STDOUT(ptr) 2022-07-13 06:55:46 +02:00
wctype.h Rename <xlocale.h> back to <sys/_locale.h> 2019-06-14 10:02:08 +02:00
wordexp.h