aboutsummaryrefslogtreecommitdiff
path: root/ChocolArm64/Instruction/ASoftFallback.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ChocolArm64/Instruction/ASoftFallback.cs')
-rw-r--r--ChocolArm64/Instruction/ASoftFallback.cs10
1 files changed, 3 insertions, 7 deletions
diff --git a/ChocolArm64/Instruction/ASoftFallback.cs b/ChocolArm64/Instruction/ASoftFallback.cs
index 3f8ab5e3..6a407baf 100644
--- a/ChocolArm64/Instruction/ASoftFallback.cs
+++ b/ChocolArm64/Instruction/ASoftFallback.cs
@@ -153,13 +153,9 @@ namespace ChocolArm64.Instruction
public static long SMulHi128(long LHS, long RHS)
{
- bool LSign = (LHS < 0);
- bool RSign = (RHS < 0);
-
- long Result = (long)UMulHi128((ulong)(LSign ? -LHS : LHS), (ulong)(RSign ? -RHS : RHS));
-
- if (LSign != RSign && LHS != 0 && RHS != 0)
- return ~Result; //for negative results, hi 64-bits start at 0xFFF... and count back
+ long Result = (long)UMulHi128((ulong)(LHS), (ulong)(RHS));
+ if (LHS < 0) Result -= RHS;
+ if (RHS < 0) Result -= LHS;
return Result;
}