public static void Br(AILEmitterCtx Context) { AOpCodeBReg Op = (AOpCodeBReg)Context.CurrOp; Context.EmitStoreState(); Context.EmitLdintzr(Op.Rn); Context.Emit(OpCodes.Ret); }
public static void Blr(AILEmitterCtx Context) { AOpCodeBReg Op = (AOpCodeBReg)Context.CurrOp; Context.EmitLdc_I(Op.Position + 4); Context.EmitStint(AThreadState.LRIndex); Context.EmitStoreState(); Context.EmitLdintzr(Op.Rn); Context.Emit(OpCodes.Ret); }
public static void Br(AILEmitterCtx Context) { AOpCodeBReg Op = (AOpCodeBReg)Context.CurrOp; if (AOptimizations.GenerateCallStack) { Context.EmitLdarg(ATranslatedSub.StateArgIdx); Context.EmitLdintzr(Op.Rn); Context.EmitPrivateCall(typeof(AThreadState), nameof(AThreadState.JumpMethod)); } Context.EmitStoreState(); Context.EmitLdintzr(Op.Rn); Context.Emit(OpCodes.Ret); }