about summary refs log tree commit diff stats
path: root/src/dynarec/arm64_next.S
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-06-28 13:19:56 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-06-28 13:19:56 +0200
commit99ba7707f63d906f5e22a44ae2cbbc8dbd5e3f3e (patch)
treea02f388c9f30cdeec9e54bb3118c02cef672bab4 /src/dynarec/arm64_next.S
parentea1ef4e602af2f0e92181b96cff5ffa66186972f (diff)
downloadbox64-99ba7707f63d906f5e22a44ae2cbbc8dbd5e3f3e.tar.gz
box64-99ba7707f63d906f5e22a44ae2cbbc8dbd5e3f3e.zip
[DYNAREC] Added CF opcode and optimized native call
Diffstat (limited to 'src/dynarec/arm64_next.S')
-rwxr-xr-xsrc/dynarec/arm64_next.S9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/dynarec/arm64_next.S b/src/dynarec/arm64_next.S
index 834c1a89..3baae986 100755
--- a/src/dynarec/arm64_next.S
+++ b/src/dynarec/arm64_next.S
@@ -12,13 +12,16 @@
 arm64_next:
     // emu is r0
     // IP address is r1
-    sub     sp,  sp,  (8 * 12)
+    sub     sp,  sp,  (8 * 12 + 16 * 4)
     stp     x0,  x1,  [sp, (8 *  0)]
     stp     x10, x11, [sp, (8 *  2)]
     stp     x12, x13, [sp, (8 *  4)]
     stp     x14, x15, [sp, (8 *  6)]
     stp     x16, x17, [sp, (8 *  8)]
     str     x18, [sp, (8 * 10)]
+    stp     q0, q1, [sp, (8 * 12)]
+    stp     q2, q3, [sp, (8 * 16)]
+
     mov     x2, lr      // "from" is in lr, so put in x2
     // call the function
     bl      LinkNext
@@ -31,7 +34,9 @@ arm64_next:
     ldp     x14, x15, [sp, (8 *  6)]
     ldp     x16, x17, [sp, (8 *  8)]
     ldr     x18, [sp, (8 * 10)]
-    add     sp,  sp, (8 * 12)
+    ldp     q0, q1, [sp, (8 * 12)]
+    ldp     q2, q3, [sp, (8 * 16)]
+    add     sp,  sp, (8 * 12 + 16 * 4)
     // return offset is jump address
     br      x3