aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash <mathew1800@gmail.com>2014-12-15 23:48:39 -0500
committerGravatar Lioncash <mathew1800@gmail.com>2014-12-16 00:11:51 -0500
commit4c537992290cf143bd9d4585c164698f1473376d (patch)
tree414799897babc4276ae706d76047d5c344818b04 /src
parent49817e89d9b496be0d38cbf92890d01f94f855b8 (diff)
armemu: Fix lower-bound signed saturation clamping for QADD16/QSUB16.
Diffstat (limited to 'src')
-rw-r--r--src/core/arm/interpreter/armemu.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/arm/interpreter/armemu.cpp b/src/core/arm/interpreter/armemu.cpp
index 8ee8badd..e46b4d15 100644
--- a/src/core/arm/interpreter/armemu.cpp
+++ b/src/core/arm/interpreter/armemu.cpp
@@ -5867,12 +5867,12 @@ L_stm_s_takeabort:
if (lo_result > 0x7FFF)
lo_result = 0x7FFF;
- else if (lo_result < 0x7FFF)
+ else if (lo_result < -0x8000)
lo_result = -0x8000;
if (hi_result > 0x7FFF)
hi_result = 0x7FFF;
- else if (hi_result < 0x7FFF)
+ else if (hi_result < -0x8000)
hi_result = -0x8000;
state->Reg[rd_idx] = (lo_result & 0xFFFF) | ((hi_result & 0xFFFF) << 16);