From 15ad816dddf836def06cd0330ec0efa9ce50e5bf Mon Sep 17 00:00:00 2001 From: "Victor L. Do Nascimento" Date: Tue, 13 Dec 2022 14:51:28 +0000 Subject: 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 --- COPYING.NEWLIB | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'COPYING.NEWLIB') 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 -- cgit v1.2.3