diff --git a/src/dynarec/arm64/dynarec_arm64_660f.c b/src/dynarec/arm64/dynarec_arm64_660f.c index 66b17e6e7..0f2dd1fe4 100644 --- a/src/dynarec/arm64/dynarec_arm64_660f.c +++ b/src/dynarec/arm64/dynarec_arm64_660f.c @@ -924,13 +924,27 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n SETFLAGS(X_CF, SF_SUBSET); GETED(0); GETGD; - MRS_nzcv(x3); - BFIx(x3, xFlags, 29, 1); // set C - MSR_nzcv(x3); // load CC into ARM CF + IFNATIVE_BEFORE(NF_CF) { + if(INVERTED_CARRY_BEFORE) { + if(arm64_flagm) + CFINV(); + else { + MRS_nzcv(x3); + EORx_mask(x3, x3, 1, 35, 0); //mask=1<