diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-11-03 20:01:56 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-11-03 20:01:56 +0100 |
| commit | 08085be36070ba22b9e2e99529826d60d5ba149f (patch) | |
| tree | 500d1b706b6c84b19e42e6eb5d57cbbc66368e02 /src/dynarec/arm64 | |
| parent | 3809866d99b8f8ac8efa3a41d5410906029229b8 (diff) | |
| download | box64-08085be36070ba22b9e2e99529826d60d5ba149f.tar.gz box64-08085be36070ba22b9e2e99529826d60d5ba149f.zip | |
[DYNAREC] Reverted last 2 commit, will use CancelFillblock mecanism instead
Diffstat (limited to 'src/dynarec/arm64')
| -rw-r--r-- | src/dynarec/arm64/arm64_epilog.S | 2 | ||||
| -rw-r--r-- | src/dynarec/arm64/arm64_next.S | 34 |
2 files changed, 13 insertions, 23 deletions
diff --git a/src/dynarec/arm64/arm64_epilog.S b/src/dynarec/arm64/arm64_epilog.S index 62e75590..57f23200 100644 --- a/src/dynarec/arm64/arm64_epilog.S +++ b/src/dynarec/arm64/arm64_epilog.S @@ -7,7 +7,6 @@ .align 4 .global arm64_epilog -.global arm64_epilog_fast arm64_epilog: //update register -> emu stp x10, x11, [x0, (8 * 0)] @@ -19,7 +18,6 @@ arm64_epilog: stp x22, x23, [x0, (8 * 12)] stp x24, x25, [x0, (8 * 14)] stp x26, x27, [x0, (8 * 16)] // put back reg value in emu, including EIP (so x27 must be EIP now) -arm64_epilog_fast: //restore all used register add sp, x28, 0 //vpop {d8-d15} diff --git a/src/dynarec/arm64/arm64_next.S b/src/dynarec/arm64/arm64_next.S index b9b0f2fd..e900fbec 100644 --- a/src/dynarec/arm64/arm64_next.S +++ b/src/dynarec/arm64/arm64_next.S @@ -14,36 +14,28 @@ arm64_next: // emu is r0 // IP address is r1 - sub sp, sp, (8 * 2) + sub sp, sp, (8 * 12) stp x0, x1, [sp, (8 * 0)] - stp x10, x11, [x0, (8 * 0)] - stp x12, x13, [x0, (8 * 2)] - stp x14, x15, [x0, (8 * 4)] - stp x16, x17, [x0, (8 * 6)] - stp x18, x19, [x0, (8 * 8)] - stp x20, x21, [x0, (8 * 10)] - stp x22, x23, [x0, (8 * 12)] - stp x24, x25, [x0, (8 * 14)] - stp x26, x27, [x0, (8 * 16)] + stp x10, x11, [sp, (8 * 2)] + stp x12, x13, [sp, (8 * 4)] + stp x14, x15, [sp, (8 * 6)] + stp x16, x17, [sp, (8 * 8)] + stp x18, x27, [sp, (8 * 10)] // also save x27(rip) to allow change in LinkNext mov x2, x30 // "from" is in lr, so put in x2 - + add x3, sp, 8*11 // x3 is address to change rip // call the function bl LinkNext // preserve return value mov x3, x0 // pop regs ldp x0, x1, [sp, (8 * 0)] - ldp x10, x11, [x0, (8 * 0)] - ldp x12, x13, [x0, (8 * 2)] - ldp x14, x15, [x0, (8 * 4)] - ldp x16, x17, [x0, (8 * 6)] - ldp x18, x19, [x0, (8 * 8)] - ldp x20, x21, [x0, (8 * 10)] - ldp x22, x23, [x0, (8 * 12)] - ldp x24, x25, [x0, (8 * 14)] - ldp x26, x27, [x0, (8 * 16)] - add sp, sp, (8 * 2) + ldp x10, x11, [sp, (8 * 2)] + ldp x12, x13, [sp, (8 * 4)] + ldp x14, x15, [sp, (8 * 6)] + ldp x16, x17, [sp, (8 * 8)] + ldp x18, x27, [sp, (8 * 10)] + add sp, sp, (8 * 12) // return offset is jump address br x3 |