Skip to content

Commit

Permalink
- fix CASTB opcode implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
dpjudas committed Oct 11, 2018
1 parent fc870fc commit ade6ae2
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions src/scripting/vm/jit_move.cpp
Expand Up @@ -165,23 +165,26 @@ void JitCompiler::EmitCASTB()
{
if (C == CASTB_I)
{
cc.mov(regD[A], regD[B]);
cc.shr(regD[A], 31);
cc.cmp(regD[B], (int)0);
cc.setne(regD[A]);
cc.movzx(regD[A], regD[A].r8Lo()); // not sure if this is needed
}
else if (C == CASTB_F)
{
auto zero = newTempXmmSd();
auto one = newTempInt32();
cc.xorpd(zero, zero);
cc.mov(one, 1);
cc.ucomisd(regF[A], zero);
cc.xor_(regD[A], regD[A]);
cc.ucomisd(regF[B], zero);
cc.setp(regD[A]);
cc.cmovne(regD[A], one);
}
else if (C == CASTB_A)
{
cc.test(regA[A], regA[A]);
cc.test(regA[B], regA[B]);
cc.setne(regD[A]);
cc.movzx(regD[A], regD[A].r8Lo()); // not sure if this is needed
}
else
{
Expand Down

0 comments on commit ade6ae2

Please sign in to comment.