Exemple #1
0
 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);
 }
Exemple #2
0
        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);
        }
Exemple #3
0
 public VCallAnnotation(VMCalls vmCall, VMType returnType)
 {
     VMCall     = vmCall;
     ReturnType = returnType;
 }
Exemple #4
0
 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;
 }
Exemple #6
0
 public TypeAnnotation(VMCalls vmCall, ITypeDefOrRef type)
     : base(vmCall, VMType.Object)
 {
     Type = type;
 }
Exemple #7
0
 public int this[VMCalls call] => callOrder[(int)call];
Exemple #8
0
 public int this[VMCalls call] {
     get { return(callOrder[(int)call]); }
 }