diff --git a/src/arm/isa-arm.c b/src/arm/isa-arm.c index e174eb1e8..5ff459814 100644 --- a/src/arm/isa-arm.c +++ b/src/arm/isa-arm.c @@ -663,7 +663,7 @@ DEFINE_INSTRUCTION_ARM(MSRRI, mask &= PSR_USER_MASK | PSR_PRIV_MASK | PSR_STATE_MASK; cpu->spsr.packed = (cpu->spsr.packed & ~mask) | (operand & mask);) -DEFINE_INSTRUCTION_ARM(SWI, ARM_STUB) +DEFINE_INSTRUCTION_ARM(SWI, cpu->board->swi32(cpu->board, opcode & 0xFFFFFF)) #define DECLARE_INSTRUCTION_ARM(EMITTER, NAME) \ EMITTER ## NAME diff --git a/src/gba/gba-bios.c b/src/gba/gba-bios.c index 8c43b32dc..2d7023054 100644 --- a/src/gba/gba-bios.c +++ b/src/gba/gba-bios.c @@ -134,7 +134,7 @@ void GBASwi16(struct ARMBoard* board, int immediate) { } void GBASwi32(struct ARMBoard* board, int immediate) { - GBASwi32(board, immediate >> 16); + GBASwi16(board, immediate >> 16); } static void _unLz77(struct GBAMemory* memory, uint32_t source, uint8_t* dest) {