From 8b80cc328f6501119bacfc1c19a1080d493f5093 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 4 Sep 2021 12:19:08 +0200 Subject: [DYNAREC] Fixed (agaim) BTR/BTS/BTC with imm8==0 --- src/dynarec/dynarec_arm64_0f.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/dynarec/dynarec_arm64_0f.c b/src/dynarec/dynarec_arm64_0f.c index 68a68ad3..d8621a4a 100755 --- a/src/dynarec/dynarec_arm64_0f.c +++ b/src/dynarec/dynarec_arm64_0f.c @@ -1340,6 +1340,8 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin u8&=(rex.w?0x3f:0x1f); if(u8) { LSRxw(x4, ed, u8); + } else { + MOVw_REG(x4, ed); } BFIw(xFlags, x4, F_CF, 1); TBNZ_MARK3(x4, 0); // bit already set, jump to next instruction @@ -1366,6 +1368,8 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin u8&=(rex.w?0x3f:0x1f); if(u8) { LSRxw(x4, ed, u8); + } else { + MOVw_REG(x4, ed); } BFIw(xFlags, x4, F_CF, 1); TBZ_MARK3(x4, 0); // bit already clear, jump to next instruction @@ -1392,6 +1396,8 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin u8&=(rex.w?0x3f:0x1f); if(u8) { LSRxw(x4, ed, u8); + } else { + MOVw_REG(x4, ed); } BFIw(xFlags, x4, F_CF, 1); MOV32w(x4, 1); -- cgit 1.4.1