From a56f7e8f6832be431db208655fdbc98ae6d46995 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 9 Nov 2018 16:41:20 -0200 Subject: [PATCH] Fix BLR when the source reg is X30 (#493) --- Instructions/InstEmitFlow.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Instructions/InstEmitFlow.cs b/Instructions/InstEmitFlow.cs index 7d0897c..0e9f7cb 100644 --- a/Instructions/InstEmitFlow.cs +++ b/Instructions/InstEmitFlow.cs @@ -72,11 +72,14 @@ namespace ChocolArm64.Instructions { OpCodeBReg64 op = (OpCodeBReg64)context.CurrOp; + context.EmitLdintzr(op.Rn); + context.EmitSttmp(); + context.EmitLdc_I(op.Position + 4); context.EmitStint(CpuThreadState.LrIndex); context.EmitStoreState(); - context.EmitLdintzr(op.Rn); + context.EmitLdtmp(); context.Emit(OpCodes.Ret); }