s      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr%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. APops 2 values, do bitwise XOR between the values, pushes result. oMarks provided pointer reference as volatile, i.e. the value it points at can be modified from another thread. qMarks subsequent pointer reference as volatile, i.e. the value it points at can be modified from another thread. ;Pops 1 value, unboxes object reference, pushes value type. \Performs provided load or store operation under a weaker-than-usual alignment precondition. ^Performs subsequent load or store operation under a weaker-than-usual alignment precondition. GPops an object reference from the stack and throws it as an exception. 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. kPops 2 values, subtracts second value from the first value with an unsigned overflow check, pushes result. hPops 2 values, subtracts second value from the first value with a signed overflow check, pushes result. KPops 2 values, subtracts 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. fPops an array reference, an index, and an object reference. Stores the object reference in the array. YPops an array reference, an index, and a double integer. Stores the double in the array. !OPops an array reference, an index, and a float. Stores the float in the array. "ZPops an array reference, an index, and a 64-bit integer. Stores the integer in the array. #ZPops an array reference, an index, and a 32-bit integer. Stores the integer in the array. $ZPops an array reference, an index, and a 16-bit integer. Stores the integer in the array. %ZPops an array reference, an index, and an 8-bit integer. Stores the integer in the array. &ZPops an array reference, an index, and a native integer. Stores the integer in the array. 'Pops 2 values, shifts the first to the right by the number of bits specified by the second (without sign extension), pushes the result. (Pops 2 values, shifts the first to the right by the number of bits specified by the second (with sign extension), pushes the result. )nPops 2 values, shifts the first to the left by the number of bits specified by the second, pushes the result. *rReturns from the current method. Pushes top of the stack to the top of the callers stack (if stack is not empty). +mPops 2 integers, divides the first by the second when considered as unsigned integers, pushes the remainder. ,RPops 2 values, divides the first value by the second value, pushes the remainder. -Pops the top of the stack. .@Pops 2 values, do bitwise OR between the values, pushes result. /8Pops 1 value, does a bitwise complement, pushes result. 0No operation is performed. 1fCreates a new one-dimensional array. Pops a native int or int32, pushes a new array with that length. 27Creates 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). 33Pops 1 value, negates the value, pushes the value. 4UPops 2 values, multiplies the values with an unsigned overflow check, pushes result. 5RPops 2 values, multiplies the values with a signed overflow check, pushes result. 65Pops 2 values, multiplies the values, pushes result. 7=Pushes an object reference to the specified string constant. 8_Pops type reference, find address of specified field on the type, pushes address to the stack. 9[Pops type reference, find value of specified field on the type, pushes value to the stack. :4Pushes a size-agnostic null reference on 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. A(Pushes 0th local variable to the stack. BBPushes value of local variable, specified by index, to the stack. CQPops an array reference, pushes the native unsigned integer length of the array. D_Pops an address, pushes the 32-bit unsigned integer stored at the address as a 32-bit integer. E_Pops an address, pushes the 16-bit unsigned integer stored at the address as a 32-bit integer. F^Pops an address, pushes the 8-bit unsigned integer stored at the address as a 32-bit integer. GGPops an address, pushes the object reference specified at the address. HAPops an address, pushes the 64-bit double stored at the address. I@Pops an address, pushes the 32-bit float stored at the address. JVPops an address, pushes the 64-bit integer stored at the address as a 64-bit integer. KBPops an address, pushes the 32-bit integer stored at the address. LVPops an address, pushes the 16-bit integer stored at the address as a 32-bit integer. MUPops an address, pushes the 8-bit integer stored at the address as a 32-bit integer. NBPops an address, pushes the native integer stored at the address. OePops object reference, finds address of specified method, pushes address as native int to the stack. PcPops object reference, find address of specified field on the object, pushes address to the stack. Q[Pops object reference, find value of specified field on object, pushes value to the stack. RType of the field. SName of the field. T]Pops an array reference and an index. Pushes the address of the specified slot of the array. UfPops an array reference and an index. Pushes the object reference in the specified slot of the array. V\Pops an array reference and an index. Pushes the double in the specified slot of the array. W[Pops an array reference and an index. Pushes the float in the specified slot of the array. XmPops an array reference and an index. Pushes the unsigned 64-bit integer in the specified slot of the array. YmPops an array reference and an index. Pushes the unsigned 32-bit integer in the specified slot of the array. ZmPops an array reference and an index. Pushes the unsigned 16-bit integer in the specified slot of the array. [lPops an array reference and an index. Pushes the unsigned 8-bit integer in the specified slot of the array. \dPops an array reference and an index. Pushes the 64-bit integer in the specified slot of the array. ]dPops an array reference and an index. Pushes the 32-bit integer in the specified slot of the array. ^dPops an array reference and an index. Pushes the 16-bit integer in the specified slot of the array. _cPops an array reference and an index. Pushes the 8-bit integer in the specified slot of the array. `dPops an array reference and an index. Pushes the native integer in the specified slot of the array. a1Loads the supplied 64-bit double onto the stack. b0Loads the supplied 32-bit float onto the stack. c2Loads the supplied 64-bit integer onto the stack. dPLoads the supplied 8-bit integer onto the stack as 32-bit integer (short form). e#Loads the value -1 onto the stack. f"Loads the value 8 onto the stack. g"Loads the value 7 onto the stack. h"Loads the value 6 onto the stack. i"Loads the value 5 onto the stack. j"Loads the value 4 onto the stack. k"Loads the value 3 onto the stack. l"Loads the value 2 onto the stack. m"Loads the value 1 onto the stack. n"Loads the value 0 onto the stack. o2Loads the supplied 32-bit integer onto the stack. p3Loads named argument to current method onto stack. q1Loads 3th argument to current method onto stack. r1Loads 2th argument to current method onto stack. s1Loads 1th argument to current method onto stack. t1Loads 0th argument to current method onto stack. uLoads n+-th argument to current method onto stack. vTests if an object reference is an instance of class, returning either a null reference or an instance of that class or interface. whPops 2 integers, divides the first by the second when consider as unsigned integers, pushes the result. xCPops 2 values, divides the first by the second, pushes the result. y6Pops 1 value, copies it, pushes the same value twise. z!Pops 2 values and compares them. {UPops a float or double. Throws an ArithmeticException if the popped value is NaN or +/%- infinity. Pushes the popped value. |!Pops 2 values and compares them. }JPops 2 values, if they are equal, pushes 1 to stack; otherwise, pushes 0. ~Pops nE values, calls specified virtual method, pushes return value. (where n4 is the number of formal parameters of the method). Pops n= values, calls specified method, pushes return value. (where n4 is the number of formal parameters of the method). -Method is associated with class or instance. 4Return type of the constructor (almost alway Void). .Name of the assembly where the field resides. 1Name 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. 6Inform a debugger that a breakpoint has been reached. )Unconditionally jump to specified label. 9Pops 1 value, boxes value type, pushes object reference. RPops 2 values, if first value is less than second value, jump to specified label. YPops 2 values, if first value is less or equal to second value, jump to specified label. UPops 2 values, if first value is greater than second value, jump to specified label. \Pops 2 values, if first value is greater or equal to second value, jump to specified label. QPops 2 values, if first value is equal to second value, jump to specified label. APops 2 values, do bitwise AND between the values, pushes result. OPops 2 values, adds the values with an unsigned overflow check, pushes result. LPops 2 values, adds the values with a signed overflow check, pushes result. /Pops 2 values, adds the values, pushes result. )Single instruction in method definition. ( Either an OpCode or a labelled OpCode. 1Local variables used inside a method definition. ,Directive meta data for method definitions. 0Method declarations, i.e. the body of a method. %Attributes to parameter definitions.  A formal parameter to a method. "Attributes to method definitions. A Method definition in CIL. &A specification of pointer alignment. 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{|}~~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  RSRSRSRSRSRS~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  RSRSRSRSRSRS  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ -Serializes a Cil data structure to a String. s<Serializes a DottedName, escaping some weird names (such as 'add'  or  '<Thunk>'). tuvwxyz{|}      !"#$%&'()*+,-./0123456789:;<=Creates a new object. ? Note that this function assumes the constructor returns Void. @ If this is not the case, call the Newobj constructor manually. >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef~g+Relabel a labelled mdecl with a new label. hijklmnoNCreate a simple Assembly with one method containing the provided MethodDecls. p      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqqqqrs  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrrr      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~language-cil-0.2.2Language.Cil.SyntaxLanguage.Cil.PrettyLanguage.Cil.BuildLanguage.Cil.Analysis Language.CilCallConv CcInstanceOpCodeXor VolatilePtrVolatileUnbox UnalignedPtr UnalignedThrowTailcallTail Sub_ovf_unSub_ovfSubStsfldStlocNStloc_3Stloc_2Stloc_1Stloc_0Stloc Stind_refStind_r8Stind_r4Stind_i8Stind_i4Stind_i2Stind_i1Stind_iStfld Stelem_ref Stelem_r8 Stelem_r4 Stelem_i8 Stelem_i4 Stelem_i2 Stelem_i1Stelem_iShr_unShrShlRetRem_unRemPopOrNotNopNewarrNewobjNeg Mul_ovf_unMul_ovfMulLdstrLdsfldaLdsfldLdnullLdlocaNLdlocaLdlocNLdloc_3Ldloc_2Ldloc_1Ldloc_0LdlocLdlenLdind_u4Ldind_u2Ldind_u1 Ldind_refLdind_r8Ldind_r4Ldind_i8Ldind_i4Ldind_i2Ldind_i1Ldind_iLdftnLdfldaLdfld fieldType fieldNameLdelema Ldelem_ref Ldelem_r8 Ldelem_r4 Ldelem_u8 Ldelem_u4 Ldelem_u2 Ldelem_u1 Ldelem_i8 Ldelem_i4 Ldelem_i2 Ldelem_i1Ldelem_iLdc_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_0LdargIsinstDiv_unDivDupCltCkfiniteCgtCeqCallVirtCallcallConv returnType assemblyNametypeName methodName paramTypesBrtrueBrfalseBreakBrBoxBltBleBgtBgeBeqAnd Add_ovf_unAdd_ovfAddInstr LabOpCodeLocal DirectiveMaxStack LocalsInit EntryPoint MethodDeclComment ParamAttrPaOptPaOutPaIn ParameterParamMethAttr MaHidebysig MaVirtual MaAssembly MaPrivateMaPublicMaStatic MethodDefMethod Constructor AlignmentQuadByteAlignedDoubleByteAligned ByteAligned PrimitiveType GenericTypeByRefGenericReferenceType ReferenceType ValueTypeObjectStringIntPtrDouble64Float32Int64Int32ByteCharBoolVoid FieldAttr FaAssembly FaPrivateFaPublicFaStaticFieldDefFieldTypeSpec ClassDeclTypeDef ClassAttrCaNestedPrivateCaNestedPublicCaPublic CaPrivateGenParam GenericClassClass AssemblyRefAssemblyPublicKeyTokenVersionLabelOffset LocalName ParamName FieldName MethodName GenParamNameTypeName AssemblyName DottedNamekeywordsPrettypr assemblyRef entryPoint localsInitmaxStackaddadd_ovf add_ovf_unandbeqbgebgtblebltboxunboxbrbreakbrfalsebrtruecallcallvirtceqcgtcltckfinitedupdivdiv_unisinstldargldargNldc_i4ldc_i8ldc_r4ldc_r8ldcharldelem_i ldelem_i1 ldelem_i2 ldelem_i4 ldelem_i8 ldelem_u1 ldelem_u2 ldelem_u4 ldelem_u8 ldelem_r4 ldelem_r8 ldelem_refldelemaldfldldfldaldftnldind_ildind_i1ldind_i2ldind_i4ldind_i8ldind_r4ldind_r8 ldind_refldind_u1ldind_u2ldind_u4ldlenldlocldlocNldlocaldlocaNldnullldsfldldsfldaldstrmulmul_ovf mul_ovf_unnegnewarrnewobjnopnotorpopremrem_unretshlshrshr_unstelem_i stelem_i1 stelem_i2 stelem_i4 stelem_i8 stelem_r4 stelem_r8 stelem_refstfldstind_istind_i1stind_i2stind_i4stind_i8stind_r4stind_r8 stind_refstlocstlocNstsfldsubsub_ovf sub_ovf_untailtailcallthrow unaligned unalignedPtrvolatile volatilePtrxorlabelcommentextends noExtends noImplementsclassDef defaultCtor extendsCtorsimpleAssembly mscorlibRef instructions writeAssemblyprNamesplitprListprFldprNewobjprCall prAssemblyprspidentspnlmdeclsupportsUnalignedsupportsVolatilesupportsPrefixAst