- fixed a typo in the bool cast.

- fixed a few places for unsigned values.
This commit is contained in:
Christoph Oelckers 2016-12-01 09:44:52 +01:00
parent 7688e14bec
commit 44d7d0b5f6
2 changed files with 4 additions and 3 deletions

View file

@ -584,7 +584,7 @@ static ExpEmit EmitKonst(VMFunctionBuilder *build, ExpEmit &emit)
ExpEmit FxVectorValue::Emit(VMFunctionBuilder *build) ExpEmit FxVectorValue::Emit(VMFunctionBuilder *build)
{ {
// no const handling here. Ultimstely it's too rarely used (i.e. the only fully constant vector ever allocated in ZDoom is the 0-vector in a very few places) // no const handling here. Ultimately it's too rarely used (i.e. the only fully constant vector ever allocated in ZDoom is the 0-vector in a very few places)
// and the negatives (excessive allocation of float constants) outweigh the positives (saved a few instructions) // and the negatives (excessive allocation of float constants) outweigh the positives (saved a few instructions)
assert(xyz[0] != nullptr); assert(xyz[0] != nullptr);
assert(xyz[1] != nullptr); assert(xyz[1] != nullptr);
@ -1770,10 +1770,11 @@ FxExpression *FxUnaryNotBitwise::Resolve(FCompileContext& ctx)
{ {
int result = ~static_cast<FxConstant *>(Operand)->GetValue().GetInt(); int result = ~static_cast<FxConstant *>(Operand)->GetValue().GetInt();
FxExpression *e = new FxConstant(result, ScriptPosition); FxExpression *e = new FxConstant(result, ScriptPosition);
e->ValueType = Operand->ValueType == TypeUInt32 ? TypeUInt32 : TypeSInt32;
delete this; delete this;
return e; return e;
} }
ValueType = TypeSInt32; ValueType = Operand->ValueType == TypeUInt32? TypeUInt32 : TypeSInt32;
return this; return this;
} }

View file

@ -443,7 +443,7 @@ begin:
ASSERTD(a); ASSERTF(B); ASSERTD(a); ASSERTF(B);
reg.d[a] = reg.f[B] != 0; reg.d[a] = reg.f[B] != 0;
} }
else if (c == CASTB_A) else if (C == CASTB_A)
{ {
ASSERTD(a); ASSERTA(B); ASSERTD(a); ASSERTA(B);
reg.d[a] = reg.a[B] != nullptr; reg.d[a] = reg.a[B] != nullptr;