mirror of https://github.com/mgba-emu/mgba.git
ARM7: Fix ARM multiply instructions when PC is a destination register
This commit is contained in:
parent
179f12bf09
commit
32d1f5bbfb
1
CHANGES
1
CHANGES
|
@ -50,6 +50,7 @@ Bugfixes:
|
|||
- GBA: Fix bounds-checking on EEPROM access
|
||||
- ARM7: Make illegal instruction decoding consistent between ARM and Thumb
|
||||
- GBA BIOS: Initialize a variable that may be uninitialized in very rare cases
|
||||
- ARM7: Fix ARM multiply instructions when PC is a destination register
|
||||
Misc:
|
||||
- Qt: Show multiplayer numbers in window title
|
||||
- Qt: Handle saving input settings better
|
||||
|
|
|
@ -327,13 +327,12 @@ static inline void _immediate(struct ARMCore* cpu, uint32_t opcode) {
|
|||
int rdHi = (opcode >> 16) & 0xF; \
|
||||
int rs = (opcode >> 8) & 0xF; \
|
||||
int rm = opcode & 0xF; \
|
||||
UNUSED(rdHi); \
|
||||
if (rdHi == ARM_PC || rd == ARM_PC) { \
|
||||
return; \
|
||||
} \
|
||||
ARM_WAIT_MUL(cpu->gprs[rs]); \
|
||||
BODY; \
|
||||
S_BODY; \
|
||||
if (rd == ARM_PC) { \
|
||||
ARM_WRITE_PC; \
|
||||
})
|
||||
S_BODY;)
|
||||
|
||||
#define DEFINE_MULTIPLY_INSTRUCTION_ARM(NAME, BODY, S_BODY) \
|
||||
DEFINE_MULTIPLY_INSTRUCTION_EX_ARM(NAME, BODY, ) \
|
||||
|
|
Loading…
Reference in New Issue