- fixed: FxUnaryNotBitwise modified the source operand instead of allocating a new one.

This commit is contained in:
Christoph Oelckers 2018-11-16 11:21:51 +01:00 committed by drfrag666
parent c9f389770d
commit 38fe0b2fe1

View file

@ -2066,10 +2066,12 @@ ExpEmit FxUnaryNotBitwise::Emit(VMFunctionBuilder *build)
{
assert(Operand->ValueType->GetRegType() == REGT_INT);
ExpEmit from = Operand->Emit(build);
from.Free(build);
ExpEmit to(build, REGT_INT);
assert(!from.Konst);
// Do it in-place.
build->Emit(OP_NOT, from.RegNum, from.RegNum, 0);
return from;
build->Emit(OP_NOT, to.RegNum, from.RegNum, 0);
return to;
}
//==========================================================================