gdb: Improve stepping

This commit is contained in:
Coxxs
2025-08-11 15:06:46 -05:00
committed by KeatonTheBot
parent ef72e9b790
commit 7fd01214cf
3 changed files with 26 additions and 106 deletions
@@ -142,6 +142,12 @@ namespace ARMeilleure.Instructions
public static void EmitCall(ArmEmitterContext context, ulong immediate)
{
if (context.IsSingleStep)
{
context.Return(Const(immediate));
return;
}
bool isRecursive = immediate == context.EntryAddress;
if (isRecursive)
@@ -156,12 +162,24 @@ namespace ARMeilleure.Instructions
public static void EmitVirtualCall(ArmEmitterContext context, Operand target)
{
EmitTableBranch(context, target, isJump: false);
if (context.IsSingleStep)
{
if (target.Type == OperandType.I32)
{
target = context.ZeroExtend32(OperandType.I64, target);
}
context.Return(target);
}
else
{
EmitTableBranch(context, target, isJump: false);
}
}
public static void EmitVirtualJump(ArmEmitterContext context, Operand target, bool isReturn)
{
if (isReturn)
if (isReturn || context.IsSingleStep)
{
if (target.Type == OperandType.I32)
{