diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-20 23:33:28 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-20 23:33:28 +0100 |
| commit | cb7c7ad91336ed20541685f2a1020bc7759cd546 (patch) | |
| tree | ec6a2c4431ba3f9a7eb0485da2087ff028ccbff3 /src | |
| parent | bd9cddf21176bd6d627d6e7f7b72f7ac5a9b16ee (diff) | |
| download | box64-cb7c7ad91336ed20541685f2a1020bc7759cd546.tar.gz box64-cb7c7ad91336ed20541685f2a1020bc7759cd546.zip | |
[DYNAREC] Fixed 69 and 6B opcodes (and now IntoTheBreach runs again)
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/dynarec_arm64_00.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/dynarec/dynarec_arm64_00.c b/src/dynarec/dynarec_arm64_00.c index 5f47448f..304a6478 100755 --- a/src/dynarec/dynarec_arm64_00.c +++ b/src/dynarec/dynarec_arm64_00.c @@ -538,29 +538,29 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin GETGD; GETED(4); i64 = F32S; - MOV64xw(x1, i64); + MOV64xw(x4, i64); if(rex.w) { // 64bits imul UFLAG_IF { - SMULH(x3, ed, x1); - MULx(gd, ed, x1); + SMULH(x3, ed, x4); + MULx(gd, ed, x4); UFLAG_OP1(x3); UFLAG_RES(gd); UFLAG_DF(x3, d_imul64); } else { - MULxw(gd, ed, x1); + MULxw(gd, ed, x4); } } else { // 32bits imul UFLAG_IF { - SMULL(gd, ed, x1); + SMULL(gd, ed, x4); UFLAG_RES(gd); LSRx(x3, gd, 32); UFLAG_OP1(x3); UFLAG_DF(x3, d_imul32); MOVw_REG(gd, gd); } else { - MULxw(gd, ed, x1); + MULxw(gd, ed, x4); } } break; @@ -577,29 +577,29 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin GETGD; GETED(1); i64 = F8S; - MOV64xw(x1, i64); + MOV64xw(x4, i64); if(rex.w) { // 64bits imul UFLAG_IF { - SMULH(x3, ed, x1); - MULx(gd, ed, x1); + SMULH(x3, ed, x4); + MULx(gd, ed, x4); UFLAG_OP1(x3); UFLAG_RES(gd); UFLAG_DF(x3, d_imul64); } else { - MULxw(gd, ed, x1); + MULxw(gd, ed, x4); } } else { // 32bits imul UFLAG_IF { - SMULL(gd, ed, x1); + SMULL(gd, ed, x4); UFLAG_RES(gd); LSRx(x3, gd, 32); UFLAG_OP1(x3); UFLAG_DF(x3, d_imul32); MOVw_REG(gd, gd); } else { - MULxw(gd, ed, x1); + MULxw(gd, ed, x4); } } break; |