Kaynağa Gözat

Fix BLR when the source reg is X30 (#493)

gdkchan 7 yıl önce
ebeveyn
işleme
a4822b7946
1 değiştirilmiş dosya ile 4 ekleme ve 1 silme
  1. 4 1
      ChocolArm64/Instructions/InstEmitFlow.cs

+ 4 - 1
ChocolArm64/Instructions/InstEmitFlow.cs

@@ -72,11 +72,14 @@ namespace ChocolArm64.Instructions
         {
         {
             OpCodeBReg64 op = (OpCodeBReg64)context.CurrOp;
             OpCodeBReg64 op = (OpCodeBReg64)context.CurrOp;
 
 
+            context.EmitLdintzr(op.Rn);
+            context.EmitSttmp();
+
             context.EmitLdc_I(op.Position + 4);
             context.EmitLdc_I(op.Position + 4);
             context.EmitStint(CpuThreadState.LrIndex);
             context.EmitStint(CpuThreadState.LrIndex);
             context.EmitStoreState();
             context.EmitStoreState();
-            context.EmitLdintzr(op.Rn);
 
 
+            context.EmitLdtmp();
             context.Emit(OpCodes.Ret);
             context.Emit(OpCodes.Ret);
         }
         }