diff options
| author | Sintendo <bram.speeckaert@gmail.com> | 2018-06-13 23:02:50 +0200 |
|---|---|---|
| committer | Sintendo <bram.speeckaert@gmail.com> | 2018-06-13 23:02:50 +0200 |
| commit | 78bc9690e2ce72dcea131291974229bc84308b6f (patch) | |
| tree | d16908ae31f0b2077db77b3c5d7b38ab969879cc /Source/Core | |
| parent | 09df03382d3607fdb865c691d58f209e8f5a589a (diff) | |
Eliminate branch in ConvertDoubleToSingle
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/PowerPC/Jit64Common/EmuCodeBlock.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/Source/Core/Core/PowerPC/Jit64Common/EmuCodeBlock.cpp b/Source/Core/Core/PowerPC/Jit64Common/EmuCodeBlock.cpp index 18c78e872d..77cccda463 100644 --- a/Source/Core/Core/PowerPC/Jit64Common/EmuCodeBlock.cpp +++ b/Source/Core/Core/PowerPC/Jit64Common/EmuCodeBlock.cpp @@ -898,10 +898,9 @@ void EmuCodeBlock::ConvertDoubleToSingle(X64Reg dst, X64Reg src) MOVD_xmm(R(RSCRATCH), XMM1); // Check if the double is in the range of valid single subnormal - CMP(16, R(RSCRATCH), Imm16(896)); - FixupBranch NoDenormalize = J_CC(CC_G); - CMP(16, R(RSCRATCH), Imm16(874)); - FixupBranch NoDenormalize2 = J_CC(CC_L); + SUB(16, R(RSCRATCH), Imm16(874)); + CMP(16, R(RSCRATCH), Imm16(896 - 874)); + FixupBranch NoDenormalize = J_CC(CC_A); // Denormalise @@ -927,7 +926,6 @@ void EmuCodeBlock::ConvertDoubleToSingle(X64Reg dst, X64Reg src) FixupBranch end = J(false); // Goto end SetJumpTarget(NoDenormalize); - SetJumpTarget(NoDenormalize2); // Don't Denormalize |
