diff options
Diffstat (limited to 'src/core/arm/interpreter/armemu.cpp')
| -rw-r--r-- | src/core/arm/interpreter/armemu.cpp | 7 |
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 | ||