[dynarmic] write inline better flag seq

This commit is contained in:
lizzie 2025-07-27 19:13:10 +01:00
parent f123d31733
commit edbce61fa9
Signed by untrusted user: Lizzie
GPG key ID: D9E134A23AD395CE

View file

@ -514,24 +514,21 @@ void AxxEmitX64::EmitExclusiveWriteMemoryInline(AxxEmitContext& ctx, IR::Inst* i
conf.recompile_on_exclusive_fastmem_failure, conf.recompile_on_exclusive_fastmem_failure,
}); });
code.cmp(al, 0); code.xor_(status.cvt32(), status.cvt32()); //dep-break
code.test(code.al, code.al);
code.setz(status.cvt8()); code.setz(status.cvt8());
code.movzx(status.cvt32(), status.cvt8());
code.jmp(*end, code.T_NEAR); code.jmp(*end, code.T_NEAR);
}); });
} else { } else {
code.call(wrapped_fn); code.call(wrapped_fn);
code.cmp(al, 0); code.xor_(status.cvt32(), status.cvt32()); //dep-break
code.test(code.al, code.al);
code.setz(status.cvt8()); code.setz(status.cvt8());
code.movzx(status.cvt32(), status.cvt8());
} }
code.L(*end); code.L(*end);
EmitExclusiveUnlock(code, conf, tmp, eax); EmitExclusiveUnlock(code, conf, tmp, eax);
ctx.reg_alloc.DefineValue(inst, status); ctx.reg_alloc.DefineValue(inst, status);
EmitCheckMemoryAbort(ctx, inst); EmitCheckMemoryAbort(ctx, inst);
} }