From 0c3d350865b49af33a2a78167dc5365ef0dd1739 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 25 Mar 2023 17:33:30 +0000 Subject: [RV64_DYNAREC] Fixed GETEDH helper macro, and small optim to F7 /0 /1 opcodes --- src/dynarec/rv64/dynarec_rv64_00.c | 2 +- src/dynarec/rv64/dynarec_rv64_helper.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') 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; \ } -- cgit 1.4.1