diff --git a/src/dynarec/dynarec_arm_0f.c b/src/dynarec/dynarec_arm_0f.c index eaf2b6e36c..4f42375492 100755 --- a/src/dynarec/dynarec_arm_0f.c +++ b/src/dynarec/dynarec_arm_0f.c @@ -1731,7 +1731,7 @@ uintptr_t dynarec0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int ninst, break; case 0xBB: INST_NAME("BTC Ed, Gd"); - SETFLAGS(X_CF, SF_SET); + SETFLAGS(X_CF, SF_SUBSET); nextop = F8; GETGD; if((nextop&0xC0)==0xC0) { @@ -1756,7 +1756,7 @@ uintptr_t dynarec0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int ninst, break; case 0xBC: INST_NAME("BSF Gd, Ed"); - SETFLAGS(X_ZF, SF_SET); + SETFLAGS(X_ZF, SF_SUBSET); nextop = F8; GETED; GETGD; @@ -1772,7 +1772,7 @@ uintptr_t dynarec0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int ninst, break; case 0xBD: INST_NAME("BSR Gd, Ed"); - SETFLAGS(X_ZF, SF_SET); + SETFLAGS(X_ZF, SF_SUBSET); nextop = F8; GETED; GETGD; diff --git a/src/dynarec/dynarec_arm_660f.c b/src/dynarec/dynarec_arm_660f.c index 79384572a5..bd6c1b1a9f 100755 --- a/src/dynarec/dynarec_arm_660f.c +++ b/src/dynarec/dynarec_arm_660f.c @@ -1404,7 +1404,7 @@ uintptr_t dynarec660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nins break; case 0xBB: INST_NAME("BTC Ew, Gw"); - SETFLAGS(X_CF, SF_SET); + SETFLAGS(X_CF, SF_SUBSET); nextop = F8; GETGD; // there is an AND below, to 32bits is the same GETEW(x14); @@ -1417,7 +1417,7 @@ uintptr_t dynarec660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nins break; case 0xBC: INST_NAME("BSF Ew,Gw"); - SETFLAGS(X_ZF, SF_SET); + SETFLAGS(X_ZF, SF_SUBSET); nextop = F8; GETEW(x1); // Get EW TSTS_REG_LSL_IMM5(x1, x1, 0); @@ -1433,7 +1433,7 @@ uintptr_t dynarec660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nins break; case 0xBD: INST_NAME("BSR Ew,Gw"); - SETFLAGS(X_ZF, SF_SET); + SETFLAGS(X_ZF, SF_SUBSET); nextop = F8; GETEW(x1); // Get EW TSTS_REG_LSL_IMM5(x1, x1, 0);