public static IVCallRecompiler GetVCallRecompiler(VMCalls call) { if (!VCallRecompilers.TryGetValue(call, out var recompiler)) { throw new NotSupportedException($"Recompilation of vcall {call} is not supported."); } return(recompiler); }
public static ILFlowControl GetImpliedFlowControl(this VMCalls call) { switch (call) { case VMCalls.ECALL: return(ILFlowControl.Call); case VMCalls.EXIT: case VMCalls.THROW: return(ILFlowControl.Return); } return(ILFlowControl.Next); }
public VCallAnnotation(VMCalls vmCall, VMType returnType) { VMCall = vmCall; ReturnType = returnType; }
public FieldAnnotation(VMCalls vmCall, ICallableMemberReference field) : base(vmCall, ((FieldSignature)field.Signature).FieldType.ToVMType()) { Field = field; }
public FieldAnnotation(VMCalls vmCall, IFieldDescriptor field) : base(vmCall, field.Signature.FieldType.ToVMType()) { Field = field; }
public TypeAnnotation(VMCalls vmCall, ITypeDefOrRef type) : base(vmCall, VMType.Object) { Type = type; }
public int this[VMCalls call] => callOrder[(int)call];
public int this[VMCalls call] { get { return(callOrder[(int)call]); } }