summaryrefslogtreecommitdiff
path: root/src/core/arm/interpreter
diff options
context:
space:
mode:
authorGravatar bunnei2015-01-05 09:59:12 -0500
committerGravatar bunnei2015-01-05 09:59:12 -0500
commit8b1ec1a82a73e38754d1932b24b1c0fd7293e02b (patch)
tree21fe4d3ad291857e6ea1b282b3c41b18d891a00a /src/core/arm/interpreter
parentMerge pull request #407 from Subv/arbiter (diff)
parentdyncom: Implement QADD/QSUB/QDADD/QDSUB (diff)
downloadyuzu-8b1ec1a82a73e38754d1932b24b1c0fd7293e02b.tar.gz
yuzu-8b1ec1a82a73e38754d1932b24b1c0fd7293e02b.tar.xz
yuzu-8b1ec1a82a73e38754d1932b24b1c0fd7293e02b.zip
Merge pull request #418 from lioncash/qd
dyncom: Implement QADD/QSUB/QDADD/QDSUB
Diffstat (limited to 'src/core/arm/interpreter')
-rw-r--r--src/core/arm/interpreter/armsupp.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/core/arm/interpreter/armsupp.cpp b/src/core/arm/interpreter/armsupp.cpp
index eec34143e..68ac2a0ce 100644
--- a/src/core/arm/interpreter/armsupp.cpp
+++ b/src/core/arm/interpreter/armsupp.cpp
@@ -418,22 +418,18 @@ ARMul_NegZero (ARMul_State * state, ARMword result)
418 } 418 }
419} 419}
420 420
421/* Compute whether an addition of A and B, giving RESULT, overflowed. */ 421// Compute whether an addition of A and B, giving RESULT, overflowed.
422 422bool AddOverflow(ARMword a, ARMword b, ARMword result)
423int
424AddOverflow (ARMword a, ARMword b, ARMword result)
425{ 423{
426 return ((NEG (a) && NEG (b) && POS (result)) 424 return ((NEG(a) && NEG(b) && POS(result)) ||
427 || (POS (a) && POS (b) && NEG (result))); 425 (POS(a) && POS(b) && NEG(result)));
428} 426}
429 427
430/* Compute whether a subtraction of A and B, giving RESULT, overflowed. */ 428// Compute whether a subtraction of A and B, giving RESULT, overflowed.
431 429bool SubOverflow(ARMword a, ARMword b, ARMword result)
432int
433SubOverflow (ARMword a, ARMword b, ARMword result)
434{ 430{
435 return ((NEG (a) && POS (b) && POS (result)) 431 return ((NEG(a) && POS(b) && POS(result)) ||
436 || (POS (a) && NEG (b) && NEG (result))); 432 (POS(a) && NEG(b) && NEG(result)));
437} 433}
438 434
439/* Assigns the C flag after an addition of a and b to give result. */ 435/* Assigns the C flag after an addition of a and b to give result. */