diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-03-25 17:33:30 +0000 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-03-25 20:23:07 +0000 |
| commit | 0c3d350865b49af33a2a78167dc5365ef0dd1739 (patch) | |
| tree | b5a56b4eeb6013fd5b91af2ba15d61dd3849b368 /src | |
| parent | 65211c94c3433ff0b2a8d1ae40460b88fc42d6d0 (diff) | |
| download | box64-0c3d350865b49af33a2a78167dc5365ef0dd1739.tar.gz box64-0c3d350865b49af33a2a78167dc5365ef0dd1739.zip | |
[RV64_DYNAREC] Fixed GETEDH helper macro, and small optim to F7 /0 /1 opcodes
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_00.c | 2 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_helper.h | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_00.c b/src/dynarec/rv64/dynarec_rv64_00.c index 568cc68b..0305131f 100644 --- a/src/dynarec/rv64/dynarec_rv64_00.c +++ b/src/dynarec/rv64/dynarec_rv64_00.c @@ -1565,7 +1565,7 @@ uintptr_t dynarec64_00(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni case 1: INST_NAME("TEST Ed, Id"); SETFLAGS(X_ALL, SF_SET_PENDING); - GETEDH(x1, 4); + GETED(4); i64 = F32S; emit_test32c(dyn, ninst, rex, ed, i64, x3, x4, x5); break; diff --git a/src/dynarec/rv64/dynarec_rv64_helper.h b/src/dynarec/rv64/dynarec_rv64_helper.h index 32e509b4..8801c88b 100644 --- a/src/dynarec/rv64/dynarec_rv64_helper.h +++ b/src/dynarec/rv64/dynarec_rv64_helper.h @@ -99,13 +99,13 @@ LD(x1, wback, fixedaddress); \ ed = x1; \ } -//GETEDH can use hint for ed, and r1 or r2 for wback (depending on hint). wback is 0 if ed is xEAX..xEDI +//GETEDH can use hint for ed, and x1 or x2 for wback (depending on hint), might also use x3. wback is 0 if ed is xEAX..xEDI #define GETEDH(hint, D) if(MODREG) { \ ed = xRAX+(nextop&7)+(rex.b<<3); \ wback = 0; \ } else { \ SMREAD(); \ - addr = geted(dyn, addr, ninst, nextop, &wback, (hint==x2)?x1:x2, ed, &fixedaddress, rex, NULL, 1, D); \ + addr = geted(dyn, addr, ninst, nextop, &wback, (hint==x2)?x1:x2, (hint==x1)?x1:x3, &fixedaddress, rex, NULL, 1, D); \ LDxw(hint, wback, fixedaddress); \ ed = hint; \ } |