ARM: Remove obsolete force-alignment in `bx pc` (fixes #2964)

This commit is contained in:
Vicki Pfau 2023-06-26 16:14:25 -07:00
parent 200e846b81
commit 491879da95
2 changed files with 2 additions and 5 deletions

View File

@ -6,6 +6,7 @@ Features:
- New unlicensed GB mappers: NT (older types 1 and 2), Li Cheng, GGB-81
- Debugger: Add range watchpoints
Emulation fixes:
- ARM: Remove obsolete force-alignment in `bx pc` (fixes mgba.io/i/2964)
- GB Audio: Fix channels 1/2 staying muted if restarted after long silence
- GB I/O: Read back proper SVBK value after writing 0 (fixes mgba.io/i/2921)
- GB Serialize: Add missing Pocket Cam state to savestates

View File

@ -401,11 +401,7 @@ DEFINE_INSTRUCTION_THUMB(BL2,
DEFINE_INSTRUCTION_THUMB(BX,
int rm = (opcode >> 3) & 0xF;
_ARMSetMode(cpu, cpu->gprs[rm] & 0x00000001);
int misalign = 0;
if (rm == ARM_PC) {
misalign = cpu->gprs[rm] & 0x00000002;
}
cpu->gprs[ARM_PC] = (cpu->gprs[rm] & 0xFFFFFFFE) - misalign;
cpu->gprs[ARM_PC] = cpu->gprs[rm] & 0xFFFFFFFE;
if (cpu->executionMode == MODE_THUMB) {
currentCycles += ThumbWritePC(cpu);
} else {