diff options
author | RSDuck <rsduck@users.noreply.github.com> | 2020-07-25 21:16:23 +0200 |
---|---|---|
committer | RSDuck <rsduck@users.noreply.github.com> | 2020-07-25 21:16:23 +0200 |
commit | af31d25086222678ae80c5b361b8a81e5938fd09 (patch) | |
tree | 234fd8d076fa427572da068925ae3c505fa2e53b /src | |
parent | 8a96dfce18b8de93d8e6d5b21d7fa0ba9bbcab23 (diff) |
fix #672
Diffstat (limited to 'src')
-rw-r--r-- | src/ARMInterpreter_ALU.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ARMInterpreter_ALU.cpp b/src/ARMInterpreter_ALU.cpp index 545667a..2d185b5 100644 --- a/src/ARMInterpreter_ALU.cpp +++ b/src/ARMInterpreter_ALU.cpp @@ -1078,7 +1078,7 @@ void A_QDADD(ARM* cpu) u32 rm = cpu->R[cpu->CurInstr & 0xF]; u32 rn = cpu->R[(cpu->CurInstr >> 16) & 0xF]; - if (rn & 0x40000000) + if (OVERFLOW_ADD(rn, rn, rn<<1)) { rn = (rn & 0x80000000) ? 0x80000000 : 0x7FFFFFFF; cpu->CPSR |= 0x08000000; // CHECKME @@ -1104,7 +1104,7 @@ void A_QDSUB(ARM* cpu) u32 rm = cpu->R[cpu->CurInstr & 0xF]; u32 rn = cpu->R[(cpu->CurInstr >> 16) & 0xF]; - if (rn & 0x40000000) + if (OVERFLOW_ADD(rn, rn, rn<<1)) { rn = (rn & 0x80000000) ? 0x80000000 : 0x7FFFFFFF; cpu->CPSR |= 0x08000000; // CHECKME |