Index: fusl/src/setjmp/aarch64/setjmp.s |
diff --git a/fusl/src/setjmp/aarch64/setjmp.s b/fusl/src/setjmp/aarch64/setjmp.s |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f49288aa1c619bf38ee42d4a11104ac06a171315 |
--- /dev/null |
+++ b/fusl/src/setjmp/aarch64/setjmp.s |
@@ -0,0 +1,24 @@ |
+.global __setjmp |
+.global _setjmp |
+.global setjmp |
+.type __setjmp,@function |
+.type _setjmp,@function |
+.type setjmp,@function |
+__setjmp: |
+_setjmp: |
+setjmp: |
+ // IHI0055B_aapcs64.pdf 5.1.1, 5.1.2 callee saved registers |
+ stp x19, x20, [x0,#0] |
+ stp x21, x22, [x0,#16] |
+ stp x23, x24, [x0,#32] |
+ stp x25, x26, [x0,#48] |
+ stp x27, x28, [x0,#64] |
+ stp x29, x30, [x0,#80] |
+ mov x2, sp |
+ str x2, [x0,#104] |
+ stp d8, d9, [x0,#112] |
+ stp d10, d11, [x0,#128] |
+ stp d12, d13, [x0,#144] |
+ stp d14, d15, [x0,#160] |
+ mov x0, #0 |
+ ret |