diff --git a/include/mgba/internal/arm/decoder-inlines.h b/include/mgba/internal/arm/decoder-inlines.h index 11d41d520..ef474b64d 100644 --- a/include/mgba/internal/arm/decoder-inlines.h +++ b/include/mgba/internal/arm/decoder-inlines.h @@ -27,7 +27,7 @@ static inline bool ARMInstructionIsBranch(enum ARMMnemonic mnemonic) { case ARM_MN_B: case ARM_MN_BL: case ARM_MN_BX: - // TODO: case: ARM_MN_BLX: + case ARM_MN_BLX: return true; default: return false; diff --git a/src/arm/debugger/debugger.c b/src/arm/debugger/debugger.c index e878162f7..dd569ff00 100644 --- a/src/arm/debugger/debugger.c +++ b/src/arm/debugger/debugger.c @@ -61,7 +61,7 @@ static bool ARMDebuggerUpdateStackTraceInternal(struct mDebuggerPlatform* d, uin bool interrupt = false; bool isWideInstruction = ARMDecodeCombined(cpu, &info); - if (!isWideInstruction && info.mnemonic == ARM_MN_BL) { + if (!isWideInstruction && (info.mnemonic == ARM_MN_BL || info.mnemonic == ARM_MN_BLX)) { return false; } if (!ARMTestCondition(cpu, info.condition)) {