mirror of https://github.com/mgba-emu/mgba.git
ARM: Remove obsolete force-alignment in `bx pc` (fixes #2964)
This commit is contained in:
parent
0d353a740f
commit
87c9d3851e
1
CHANGES
1
CHANGES
|
@ -1,5 +1,6 @@
|
||||||
0.10.3: (Future)
|
0.10.3: (Future)
|
||||||
Emulation fixes:
|
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 Audio: Fix channels 1/2 staying muted if restarted after long silence
|
||||||
- GB Audio: Fix channel 1 restarting if sweep applies after stop (fixes mgba.io/i/2965)
|
- GB Audio: Fix channel 1 restarting if sweep applies after stop (fixes mgba.io/i/2965)
|
||||||
- GB I/O: Read back proper SVBK value after writing 0 (fixes mgba.io/i/2921)
|
- GB I/O: Read back proper SVBK value after writing 0 (fixes mgba.io/i/2921)
|
||||||
|
|
|
@ -401,11 +401,7 @@ DEFINE_INSTRUCTION_THUMB(BL2,
|
||||||
DEFINE_INSTRUCTION_THUMB(BX,
|
DEFINE_INSTRUCTION_THUMB(BX,
|
||||||
int rm = (opcode >> 3) & 0xF;
|
int rm = (opcode >> 3) & 0xF;
|
||||||
_ARMSetMode(cpu, cpu->gprs[rm] & 0x00000001);
|
_ARMSetMode(cpu, cpu->gprs[rm] & 0x00000001);
|
||||||
int misalign = 0;
|
cpu->gprs[ARM_PC] = cpu->gprs[rm] & 0xFFFFFFFE;
|
||||||
if (rm == ARM_PC) {
|
|
||||||
misalign = cpu->gprs[rm] & 0x00000002;
|
|
||||||
}
|
|
||||||
cpu->gprs[ARM_PC] = (cpu->gprs[rm] & 0xFFFFFFFE) - misalign;
|
|
||||||
if (cpu->executionMode == MODE_THUMB) {
|
if (cpu->executionMode == MODE_THUMB) {
|
||||||
currentCycles += ThumbWritePC(cpu);
|
currentCycles += ThumbWritePC(cpu);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue