ARM: Fix disassembling of several S-type instructions (fixes mgba.io/i/1778)

This commit is contained in:
Vicki Pfau 2020-06-09 01:22:17 -07:00
parent ff0b7af48b
commit d61d9ef6a6
2 changed files with 13 additions and 2 deletions

View File

@ -25,12 +25,13 @@ Emulation fixes:
- GBA Video: Fix Hblank timing - GBA Video: Fix Hblank timing
- GBA Video: Fix mosaic objects drawing past the end (fixes mgba.io/i/1702) - GBA Video: Fix mosaic objects drawing past the end (fixes mgba.io/i/1702)
- GBA Video: Fix disabling OBJWIN in GL renderer (fixes mgba.io/i/1759) - GBA Video: Fix disabling OBJWIN in GL renderer (fixes mgba.io/i/1759)
- GBA Video: Add missing parts of 256-color mode 0 mosaic (fixes mgba.io/1701) - GBA Video: Add missing parts of 256-color mode 0 mosaic (fixes mgba.io/i/1701)
- GBA Video: Fix double-size OBJ wrapping in GL renderer (fixes mgba.io/1712) - GBA Video: Fix double-size OBJ wrapping in GL renderer (fixes mgba.io/i/1712)
- SM83: Emulate HALT bug - SM83: Emulate HALT bug
Other fixes: Other fixes:
- 3DS: Fix framelimiter on newer citro3d (fixes mgba.io/i/1771) - 3DS: Fix framelimiter on newer citro3d (fixes mgba.io/i/1771)
- All: Improve export headers (fixes mgba.io/i/1738) - All: Improve export headers (fixes mgba.io/i/1738)
- ARM: Fix disassembling of several S-type instructions (fixes mgba.io/i/1778)
- ARM Debugger: Clear low bit on breakpoint addresses (fixes mgba.io/i/1764) - ARM Debugger: Clear low bit on breakpoint addresses (fixes mgba.io/i/1764)
- CMake: Always use devkitPro toolchain when applicable (fixes mgba.io/i/1755) - CMake: Always use devkitPro toolchain when applicable (fixes mgba.io/i/1755)
- Core: Ensure ELF regions can be written before trying - Core: Ensure ELF regions can be written before trying

View File

@ -343,15 +343,25 @@ int ARMDisassemble(struct ARMInstructionInfo* info, uint32_t pc, char* buffer, i
case ARM_MN_ADD: case ARM_MN_ADD:
case ARM_MN_ADC: case ARM_MN_ADC:
case ARM_MN_AND: case ARM_MN_AND:
case ARM_MN_ASR:
case ARM_MN_BIC: case ARM_MN_BIC:
case ARM_MN_EOR: case ARM_MN_EOR:
case ARM_MN_LSL:
case ARM_MN_LSR:
case ARM_MN_MLA:
case ARM_MN_MOV: case ARM_MN_MOV:
case ARM_MN_MUL:
case ARM_MN_MVN: case ARM_MN_MVN:
case ARM_MN_ORR: case ARM_MN_ORR:
case ARM_MN_ROR:
case ARM_MN_RSB: case ARM_MN_RSB:
case ARM_MN_RSC: case ARM_MN_RSC:
case ARM_MN_SBC: case ARM_MN_SBC:
case ARM_MN_SMLAL:
case ARM_MN_SMULL:
case ARM_MN_SUB: case ARM_MN_SUB:
case ARM_MN_UMLAL:
case ARM_MN_UMULL:
if (info->affectsCPSR && info->execMode == MODE_ARM) { if (info->affectsCPSR && info->execMode == MODE_ARM) {
flags = "s"; flags = "s";
} }