5internal sealed class FuncCallInstruction<TRet> : CallInstruction
21 frame.StackIndex -= -1;
27 return "Call(" +
_target.Method?.ToString() +
")";
30internal sealed class FuncCallInstruction<T0, TRet> : CallInstruction
48 object obj = frame.
Data[frame.StackIndex - 1];
55 frame.
Data[frame.StackIndex - 1] = obj2;
62 return "Call(" +
_target.Method?.ToString() +
")";
65internal sealed class FuncCallInstruction<T0, T1, TRet> : CallInstruction
69 private readonly Func<T0, T1, TRet>
_target;
83 object obj = frame.
Data[frame.StackIndex - 2];
90 frame.
Data[frame.StackIndex - 2] = obj2;
97 return "Call(" +
_target.Method?.ToString() +
")";
100internal sealed class FuncCallInstruction<T0, T1, T2, TRet> : CallInstruction
104 private readonly Func<T0, T1, T2, TRet>
_target;
118 object obj = frame.
Data[frame.StackIndex - 3];
126 frame.
Data[frame.StackIndex - 2],
127 frame.
Data[frame.StackIndex - 1]
129 frame.
Data[frame.StackIndex - 3] = obj2;
130 frame.StackIndex -= 2;
136 return "Call(" +
_target.Method?.ToString() +
")";
143 private readonly Func<T0, T1, T2, T3, TRet>
_target;
157 object obj = frame.
Data[frame.StackIndex - 4];
165 frame.
Data[frame.StackIndex - 3],
166 frame.
Data[frame.StackIndex - 2],
167 frame.
Data[frame.StackIndex - 1]
169 frame.
Data[frame.StackIndex - 4] = obj2;
170 frame.StackIndex -= 3;
176 return "Call(" +
_target.Method?.ToString() +
")";
object InterpretLambdaInvoke(LightLambda targetLambda, object[] args)
static bool TryGetLightLambdaTarget(object instance, [NotNullWhen(true)] out LightLambda lightLambda)
readonly Func< T0, T1, TRet > _target
readonly Func< T0, T1, T2, TRet > _target
readonly Func< T0, TRet > _target
override int Run(InterpretedFrame frame)
override string ToString()
override int ProducedStack
readonly bool _isInstance
readonly Func< T0, T1, T2, T3, TRet > _target
FuncCallInstruction(MethodInfo target)
override int ArgumentCount
readonly Func< TRet > _target
static void NullCheck(object o)
virtual Delegate CreateDelegate(Type delegateType)