diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_0f.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c index a3e86df2..3547b670 100644 --- a/src/dynarec/arm64/dynarec_arm64_0f.c +++ b/src/dynarec/arm64/dynarec_arm64_0f.c @@ -2148,8 +2148,10 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin RBITxw(x1, ed); // reverse CLZxw(gd, x1); // x2 gets leading 0 == BSF MARK; - CSETw(x1, cEQ); //ZF not set - BFIw(xFlags, x1, F_ZF, 1); + IFX(X_ZF) { + CSETw(x1, cEQ); //ZF not set + BFIw(xFlags, x1, F_ZF, 1); + } break; case 0xBD: INST_NAME("BSR Gd, Ed"); @@ -2164,8 +2166,10 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin SUBxw_U12(gd, gd, rex.w?63:31); NEGxw_REG(gd, gd); // complement MARK; - CSETw(x1, cEQ); //ZF not set - BFIw(xFlags, x1, F_ZF, 1); + IFX(X_ZF) { + CSETw(x1, cEQ); //ZF not set + BFIw(xFlags, x1, F_ZF, 1); + } break; case 0xBE: INST_NAME("MOVSX Gd, Eb"); |