- 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
parent 1250eb5323
commit 7cd89fe07b
1 changed files with 5 additions and 3 deletions

View File

@ -2058,10 +2058,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;
}
//==========================================================================