diff options
author | Victor L. Do Nascimento <victor.donascimento@arm.com> | 2022-12-13 17:51:28 +0300 |
---|---|---|
committer | Richard Earnshaw <rearnsha@arm.com> | 2022-12-13 18:50:35 +0300 |
commit | 15ad816dddf836def06cd0330ec0efa9ce50e5bf (patch) | |
tree | 23929bbf18c7bbbaa007508ce326caac4135da22 /COPYING.NEWLIB | |
parent | 90236c3a2cf6eb9aecb6d103612c57db3c14b066 (diff) |
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
Diffstat (limited to 'COPYING.NEWLIB')
-rw-r--r-- | COPYING.NEWLIB | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/COPYING.NEWLIB b/COPYING.NEWLIB index 2d1473639..d54ed293d 100644 --- a/COPYING.NEWLIB +++ b/COPYING.NEWLIB @@ -762,7 +762,7 @@ SUCH DAMAGE. (35) - Arm Ltd - Copyright (c) 2009-2018 Arm Ltd + Copyright (c) 2009-2022 Arm Ltd All rights reserved. Redistribution and use in source and binary forms, with or without |