Enum CilCode
- Namespace
- AsmResolver.PE.DotNet.Cil
- Assembly
- AsmResolver.PE.dll
Provides members defining all possible numerical values for each CIL operation code.
public enum CilCode : ushort
- Extension Methods
Fields
Add = 88
Add two values, returning a new value.
Add_Ovf = 214
Add signed integer values with overflow check.
Add_Ovf_Un = 215
Add unsigned integer values with overflow check.
And = 95
Bitwise AND of two integral values, returns an integral value.
Arglist = 65024
Return argument list handle for the current method.
Beq = 59
Branch to target if equal.
Beq_S = 46
Branch to target if equal, short form.
Bge = 60
Branch to target if greater than or equal to.
Bge_S = 47
Branch to target if greater than or equal to, short form.
Bge_Un = 65
Branch to target if greater than or equal to (unsigned or unordered).
Bge_Un_S = 52
Branch to target if greater than or equal to (unsigned or unordered), short form.
Bgt = 61
Branch to target if greater than.
Bgt_S = 48
Branch to target if greater than, short form.
Bgt_Un = 66
Branch to target if greater than (unsigned or unordered).
Bgt_Un_S = 53
Branch to target if greater than (unsigned or unordered), short form.
Ble = 62
Branch to target if less than or equal to.
Ble_S = 49
Branch to target if less than or equal to, short form.
Ble_Un = 67
Branch to target if less than or equal to (unsigned or unordered).
Ble_Un_S = 54
Branch to target if less than or equal to (unsigned or unordered), short form.
Blt = 63
Branch to target if less than.
Blt_S = 50
Branch to target if less than, short form.
Blt_Un = 68
Branch to target if less than (unsigned or unordered).
Blt_Un_S = 55
Branch to target if less than (unsigned or unordered), short form.
Bne_Un = 64
Branch to target if unequal or unordered.
Bne_Un_S = 51
Branch to target if unequal or unordered, short form.
Box = 140
Convert a boxable value to its boxed form.
Br = 56
Branch to target.
Br_S = 43
Branch to target, short form.
Break = 1
Inform a debugger that a breakpoint has been reached.
Brfalse = 57
Branch to target if value is zero (false).
Brfalse_S = 44
Branch to target if value is zero (false), short form.
Brtrue = 58
Branch to target if value is non-zero (true).
Brtrue_S = 45
Branch to target if value is non-zero (true), short form.
Call = 40
Call method described by method.
Calli = 41
Call method indicated on the stack with arguments described by a calling convention.
Callvirt = 111
Call a method associated with an object.
Castclass = 116
Cast obj to class.
Ceq = 65025
Push 1 (of type int32) if value1 equals value2, else push 0.
Cgt = 65026
Push 1 (of type int32) if value1 greater that value2, else push 0.
Cgt_Un = 65027
Push 1 (of type int32) if value1 greater that value2, unsigned or unordered, else push 0.
Ckfinite = 195
Throw ArithmeticException if value is not a finite number.
Clt = 65028
Push 1 (of type int32) if value1 lower than value2, else push 0.
Clt_Un = 65029
Push 1 (of type int32) if value1 lower than value2, unsigned or unordered, else push 0.
Constrained = 65046
Call a virtual method on a type constrained to be type T.
Conv_I = 211
Convert to native int, pushing native int on stack.
Conv_I1 = 103
Convert to int8, pushing int32 on stack.
Conv_I2 = 104
Convert to int16, pushing int32 on stack.
Conv_I4 = 105
Convert to int32, pushing int32 on stack.
Conv_I8 = 106
Convert to int64, pushing int64 on stack.
Conv_Ovf_I = 212
Convert to a native int (on the stack as native int) and throw an exception on overflow.
Conv_Ovf_I1 = 179
Convert to an int8 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_I1_Un = 130
Convert unsigned to an int8 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_I2 = 181
Convert to an int16 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_I2_Un = 131
Convert unsigned to an int16 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_I4 = 183
Convert to an int32 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_I4_Un = 132
Convert unsigned to an int32 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_I8 = 185
Convert to an int64 (on the stack as int64) and throw an exception on overflow.
Conv_Ovf_I8_Un = 133
Convert unsigned to an int64 (on the stack as int64) and throw an exception on overflow.
Conv_Ovf_I_Un = 138
Convert unsigned to a native int (on the stack as native int) and throw an exception on overflow.
Conv_Ovf_U = 213
Convert to a native unsigned int (on the stack as native int) and throw an exception on overflow.
Conv_Ovf_U1 = 180
Convert to an unsigned int8 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_U1_Un = 134
Convert unsigned to an unsigned int8 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_U2 = 182
Convert to an unsigned int16 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_U2_Un = 135
Convert unsigned to an unsigned int16 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_U4 = 184
Convert to an unsigned int32 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_U4_Un = 136
Convert unsigned to an unsigned int32 (on the stack as int32) and throw an exception on overflow.
Conv_Ovf_U8 = 186
Convert to an unsigned int64 (on the stack as int64) and throw an exception on overflow.
Conv_Ovf_U8_Un = 137
Convert unsigned to an unsigned int64 (on the stack as int64) and throw an exception on overflow.
Conv_Ovf_U_Un = 139
Convert unsigned to a native unsigned int (on the stack as native int) and throw an exception on overflow.
Conv_R4 = 107
Convert to float32, pushing F on stack.
Conv_R8 = 108
Convert to float64, pushing F on stack.
Conv_R_Un = 118
Convert unsigned integer to floating-point, pushing F on stack.
Conv_U = 224
Convert to native unsigned int, pushing native int on stack.
Conv_U1 = 210
Convert to unsigned int8, pushing int32 on stack.
Conv_U2 = 209
Convert to unsigned int16, pushing int32 on stack.
Conv_U4 = 109
Convert to unsigned int32, pushing int32 on stack.
Conv_U8 = 110
Convert to unsigned int64, pushing int64 on stack.
Cpblk = 65047
Copy data from memory to memory.
Cpobj = 112
Copy a value type from src to dest.
Div = 91
Divide two values to return a quotient or floating-point result.
Div_Un = 92
Divide two values, unsigned, returning a quotient.
Dup = 37
Duplicate the value on the top of the stack.
Endfilter = 65041
End an exception handling filter clause.
Endfinally = 220
End finally clause of an exception block.
Initblk = 65048
Set all bytes in a block of memory to a given byte value.
Initobj = 65045
Initialize the value at address dest.
Isinst = 117
Test if obj is an instance of class, returning null or an instance of that class or interface.
Jmp = 39
Exit current method and jump to the specified method.
Ldarg = 65033
Load argument onto the stack.
Ldarg_0 = 2
Load argument 0 onto the stack.
Ldarg_1 = 3
Load argument 1 onto the stack.
Ldarg_2 = 4
Load argument 2 onto the stack.
Ldarg_3 = 5
Load argument 3 onto the stack.
Ldarg_S = 14
Load argument onto the stack, short form.
Ldarga = 65034
Fetch the address of the argument indexed.
Ldarga_S = 15
Fetch the address of argument, short form.
Ldc_I4 = 32
Push num of type int32 onto the stack as int32.
Ldc_I4_0 = 22
Push 0 onto the stack as int32.
Ldc_I4_1 = 23
Push 1 onto the stack as int32.
Ldc_I4_2 = 24
Push 2 onto the stack as int32.
Ldc_I4_3 = 25
Push 3 onto the stack as int32.
Ldc_I4_4 = 26
Push 4 onto the stack as int32.
Ldc_I4_5 = 27
Push 5 onto the stack as int32.
Ldc_I4_6 = 28
Push 6 onto the stack as int32.
Ldc_I4_7 = 29
Push 7 onto the stack as int32.
Ldc_I4_8 = 30
Push 8 onto the stack as int32.
Ldc_I4_M1 = 21
Push -1 onto the stack as int32.
Ldc_I4_S = 31
Push num onto the stack as int32, short form.
Ldc_I8 = 33
Push num of type int64 onto the stack as int64.
Ldc_R4 = 34
Push num of type float32 onto the stack as F.
Ldc_R8 = 35
Push num of type float64 onto the stack as F.
Ldelem = 163
Load the element at index onto the top of the stack.
Ldelem_I = 151
Load the element with type native int at index onto the top of the stack as a native int.
Ldelem_I1 = 144
Load the element with type int8 at index onto the top of the stack as an int32.
Ldelem_I2 = 146
Load the element with type int16 at index onto the top of the stack as an int32.
Ldelem_I4 = 148
Load the element with type int32 at index onto the top of the stack as an int32.
Ldelem_I8 = 150
Load the element with type signed or unsigned int64 at index onto the top of the stack as a signed int64.
Ldelem_R4 = 152
Load the element with type float32 at index onto the top of the stack as an F.
Ldelem_R8 = 153
Load the element with type float64 at index onto the top of the stack as an F.
Ldelem_Ref = 154
Load the element at index onto the top of the stack as an O. The type of the O is the same as the element type of the array pushed on the CIL stack.
Ldelem_U1 = 145
Load the element with type unsigned int8 at index onto the top of the stack as an int32.
Ldelem_U2 = 147
Load the element with type unsigned int16 at index onto the top of the stack as an int32.
Ldelem_U4 = 149
Load the element with type unsigned int32 at index onto the top of the stack as an int32.
Ldelema = 143
Load the address of element at index onto the top of the stack.
Ldfld = 123
Push the value of field of object (or value type) obj, onto the stack.
Ldflda = 124
Push the address of field of object obj on the stack.
Ldftn = 65030
Push a pointer to a method referenced by method, on the stack.
Ldind_I = 77
Indirect load value of type native int as native int on the stack.
Ldind_I1 = 70
Indirect load value of type int8 as int32 on the stack.
Ldind_I2 = 72
Indirect load value of type int16 as int32 on the stack.
Ldind_I4 = 74
Indirect load value of type int32 as int32 on the stack.
Ldind_I8 = 76
Indirect load value of type signed or unsigned int64 as signed int64 on the stack.
Ldind_R4 = 78
Indirect load value of type float32 as F on the stack.
Ldind_R8 = 79
Indirect load value of type float64 as F on the stack.
Ldind_Ref = 80
Indirect load value of type object ref as O on the stack.
Ldind_U1 = 71
Indirect load value of type unsigned int8 as int32 on the stack.
Ldind_U2 = 73
Indirect load value of type unsigned int16 as int32 on the stack.
Ldind_U4 = 75
Indirect load value of type unsigned int32 as int32 on the stack.
Ldlen = 142
Push the length (of type native unsigned int) of array on the stack.
Ldloc = 65036
Load local variable of index onto stack.
Ldloc_0 = 6
Load local variable 0 onto stack.
Ldloc_1 = 7
Load local variable 1 onto stack.
Ldloc_2 = 8
Load local variable 2 onto stack.
Ldloc_3 = 9
Load local variable 3 onto stack.
Ldloc_S = 17
Load local variable of index onto stack, short form.
Ldloca = 65037
Load address of local variable with index index.
Ldloca_S = 18
Load address of local variable with index, short form.
Ldnull = 20
Push a null reference on the stack.
Ldobj = 113
Copy the value stored at address src to the stack.
Ldsfld = 126
Push the value of the static field on the stack.
Ldsflda = 127
Push the address of the static field, field, on the stack.
Ldstr = 114
Push a string object for the literal string.
Ldtoken = 208
Convert metadata token to its runtime representation.
Ldvirtftn = 65031
Push address of virtual method on the stack.
Leave = 221
Exit a protected region of code.
Leave_S = 222
Exit a protected region of code, short form.
Localloc = 65039
Allocate space from the local memory pool.
Mkrefany = 198
Push a typed reference to ptr of type class onto the stack.
Mul = 90
Multiply values.
Mul_Ovf = 216
Multiply signed integer values. Signed result shall fit in same size.
Mul_Ovf_Un = 217
Multiply unsigned integer values. Unsigned result shall fit in same size.
Neg = 101
Negate value.
Newarr = 141
Create a new array with elements of type etype.
Newobj = 115
Allocate an uninitialized object or value type and call ctor.
Nop = 0
Do nothing (No operation).
Not = 102
Bitwise complement (logical not).
Or = 96
Bitwise OR of two integer values, returns an integer.
Pop = 38
Pop value from the stack.
Prefix1 = 254
This prefix opcode is reserved and currently not implemented in the runtime
Prefix2 = 253
This prefix opcode is reserved and currently not implemented in the runtime
Prefix3 = 252
This prefix opcode is reserved and currently not implemented in the runtime
Prefix4 = 251
This prefix opcode is reserved and currently not implemented in the runtime
Prefix5 = 250
This prefix opcode is reserved and currently not implemented in the runtime
Prefix6 = 249
This prefix opcode is reserved and currently not implemented in the runtime
Prefix7 = 248
This prefix opcode is reserved and currently not implemented in the runtime
Prefixref = 255
This prefix opcode is reserved and currently not implemented in the runtime
Readonly = 65054
Specify that the subsequent array address operation performs no type check at runtime, and that it returns a controlled-mutability managed pointer.
Refanytype = 65053
Push the type token stored in a typed reference.
Refanyval = 194
Push the address stored in a typed reference.
Rem = 93
Remainder when dividing one value by another.
Rem_Un = 94
Remainder when dividing one unsigned value by another.
Ret = 42
Return from method, possibly with a value.
Rethrow = 65050
Rethrow the current exception.
Shl = 98
Shift an integer left (shifting in zeros), return an integer.
Shr = 99
Shift an integer right (shift in sign), return an integer.
Shr_Un = 100
Shift an integer right (shift in zero), return an integer.
Sizeof = 65052
Push the size, in bytes, of a type as an unsigned int32.
Starg = 65035
Store value to the argument.
Starg_S = 16
Store value to the argument numbered, short form.
Stelem = 164
Replace array element at index with the value on the stack.
Stelem_I = 155
Replace array element at index with the i value on the stack.
Stelem_I1 = 156
Replace array element at index with the int8 value on the stack.
Stelem_I2 = 157
Replace array element at index with the int16 value on the stack.
Stelem_I4 = 158
Replace array element at index with the int32 value on the stack.
Stelem_I8 = 159
Replace array element at index with the int64 value on the stack.
Stelem_R4 = 160
Replace array element at index with the float32 value on the stack.
Stelem_R8 = 161
Replace array element at index with the float64 value on the stack.
Stelem_Ref = 162
Replace array element at index with the ref value on the stack.
Stfld = 125
Replace the value of field of the object obj with value.
Stind_I = 223
Store value of type native int into memory at address.
Stind_I1 = 82
Store value of type int8 into memory at address.
Stind_I2 = 83
Store value of type int16 into memory at address.
Stind_I4 = 84
Store value of type int32 into memory at address.
Stind_I8 = 85
Store value of type int64 into memory at address.
Stind_R4 = 86
Store value of type float32 into memory at address.
Stind_R8 = 87
Store value of type float64 into memory at address.
Stind_Ref = 81
Store value of type object ref (type O) into memory at address.
Stloc = 65038
Pop a value from stack into local variable index.
Stloc_0 = 10
Pop a value from stack into local variable 0.
Stloc_1 = 11
Pop a value from stack into local variable 1.
Stloc_2 = 12
Pop a value from stack into local variable 2.
Stloc_3 = 13
Pop a value from stack into local variable 3.
Stloc_S = 19
Pop a value from stack into local variable with index, short form.
Stobj = 129
Store a value at an address.
Stsfld = 128
Replace the value of the static field.
Sub = 89
Subtract value2 from value1, returning a new value.
Sub_Ovf = 218
Subtract native int from a native int. Signed result shall fit in same size.
Sub_Ovf_Un = 219
Subtract native unsigned int from a native unsigned int. Unsigned result shall fit in same size.
Switch = 69
Jump to one of n values.
Tailcall = 65044
Subsequent call terminates current method.
Throw = 122
Throw an exception.
Unaligned = 65042
Subsequent pointer instruction might be unaligned.
Unbox = 121
Extract a value-type from obj, its boxed representation, and push a controlled-mutability managed pointer to it to the top of the stack.
Unbox_Any = 165
Extract a value-type from obj, its boxed representation, and copy to the top of the stack.
Volatile = 65043
Subsequent pointer reference is volatile.
Xor = 97
Bitwise XOR of integer values, returns an integer.