summaryrefslogtreecommitdiff
path: root/src/core/arm/interpreter
diff options
context:
space:
mode:
authorGravatar Lioncash2015-01-05 09:10:59 -0500
committerGravatar Lioncash2015-01-05 09:13:41 -0500
commitd00c22c706e76edd1be009faeab69a94cd0d5ef1 (patch)
treec7dff0a7f0e7daf0a9d2973d3ab2df128fe06522 /src/core/arm/interpreter
parentMerge pull request #403 from yuriks/shutdown-system (diff)
downloadyuzu-d00c22c706e76edd1be009faeab69a94cd0d5ef1.tar.gz
yuzu-d00c22c706e76edd1be009faeab69a94cd0d5ef1.tar.xz
yuzu-d00c22c706e76edd1be009faeab69a94cd0d5ef1.zip
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. */