aboutsummaryrefslogtreecommitdiff
path: root/newlib/libc/include/machine/setjmp.h
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/include/machine/setjmp.h')
-rw-r--r--newlib/libc/include/machine/setjmp.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/newlib/libc/include/machine/setjmp.h b/newlib/libc/include/machine/setjmp.h
index 102582c..ab820ed 100644
--- a/newlib/libc/include/machine/setjmp.h
+++ b/newlib/libc/include/machine/setjmp.h
@@ -22,7 +22,16 @@ _BEGIN_STD_C
#endif
#if defined(__aarch64__)
-#define _JBLEN 22
+# if defined(__CYGWIN__)
+/*
+ * Windows Arm64 ABI requires saving x19-x28, FP, LR, SP, FPCR, FPSR, d8-d15
+ * and jump address to jmp_buf. On top of that, Cygwin requires saving
+ * TLS stack pointer.
+ */
+# define _JBLEN 25
+# else
+# define _JBLEN 22
+# endif
#define _JBTYPE long long
#endif