x64Emitter: Do not assert-fail on redundant MOVs, instead show an error log

This commit is contained in:
Pierre Bourdon 2014-09-02 10:16:58 +02:00
parent a79ced2fc2
commit e72146d19c

View File

@ -1174,10 +1174,8 @@ void XEmitter::OR (int bits, const OpArg &a1, const OpArg &a2) {WriteNormalOp(t
void XEmitter::XOR (int bits, const OpArg &a1, const OpArg &a2) {WriteNormalOp(this, bits, nrmXOR, a1, a2);} void XEmitter::XOR (int bits, const OpArg &a1, const OpArg &a2) {WriteNormalOp(this, bits, nrmXOR, a1, a2);}
void XEmitter::MOV (int bits, const OpArg &a1, const OpArg &a2) void XEmitter::MOV (int bits, const OpArg &a1, const OpArg &a2)
{ {
#ifdef _DEBUG if (a1.IsSimpleReg() && a2.IsSimpleReg() && a1.GetSimpleReg() == a2.GetSimpleReg())
_assert_msg_(DYNA_REC, !a1.IsSimpleReg() || !a2.IsSimpleReg() || a1.GetSimpleReg() != a2.GetSimpleReg(), "Redundant MOV @ %p - bug in JIT?", ERROR_LOG(DYNA_REC, "Redundant MOV @ %p - bug in JIT?", code);
code);
#endif
WriteNormalOp(this, bits, nrmMOV, a1, a2); WriteNormalOp(this, bits, nrmMOV, a1, a2);
} }
void XEmitter::TEST(int bits, const OpArg &a1, const OpArg &a2) {WriteNormalOp(this, bits, nrmTEST, a1, a2);} void XEmitter::TEST(int bits, const OpArg &a1, const OpArg &a2) {WriteNormalOp(this, bits, nrmTEST, a1, a2);}