4e      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     %Calling convention for method calls. (CIL OpCodes inside a method definition.  See  Rhttp://msdn.microsoft.com/en-us/library/system.reflection.emit.opcodes_fields.aspx . for a more complete list with documentation. ;Pops 1 value, unboxes object reference, pushes value type. aPerforms provided call as a tail call, by replacing current stack frame with callee stack frame. cPerforms subsequent call as a tail call, by replacing current stack frame with callee stack frame. LPops 2 values, substracts second value from the first value, pushes result. JReplaces the value stored in the static field of a type with a new value. APops 1 value, stores it in the local variable specified by name. 3Pops 1 value, stores it in the 3th local variable. 3Pops 1 value, stores it in the 2th local variable. 3Pops 1 value, stores it in the 1th local variable. 3Pops 1 value, stores it in the 0th local variable. BPops 1 value, stores it in the local variable specified by index. UPops an address and an object reference, stores the object reference at the address. GPops an address and a 64-bit double, stores the double at the address. EPops an address and a 32-bit float, stores the float at the address. IPops an address and a 64-bit integer, stores the integer at the address. IPops an address and a 32-bit integer, stores the integer at the address. IPops an address and a 16-bit integer, stores the integer at the address. HPops an address and a 8-bit integer, stores the integer at the address. IPops an address and a native integer, stores the integer at the address. [Replaces the value stored in the field of an object reference or pointer with a new value. rReturns from the current method. Pushes top of the stack to the top of the callers stack (if stack is not empty). RPops 2 values, devides the first value by the second value, pushes the remainder. Pops the top of the stack. No operation is performed. 7Creates a new object or instance of a value type. Pops n^ values, calls the specified constructor, pushes a new object reference onto the stack (where n9 is the number of formal parameters of the constructor). 3Pops 1 value, negates the value, pushes the value. 5Pops 2 values, multiplies the values, pushes result. =Pushes an object reference to the specified string constant. _Pops type reference, find address of specified field on the type, pushes address to the stack. [Pops type reference, find value of specified field on the type, pushes value to the stack. !CPushes address of local variable, specified by name, to the stack. "DPushes address of local variable, specified by index, to the stack. #APushes value of local variable, specified by name, to the stack. $(Pushes 3th local variable to the stack. %(Pushes 2th local variable to the stack. &(Pushes 1th local variable to the stack. '(Pushes 0th local variable to the stack. (BPushes value of local variable, specified by index, to the stack. )_Pops an address, pushes the 32-bit unsigned integer stored at the address as a 32-bit integer. *_Pops an address, pushes the 16-bit unsigned integer stored at the address as a 32-bit integer. +^Pops an address, pushes the 8-bit unsigned integer stored at the address as a 32-bit integer. ,GPops an address, pushes the object reference specified at the address. -APops an address, pushes the 64-bit double stored at the address. .@Pops an address, pushes the 32-bit float stored at the address. /VPops an address, pushes the 64-bit integer stored at the address as a 64-bit integer. 0BPops an address, pushes the 32-bit integer stored at the address. 1VPops an address, pushes the 16-bit integer stored at the address as a 32-bit integer. 2UPops an address, pushes the 8-bit integer stored at the address as a 32-bit integer. 3BPops an address, pushes the native integer stored at the address. 4ePops object reference, finds address of specified method, pushes address as native int to the stack. 5cPops object reference, find address of specified field on the object, pushes address to the stack. 6[Pops object reference, find value of specified field on object, pushes value to the stack. 7Type of the field. 8Name of the field. 91Loads the supplied 64-bit double onto the stack. :0Loads the supplied 32-bit float onto the stack. ;2Loads the supplied 64-bit integer onto the stack. <PLoads the supplied 8-bit integer onto the stack as 32-bit integer (short form). =#Loads the value -1 onto the stack. >"Loads the value 8 onto the stack. ?"Loads the value 7 onto the stack. @"Loads the value 6 onto the stack. A"Loads the value 5 onto the stack. B"Loads the value 4 onto the stack. C"Loads the value 3 onto the stack. D"Loads the value 2 onto the stack. E"Loads the value 1 onto the stack. F"Loads the value 0 onto the stack. G2Loads the supplied 32-bit integer onto the stack. H3Loads named argument to current method onto stack. I1Loads 3th argument to current method onto stack. J1Loads 2th argument to current method onto stack. K1Loads 1th argument to current method onto stack. L1Loads 0th argument to current method onto stack. MLoads n+-th argument to current method onto stack. NTests if an object reference is an instance of class, returning either a null reference or an instance of that class or interface. O6Pops 1 value, copies it, pushes the same value twise. P!Pops 2 values and compares them. Q!Pops 2 values and compares them. R!Pops 2 values and compares them. S!Pops 2 values and compares them. TJPops 2 values, if they are equal, pushes 1 to stack; otherwise, pushes 0. UPops nE values, calls specified virtual method, pushes return value. (where n4 is the number of formal parameters of the method). VPops n= values, calls specified method, pushes return value. (where n4 is the number of formal parameters of the method). W-Method is associated with class or instance. X4Return type of the constructor (almost alway Void). Y.Name of the assembly where the field resides. Z1Name of the type of which the field is a member. [Name of the method. \2Types of the formal paramters of the constructor. ]OPops 1 value, if value is true, not null or non-zero, jump to specified label. ^RPops 1 value, if value is false, null reference or zero, jump to specified label. _)Unconditionally jump to specified label. `9Pops 1 value, boxes value type, pushes object reference. a[Pops 2 values, if first value is lesser or equal to second value, jump to specified label. b[Pops 2 values, if first value is lesser or equal to second value, jump to specified label. cUPops 2 values, if first value is greater than second value, jump to specified label. d\Pops 2 values, if first value is greater or equal to second value, jump to specified label. eQPops 2 values, if first value is equal to second value, jump to specified label. fAPops 2 values, do bitwise AND between the values, pushes result. g/Pops 2 values, adds the values, pushes result. h)Single instruction in method definition. ( Either an OpCode or a labelled OpCode. ijk1Local variables used inside a method definition. lm,Directive meta data for method definitions. nopq0Method declarations, i.e. the body of a method. rstu%Attributes to parameter definitions. vwxy A formal parameter to a method. z{"Attributes to method definitions. |}~A Method definition in CIL. Primitive types in CIL. !Attributes to field definitions. Field definition. Type specification. .Class declarations, i.e. the body of a class. !Attribures to class definitions.  A parameter to a generic class. , Not fully implemented yet, constraints aren' t supported. :A Type definition in CIL, either a class or a value type. Assembly reference. The top level Assembly. $ This is the root of a CIL program. A public key token A Version number in CIL A Label in CIL. 1An offset, e.g. for local variables or arguments A name in the CIL world. B These need to confirm to certain restrictions, altough these aren't  currently checked.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~{~}|yzuxwvqtsrhjimponklgfedcba`_^]VUTSRQPONMLKJIHGFEDCBA@?>=<;:96543210/.-,+*)('&%$#"!  WXYZ[\XYZ[\7YZ87YZ8XYZ[\7YZ87YZ8XYZ\7YZ87YZ8gfedcba`_^]VUTSRQPONMLKJIHGFEDCBA@?>=<;:96543210/.-,+*)('&%$#"!  WXYZ[\XYZ[\7YZ87YZ8XYZ[\7YZ87YZ8XYZ\7YZ87YZ8  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjiijkllmponnopqtsrrstuxwvvwxyzz{~}||}~ -Serializes a Cil data structure to a String. <Serializes a DottedName, escaping some weird names (such as 'add'  or  '<Thunk>').  UCreates a new object. ? Note that this function assumes the constructor returns Void. @ If this is not the case, call the Newobj constructor manually.  ! +Relabel a labelled mdecl with a new label.    NCreate a simple Assembly with one method containing the provided MethodDecls. T     T     T     "  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     #      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoppqrstuvnqwxyz{|}~     language-cil-0.2.1Language.Cil.SyntaxLanguage.Cil.PrettyLanguage.Cil.BuildLanguage.Cil.Analysis Language.CilCallConv CcInstanceOpCodeUnboxTailcallTailSubStsfldStlocNStloc_3Stloc_2Stloc_1Stloc_0Stloc Stind_refStind_r8Stind_r4Stind_i8Stind_i4Stind_i2Stind_i1Stind_iStfldRetRemPopNopNewobjNegMulLdstrLdsfldaLdsfldLdlocaNLdlocaLdlocNLdloc_3Ldloc_2Ldloc_1Ldloc_0LdlocLdind_u4Ldind_u2Ldind_u1 Ldind_refLdind_r8Ldind_r4Ldind_i8Ldind_i4Ldind_i2Ldind_i1Ldind_iLdftnLdfldaLdfld fieldType fieldNameLdc_r8Ldc_r4Ldc_i8Ldc_i4_s Ldc_i4_m1Ldc_i4_8Ldc_i4_7Ldc_i4_6Ldc_i4_5Ldc_i4_4Ldc_i4_3Ldc_i4_2Ldc_i4_1Ldc_i4_0Ldc_i4LdargNLdarg_3Ldarg_2Ldarg_1Ldarg_0LdargIsinstDupCltCleCgtCgeCeqCallVirtCallcallConv returnType assemblyNametypeName methodName paramTypesBrtrueBrfalseBrBoxBltBleBgtBgeBeqAndAddInstr LabOpCodeLocal DirectiveMaxStack LocalsInit EntryPoint MethodDeclComment ParamAttrPaOptPaOutPaIn ParameterParamMethAttr MaHidebysig MaVirtual MaAssembly MaPrivateMaPublicMaStatic MethodDefMethod Constructor PrimitiveType GenericTypeByRefGenericReferenceType ReferenceType ValueTypeObjectStringIntPtrDouble64Float32Int64Int32ByteCharBoolVoid FieldAttr FaAssembly FaPrivateFaPublicFaStaticFieldDefFieldTypeSpec ClassDeclTypeDef ClassAttrCaNestedPrivateCaNestedPublicCaPublic CaPrivateGenParam GenericClassClass AssemblyRefAssemblyPublicKeyTokenVersionLabelOffset LocalName ParamName FieldName MethodName GenParamNameTypeName AssemblyName DottedNamekeywordsPrettypr assemblyRef entryPoint localsInitmaxStackaddbeqbgebgtblebltboxunboxbrbrfalsebrtruecallcallvirtceqcgecgtclecltdupisinstldargldargNldc_i4ldc_i8ldc_r4ldc_r8ldcharldfldldfldaldftnldind_ildind_i1ldind_i2ldind_i4ldind_i8ldind_r4ldind_r8 ldind_refldind_u1ldind_u2ldind_u4ldlocldlocNldlocaldlocaNldsfldldsfldaldstrmulnegnewobjnoppopremretstfldstind_istind_i1stind_i2stind_i4stind_i8stind_r4stind_r8 stind_refstlocstlocNstsfldsubtailtailcalllabelcommentextends noExtends noImplementsclassDef defaultCtor extendsCtorsimpleAssembly mscorlibRef instructions writeAssemblyprNamesplitprListprFldprNewobjprCall prAssemblyprspidentspnlmdeclAst