diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-06-28 13:19:56 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-06-28 13:19:56 +0200 |
| commit | 99ba7707f63d906f5e22a44ae2cbbc8dbd5e3f3e (patch) | |
| tree | a02f388c9f30cdeec9e54bb3118c02cef672bab4 /src/dynarec/arm64_next.S | |
| parent | ea1ef4e602af2f0e92181b96cff5ffa66186972f (diff) | |
| download | box64-99ba7707f63d906f5e22a44ae2cbbc8dbd5e3f3e.tar.gz box64-99ba7707f63d906f5e22a44ae2cbbc8dbd5e3f3e.zip | |
[DYNAREC] Added CF opcode and optimized native call
Diffstat (limited to 'src/dynarec/arm64_next.S')
| -rwxr-xr-x | src/dynarec/arm64_next.S | 9 |
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 |