diff options
Diffstat (limited to 'ARMeilleure/Instructions/InstEmitFlowHelper.cs')
-rw-r--r-- | ARMeilleure/Instructions/InstEmitFlowHelper.cs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ARMeilleure/Instructions/InstEmitFlowHelper.cs b/ARMeilleure/Instructions/InstEmitFlowHelper.cs index f995ffa1..e1309a4e 100644 --- a/ARMeilleure/Instructions/InstEmitFlowHelper.cs +++ b/ARMeilleure/Instructions/InstEmitFlowHelper.cs @@ -144,7 +144,14 @@ namespace ARMeilleure.Instructions { bool isRecursive = immediate == context.EntryAddress; - EmitJumpTableBranch(context, Const(immediate), isRecursive); + if (isRecursive) + { + context.Branch(context.GetLabel(immediate)); + } + else + { + EmitJumpTableBranch(context, Const(immediate), isJump: false); + } } private static void EmitNativeCall(ArmEmitterContext context, Operand nativeContextPtr, Operand funcAddr, bool isJump) |