summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/arm/interpreter/armemu.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/core/arm/interpreter/armemu.cpp b/src/core/arm/interpreter/armemu.cpp
index ae865aa72..99fc6c45d 100644
--- a/src/core/arm/interpreter/armemu.cpp
+++ b/src/core/arm/interpreter/armemu.cpp
@@ -6201,10 +6201,15 @@ L_stm_s_takeabort:
6201 6201
6202 if (max < rn_lo) 6202 if (max < rn_lo)
6203 rn_lo = max; 6203 rn_lo = max;
6204 else if (rn_lo < 0)
6205 rn_lo = 0;
6206
6204 if (max < rn_hi) 6207 if (max < rn_hi)
6205 rn_hi = max; 6208 rn_hi = max;
6209 else if (rn_hi < 0)
6210 rn_hi = 0;
6206 6211
6207 state->Reg[rd_idx] = (rn_lo & 0xFFFF) | (rn_hi); 6212 state->Reg[rd_idx] = (rn_lo & 0xFFFF) | ((rn_hi << 16) & 0xFFFF);
6208 return 1; 6213 return 1;
6209 } 6214 }
6210 6215