- added missing min/max unsigned instructions for the VM.
This commit is contained in:
parent
493ff5f089
commit
7df8245102
4 changed files with 74 additions and 9 deletions
|
|
@ -483,6 +483,44 @@ void JitCompiler::EmitMAX_RK()
|
|||
cc.cmovg(regD[A], rc);
|
||||
}
|
||||
|
||||
void JitCompiler::EmitMINU_RR()
|
||||
{
|
||||
auto rc = CheckRegD(C, A);
|
||||
if (A != B)
|
||||
cc.mov(regD[A], regD[B]);
|
||||
cc.cmp(rc, regD[A]);
|
||||
cc.cmovb(regD[A], rc);
|
||||
}
|
||||
|
||||
void JitCompiler::EmitMINU_RK()
|
||||
{
|
||||
auto rc = newTempInt32();
|
||||
if (A != B)
|
||||
cc.mov(regD[A], regD[B]);
|
||||
cc.mov(rc, asmjit::imm(konstd[C]));
|
||||
cc.cmp(rc, regD[A]);
|
||||
cc.cmovb(regD[A], rc);
|
||||
}
|
||||
|
||||
void JitCompiler::EmitMAXU_RR()
|
||||
{
|
||||
auto rc = CheckRegD(C, A);
|
||||
if (A != B)
|
||||
cc.mov(regD[A], regD[B]);
|
||||
cc.cmp(rc, regD[A]);
|
||||
cc.cmova(regD[A], rc);
|
||||
}
|
||||
|
||||
void JitCompiler::EmitMAXU_RK()
|
||||
{
|
||||
auto rc = newTempInt32();
|
||||
if (A != B)
|
||||
cc.mov(regD[A], regD[B]);
|
||||
cc.mov(rc, asmjit::imm(konstd[C]));
|
||||
cc.cmp(rc, regD[A]);
|
||||
cc.cmova(regD[A], rc);
|
||||
}
|
||||
|
||||
void JitCompiler::EmitABS()
|
||||
{
|
||||
auto srcB = CheckRegD(B, A);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue