ARM: Fix some disassembly

This commit is contained in:
Vicki Pfau 2022-07-17 15:56:56 -07:00
parent 4d8700ccb7
commit 5db7d95aa2
3 changed files with 6 additions and 0 deletions

View File

@ -50,6 +50,8 @@ Emulation fixes:
- GBA Video: Fix sprite layer priority updating in GL - GBA Video: Fix sprite layer priority updating in GL
Other fixes: Other fixes:
- ARM: Disassemble Thumb mov pseudo-instruction properly - ARM: Disassemble Thumb mov pseudo-instruction properly
- ARM: Disassemble ARM asr/lsr #32 properly
- ARM: Disassemble ARM movs properly
- Core: Don't attempt to restore rewind diffs past start of rewind - Core: Don't attempt to restore rewind diffs past start of rewind
- Core: Fix the runloop resuming after a game has crashed (fixes mgba.io/i/2451) - Core: Fix the runloop resuming after a game has crashed (fixes mgba.io/i/2451)
- Core: Fix crash if library can't be opened - Core: Fix crash if library can't be opened

View File

@ -19,6 +19,9 @@
info->operandFormat |= ARM_OPERAND_SHIFT_REGISTER_3; \ info->operandFormat |= ARM_OPERAND_SHIFT_REGISTER_3; \
} else { \ } else { \
info->op3.shifterImm = (opcode >> 7) & 0x1F; \ info->op3.shifterImm = (opcode >> 7) & 0x1F; \
if (!info->op3.shifterImm && (ARM_SHIFT_ ## OP == ARM_SHIFT_LSR || ARM_SHIFT_ ## OP == ARM_SHIFT_ASR)) { \
info->op3.shifterImm = 32; \
} \
info->operandFormat |= ARM_OPERAND_SHIFT_IMMEDIATE_3; \ info->operandFormat |= ARM_OPERAND_SHIFT_IMMEDIATE_3; \
} }

View File

@ -416,6 +416,7 @@ int ARMDisassemble(const struct ARMInstructionInfo* info, struct ARMCore* cpu, c
case ARM_MN_LSR: case ARM_MN_LSR:
case ARM_MN_MLA: case ARM_MN_MLA:
case ARM_MN_MUL: case ARM_MN_MUL:
case ARM_MN_MOV:
case ARM_MN_MVN: case ARM_MN_MVN:
case ARM_MN_ORR: case ARM_MN_ORR:
case ARM_MN_ROR: case ARM_MN_ROR: