diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-07-23 12:36:01 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-07-23 12:36:01 +0200 |
| commit | 9a61392cf92695e8edf00de53b83c1651cb91597 (patch) | |
| tree | f40b49766c9b8084bc72421880edd2b6d84af97b /src | |
| parent | b2c2f7bbd24dec0178af1172c46bbac33f38205b (diff) | |
| download | box64-9a61392cf92695e8edf00de53b83c1651cb91597.tar.gz box64-9a61392cf92695e8edf00de53b83c1651cb91597.zip | |
[325BITS][ARM64_DYNAREC] Improved 66 50-5F opcodes
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_66.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_66.c b/src/dynarec/arm64/dynarec_arm64_66.c index cb1e1c51..3a5d0e5c 100644 --- a/src/dynarec/arm64/dynarec_arm64_66.c +++ b/src/dynarec/arm64/dynarec_arm64_66.c @@ -359,37 +359,37 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin break; case 0x60: if(rex.is32bits) { - INST_NAME("PUSHA 16 (32bits)"); + INST_NAME("PUSHA 16bits (32bits)"); MOVw_REG(x1, xRSP); - STRH_S9_preindex(xRAX, xRSP, -2); - STRH_S9_preindex(xRCX, xRSP, -2); - STRH_S9_preindex(xRDX, xRSP, -2); - STRH_S9_preindex(xRBX, xRSP, -2); - STRH_S9_preindex(x1, xRSP, -2); - STRH_S9_preindex(xRBP, xRSP, -2); - STRH_S9_preindex(xRSI, xRSP, -2); - STRH_S9_preindex(xRDI, xRSP, -2); + PUSH1_16(xRAX); + PUSH1_16(xRCX); + PUSH1_16(xRDX); + PUSH1_16(xRBX); + PUSH1_16(x1); + PUSH1_16(xRBP); + PUSH1_16(xRSI); + PUSH1_16(xRDI); } else { DEFAULT; } break; case 0x61: if(rex.is32bits) { - INST_NAME("POPA 16 (32bits)"); - LDRH_S9_postindex(x1, xRSP, 2); + INST_NAME("POPA 16bits (32bits)"); + POP1_16(x1); BFIw(xRDI, x1, 0, 16); - LDRH_S9_postindex(x1, xRSP, 2); + POP1_16(x1); BFIw(xRSI, x1, 0, 16); - LDRH_S9_postindex(x1, xRSP, 2); + POP1_16(x1); BFIw(xRBP, x1, 0, 16); - LDRH_S9_postindex(x1, xRSP, 2); // RSP ignored - LDRH_S9_postindex(x1, xRSP, 2); + POP1_16(x1); // RSP ignored + POP1_16(x1); BFIw(xRBX, x1, 0, 16); - LDRH_S9_postindex(x1, xRSP, 2); + POP1_16(x1); BFIw(xRDX, x1, 0, 16); - LDRH_S9_postindex(x1, xRSP, 2); + POP1_16(x1); BFIw(xRCX, x1, 0, 16); - LDRH_S9_postindex(x1, xRSP, 2); + POP1_16(x1); BFIw(xRAX, x1, 0, 16); } else { DEFAULT; |