summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorSintendo <bram.speeckaert@gmail.com>2020-04-19 22:55:43 +0200
committerSintendo <bram.speeckaert@gmail.com>2020-04-21 22:06:46 +0200
commitf1c3ab359d8113fb03bb682dc0f0171b17c137fe (patch)
treec4e66bd0db9ab5ca24b6021c7bb8a0fc4594f4ec /Source/Core
parent72fbdf1a6bafe8a01c58deae79fbae44535a34f4 (diff)
Jit64: addx - Deduplicate branches part 2
No functional change, just simplify some repeated logic in the case where we're dealing with exactly one immediate and one simple register when overflow isn't needed.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
index 445f536d11..62cfb48594 100644
--- a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
+++ b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
@@ -1339,13 +1339,11 @@ void Jit64::addx(UGeckoInstruction inst)
{
LEA(32, Rd, MRegSum(Ra.GetSimpleReg(), Rb.GetSimpleReg()));
}
- else if (Ra.IsSimpleReg() && Rb.IsImm() && !inst.OE)
+ else if ((Ra.IsSimpleReg() || Rb.IsSimpleReg()) && (Ra.IsImm() || Rb.IsImm()) && !inst.OE)
{
- LEA(32, Rd, MDisp(Ra.GetSimpleReg(), Rb.SImm32()));
- }
- else if (Rb.IsSimpleReg() && Ra.IsImm() && !inst.OE)
- {
- LEA(32, Rd, MDisp(Rb.GetSimpleReg(), Ra.SImm32()));
+ RCOpArg& Rimm = Ra.IsImm() ? Ra : Rb;
+ RCOpArg& Rreg = Ra.IsImm() ? Rb : Ra;
+ LEA(32, Rd, MDisp(Rreg.GetSimpleReg(), Rimm.SImm32()));
}
else
{