2018-10-30 19:43:02 -06:00
|
|
|
using System.Reflection;
|
|
|
|
using System.Reflection.Emit;
|
|
|
|
|
|
|
|
namespace ChocolArm64.Translation
|
|
|
|
{
|
|
|
|
struct ILOpCodeCall : IILEmit
|
|
|
|
{
|
2019-02-27 23:03:31 -03:00
|
|
|
public MethodInfo Info { get; }
|
2018-10-30 19:43:02 -06:00
|
|
|
|
2019-02-27 23:03:31 -03:00
|
|
|
public bool IsVirtual { get; }
|
2019-02-04 18:26:05 -03:00
|
|
|
|
|
|
|
public ILOpCodeCall(MethodInfo info, bool isVirtual)
|
2018-10-30 19:43:02 -06:00
|
|
|
{
|
2019-02-04 18:26:05 -03:00
|
|
|
Info = info;
|
|
|
|
IsVirtual = isVirtual;
|
2018-10-30 19:43:02 -06:00
|
|
|
}
|
|
|
|
|
2018-12-10 22:58:52 -02:00
|
|
|
public void Emit(ILMethodBuilder context)
|
2018-10-30 19:43:02 -06:00
|
|
|
{
|
2019-02-04 18:26:05 -03:00
|
|
|
context.Generator.Emit(IsVirtual ? OpCodes.Callvirt : OpCodes.Call, Info);
|
2018-10-30 19:43:02 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|