mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-11 15:22:16 +00:00
- ptest is a SSE 4.1 instruction
This commit is contained in:
parent
2e383073e8
commit
d88d173b38
1 changed files with 9 additions and 3 deletions
|
@ -708,7 +708,9 @@ void JitCompiler::EmitMULF_RK()
|
||||||
void JitCompiler::EmitDIVF_RR()
|
void JitCompiler::EmitDIVF_RR()
|
||||||
{
|
{
|
||||||
auto label = EmitThrowExceptionLabel(X_DIVISION_BY_ZERO);
|
auto label = EmitThrowExceptionLabel(X_DIVISION_BY_ZERO);
|
||||||
cc.ptest(regF[C], regF[C]);
|
auto zero = newTempXmmSd();
|
||||||
|
cc.xorpd(zero, zero);
|
||||||
|
cc.ucomisd(regF[C], zero);
|
||||||
cc.je(label);
|
cc.je(label);
|
||||||
|
|
||||||
auto rc = CheckRegF(C, A);
|
auto rc = CheckRegF(C, A);
|
||||||
|
@ -748,7 +750,9 @@ static double DoubleModF(double a, double b)
|
||||||
void JitCompiler::EmitMODF_RR()
|
void JitCompiler::EmitMODF_RR()
|
||||||
{
|
{
|
||||||
auto label = EmitThrowExceptionLabel(X_DIVISION_BY_ZERO);
|
auto label = EmitThrowExceptionLabel(X_DIVISION_BY_ZERO);
|
||||||
cc.ptest(regF[C], regF[C]);
|
auto zero = newTempXmmSd();
|
||||||
|
cc.xorpd(zero, zero);
|
||||||
|
cc.ucomisd(regF[C], zero);
|
||||||
cc.je(label);
|
cc.je(label);
|
||||||
|
|
||||||
auto result = newResultXmmSd();
|
auto result = newResultXmmSd();
|
||||||
|
@ -787,7 +791,9 @@ void JitCompiler::EmitMODF_KR()
|
||||||
using namespace asmjit;
|
using namespace asmjit;
|
||||||
|
|
||||||
auto label = EmitThrowExceptionLabel(X_DIVISION_BY_ZERO);
|
auto label = EmitThrowExceptionLabel(X_DIVISION_BY_ZERO);
|
||||||
cc.ptest(regF[C], regF[C]);
|
auto zero = newTempXmmSd();
|
||||||
|
cc.xorpd(zero, zero);
|
||||||
|
cc.ucomisd(regF[C], zero);
|
||||||
cc.je(label);
|
cc.je(label);
|
||||||
|
|
||||||
auto tmp = newTempXmmSd();
|
auto tmp = newTempXmmSd();
|
||||||
|
|
Loading…
Reference in a new issue