| 1 | // Licensed to the .NET Foundation under one or more agreements. |
| 2 | // The .NET Foundation licenses this file to you under the MIT license. |
| 3 | // See the LICENSE file in the project root for more information. |
| 4 | |
| 5 | /***************************************************************************** |
| 6 | ** ** |
| 7 | ** Opcode.def - COM+ Intrinsic Opcodes and Macros. ** |
| 8 | ** ** |
| 9 | ** This is the master table from which all opcode lists ** |
| 10 | ** are derived. New instructions must be added to this ** |
| 11 | ** table and generators run to produce the lookup tables ** |
| 12 | ** used by the interpreter loop. ** |
| 13 | ** ** |
| 14 | ** Stack Behaviour is describing the number of 4 byte ** |
| 15 | ** slots pushed and Poped. ** |
| 16 | ** ** |
| 17 | *****************************************************************************/ |
| 18 | |
| 19 | |
| 20 | #ifndef __OPCODE_DEF_ |
| 21 | #define __OPCODE_DEF_ |
| 22 | |
| 23 | #define MOOT 0x00 // Marks unused second byte when encoding single |
| 24 | #define STP1 0xFE // Prefix code 1 for Standard Map |
| 25 | #define REFPRE 0xFF // Prefix for Reference Code Encoding |
| 26 | #define RESERVED_PREFIX_START 0xF7 |
| 27 | |
| 28 | #endif |
| 29 | |
| 30 | // If the first byte of the standard encoding is 0xFF, then |
| 31 | // the second byte can be used as 1 byte encoding. Otherwise l b b |
| 32 | // the encoding is two bytes. e y y |
| 33 | // n t t |
| 34 | // g e e |
| 35 | // (unused) t |
| 36 | // Canonical Name String Name Stack Behaviour Operand Params Opcode Kind h 1 2 Control Flow |
| 37 | // ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 38 | OPDEF(CEE_NOP, "nop" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x00, NEXT) |
| 39 | OPDEF(CEE_BREAK, "break" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x01, BREAK) |
| 40 | OPDEF(CEE_LDARG_0, "ldarg.0" , Pop0, Push1, InlineNone, IMacro, 1, 0xFF, 0x02, NEXT) |
| 41 | OPDEF(CEE_LDARG_1, "ldarg.1" , Pop0, Push1, InlineNone, IMacro, 1, 0xFF, 0x03, NEXT) |
| 42 | OPDEF(CEE_LDARG_2, "ldarg.2" , Pop0, Push1, InlineNone, IMacro, 1, 0xFF, 0x04, NEXT) |
| 43 | OPDEF(CEE_LDARG_3, "ldarg.3" , Pop0, Push1, InlineNone, IMacro, 1, 0xFF, 0x05, NEXT) |
| 44 | OPDEF(CEE_LDLOC_0, "ldloc.0" , Pop0, Push1, InlineNone, IMacro, 1, 0xFF, 0x06, NEXT) |
| 45 | OPDEF(CEE_LDLOC_1, "ldloc.1" , Pop0, Push1, InlineNone, IMacro, 1, 0xFF, 0x07, NEXT) |
| 46 | OPDEF(CEE_LDLOC_2, "ldloc.2" , Pop0, Push1, InlineNone, IMacro, 1, 0xFF, 0x08, NEXT) |
| 47 | OPDEF(CEE_LDLOC_3, "ldloc.3" , Pop0, Push1, InlineNone, IMacro, 1, 0xFF, 0x09, NEXT) |
| 48 | OPDEF(CEE_STLOC_0, "stloc.0" , Pop1, Push0, InlineNone, IMacro, 1, 0xFF, 0x0A, NEXT) |
| 49 | OPDEF(CEE_STLOC_1, "stloc.1" , Pop1, Push0, InlineNone, IMacro, 1, 0xFF, 0x0B, NEXT) |
| 50 | OPDEF(CEE_STLOC_2, "stloc.2" , Pop1, Push0, InlineNone, IMacro, 1, 0xFF, 0x0C, NEXT) |
| 51 | OPDEF(CEE_STLOC_3, "stloc.3" , Pop1, Push0, InlineNone, IMacro, 1, 0xFF, 0x0D, NEXT) |
| 52 | OPDEF(CEE_LDARG_S, "ldarg.s" , Pop0, Push1, ShortInlineVar, IMacro, 1, 0xFF, 0x0E, NEXT) |
| 53 | OPDEF(CEE_LDARGA_S, "ldarga.s" , Pop0, PushI, ShortInlineVar, IMacro, 1, 0xFF, 0x0F, NEXT) |
| 54 | OPDEF(CEE_STARG_S, "starg.s" , Pop1, Push0, ShortInlineVar, IMacro, 1, 0xFF, 0x10, NEXT) |
| 55 | OPDEF(CEE_LDLOC_S, "ldloc.s" , Pop0, Push1, ShortInlineVar, IMacro, 1, 0xFF, 0x11, NEXT) |
| 56 | OPDEF(CEE_LDLOCA_S, "ldloca.s" , Pop0, PushI, ShortInlineVar, IMacro, 1, 0xFF, 0x12, NEXT) |
| 57 | OPDEF(CEE_STLOC_S, "stloc.s" , Pop1, Push0, ShortInlineVar, IMacro, 1, 0xFF, 0x13, NEXT) |
| 58 | OPDEF(CEE_LDNULL, "ldnull" , Pop0, PushRef, InlineNone, IPrimitive, 1, 0xFF, 0x14, NEXT) |
| 59 | OPDEF(CEE_LDC_I4_M1, "ldc.i4.m1" , Pop0, PushI, InlineNone, IMacro, 1, 0xFF, 0x15, NEXT) |
| 60 | OPDEF(CEE_LDC_I4_0, "ldc.i4.0" , Pop0, PushI, InlineNone, IMacro, 1, 0xFF, 0x16, NEXT) |
| 61 | OPDEF(CEE_LDC_I4_1, "ldc.i4.1" , Pop0, PushI, InlineNone, IMacro, 1, 0xFF, 0x17, NEXT) |
| 62 | OPDEF(CEE_LDC_I4_2, "ldc.i4.2" , Pop0, PushI, InlineNone, IMacro, 1, 0xFF, 0x18, NEXT) |
| 63 | OPDEF(CEE_LDC_I4_3, "ldc.i4.3" , Pop0, PushI, InlineNone, IMacro, 1, 0xFF, 0x19, NEXT) |
| 64 | OPDEF(CEE_LDC_I4_4, "ldc.i4.4" , Pop0, PushI, InlineNone, IMacro, 1, 0xFF, 0x1A, NEXT) |
| 65 | OPDEF(CEE_LDC_I4_5, "ldc.i4.5" , Pop0, PushI, InlineNone, IMacro, 1, 0xFF, 0x1B, NEXT) |
| 66 | OPDEF(CEE_LDC_I4_6, "ldc.i4.6" , Pop0, PushI, InlineNone, IMacro, 1, 0xFF, 0x1C, NEXT) |
| 67 | OPDEF(CEE_LDC_I4_7, "ldc.i4.7" , Pop0, PushI, InlineNone, IMacro, 1, 0xFF, 0x1D, NEXT) |
| 68 | OPDEF(CEE_LDC_I4_8, "ldc.i4.8" , Pop0, PushI, InlineNone, IMacro, 1, 0xFF, 0x1E, NEXT) |
| 69 | OPDEF(CEE_LDC_I4_S, "ldc.i4.s" , Pop0, PushI, ShortInlineI, IMacro, 1, 0xFF, 0x1F, NEXT) |
| 70 | OPDEF(CEE_LDC_I4, "ldc.i4" , Pop0, PushI, InlineI, IPrimitive, 1, 0xFF, 0x20, NEXT) |
| 71 | OPDEF(CEE_LDC_I8, "ldc.i8" , Pop0, PushI8, InlineI8, IPrimitive, 1, 0xFF, 0x21, NEXT) |
| 72 | OPDEF(CEE_LDC_R4, "ldc.r4" , Pop0, PushR4, ShortInlineR, IPrimitive, 1, 0xFF, 0x22, NEXT) |
| 73 | OPDEF(CEE_LDC_R8, "ldc.r8" , Pop0, PushR8, InlineR, IPrimitive, 1, 0xFF, 0x23, NEXT) |
| 74 | OPDEF(CEE_UNUSED49, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x24, NEXT) |
| 75 | OPDEF(CEE_DUP, "dup" , Pop1, Push1+Push1, InlineNone, IPrimitive, 1, 0xFF, 0x25, NEXT) |
| 76 | OPDEF(CEE_POP, "pop" , Pop1, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x26, NEXT) |
| 77 | OPDEF(CEE_JMP, "jmp" , Pop0, Push0, InlineMethod, IPrimitive, 1, 0xFF, 0x27, CALL) |
| 78 | OPDEF(CEE_CALL, "call" , VarPop, VarPush, InlineMethod, IPrimitive, 1, 0xFF, 0x28, CALL) |
| 79 | OPDEF(CEE_CALLI, "calli" , VarPop, VarPush, InlineSig, IPrimitive, 1, 0xFF, 0x29, CALL) |
| 80 | OPDEF(CEE_RET, "ret" , VarPop, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x2A, RETURN) |
| 81 | OPDEF(CEE_BR_S, "br.s" , Pop0, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x2B, BRANCH) |
| 82 | OPDEF(CEE_BRFALSE_S, "brfalse.s" , PopI, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x2C, COND_BRANCH) |
| 83 | OPDEF(CEE_BRTRUE_S, "brtrue.s" , PopI, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x2D, COND_BRANCH) |
| 84 | OPDEF(CEE_BEQ_S, "beq.s" , Pop1+Pop1, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x2E, COND_BRANCH) |
| 85 | OPDEF(CEE_BGE_S, "bge.s" , Pop1+Pop1, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x2F, COND_BRANCH) |
| 86 | OPDEF(CEE_BGT_S, "bgt.s" , Pop1+Pop1, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x30, COND_BRANCH) |
| 87 | OPDEF(CEE_BLE_S, "ble.s" , Pop1+Pop1, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x31, COND_BRANCH) |
| 88 | OPDEF(CEE_BLT_S, "blt.s" , Pop1+Pop1, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x32, COND_BRANCH) |
| 89 | OPDEF(CEE_BNE_UN_S, "bne.un.s" , Pop1+Pop1, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x33, COND_BRANCH) |
| 90 | OPDEF(CEE_BGE_UN_S, "bge.un.s" , Pop1+Pop1, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x34, COND_BRANCH) |
| 91 | OPDEF(CEE_BGT_UN_S, "bgt.un.s" , Pop1+Pop1, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x35, COND_BRANCH) |
| 92 | OPDEF(CEE_BLE_UN_S, "ble.un.s" , Pop1+Pop1, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x36, COND_BRANCH) |
| 93 | OPDEF(CEE_BLT_UN_S, "blt.un.s" , Pop1+Pop1, Push0, ShortInlineBrTarget,IMacro, 1, 0xFF, 0x37, COND_BRANCH) |
| 94 | OPDEF(CEE_BR, "br" , Pop0, Push0, InlineBrTarget, IPrimitive, 1, 0xFF, 0x38, BRANCH) |
| 95 | OPDEF(CEE_BRFALSE, "brfalse" , PopI, Push0, InlineBrTarget, IPrimitive, 1, 0xFF, 0x39, COND_BRANCH) |
| 96 | OPDEF(CEE_BRTRUE, "brtrue" , PopI, Push0, InlineBrTarget, IPrimitive, 1, 0xFF, 0x3A, COND_BRANCH) |
| 97 | OPDEF(CEE_BEQ, "beq" , Pop1+Pop1, Push0, InlineBrTarget, IMacro, 1, 0xFF, 0x3B, COND_BRANCH) |
| 98 | OPDEF(CEE_BGE, "bge" , Pop1+Pop1, Push0, InlineBrTarget, IMacro, 1, 0xFF, 0x3C, COND_BRANCH) |
| 99 | OPDEF(CEE_BGT, "bgt" , Pop1+Pop1, Push0, InlineBrTarget, IMacro, 1, 0xFF, 0x3D, COND_BRANCH) |
| 100 | OPDEF(CEE_BLE, "ble" , Pop1+Pop1, Push0, InlineBrTarget, IMacro, 1, 0xFF, 0x3E, COND_BRANCH) |
| 101 | OPDEF(CEE_BLT, "blt" , Pop1+Pop1, Push0, InlineBrTarget, IMacro, 1, 0xFF, 0x3F, COND_BRANCH) |
| 102 | OPDEF(CEE_BNE_UN, "bne.un" , Pop1+Pop1, Push0, InlineBrTarget, IMacro, 1, 0xFF, 0x40, COND_BRANCH) |
| 103 | OPDEF(CEE_BGE_UN, "bge.un" , Pop1+Pop1, Push0, InlineBrTarget, IMacro, 1, 0xFF, 0x41, COND_BRANCH) |
| 104 | OPDEF(CEE_BGT_UN, "bgt.un" , Pop1+Pop1, Push0, InlineBrTarget, IMacro, 1, 0xFF, 0x42, COND_BRANCH) |
| 105 | OPDEF(CEE_BLE_UN, "ble.un" , Pop1+Pop1, Push0, InlineBrTarget, IMacro, 1, 0xFF, 0x43, COND_BRANCH) |
| 106 | OPDEF(CEE_BLT_UN, "blt.un" , Pop1+Pop1, Push0, InlineBrTarget, IMacro, 1, 0xFF, 0x44, COND_BRANCH) |
| 107 | OPDEF(CEE_SWITCH, "switch" , PopI, Push0, InlineSwitch, IPrimitive, 1, 0xFF, 0x45, COND_BRANCH) |
| 108 | OPDEF(CEE_LDIND_I1, "ldind.i1" , PopI, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x46, NEXT) |
| 109 | OPDEF(CEE_LDIND_U1, "ldind.u1" , PopI, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x47, NEXT) |
| 110 | OPDEF(CEE_LDIND_I2, "ldind.i2" , PopI, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x48, NEXT) |
| 111 | OPDEF(CEE_LDIND_U2, "ldind.u2" , PopI, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x49, NEXT) |
| 112 | OPDEF(CEE_LDIND_I4, "ldind.i4" , PopI, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x4A, NEXT) |
| 113 | OPDEF(CEE_LDIND_U4, "ldind.u4" , PopI, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x4B, NEXT) |
| 114 | OPDEF(CEE_LDIND_I8, "ldind.i8" , PopI, PushI8, InlineNone, IPrimitive, 1, 0xFF, 0x4C, NEXT) |
| 115 | OPDEF(CEE_LDIND_I, "ldind.i" , PopI, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x4D, NEXT) |
| 116 | OPDEF(CEE_LDIND_R4, "ldind.r4" , PopI, PushR4, InlineNone, IPrimitive, 1, 0xFF, 0x4E, NEXT) |
| 117 | OPDEF(CEE_LDIND_R8, "ldind.r8" , PopI, PushR8, InlineNone, IPrimitive, 1, 0xFF, 0x4F, NEXT) |
| 118 | OPDEF(CEE_LDIND_REF, "ldind.ref" , PopI, PushRef, InlineNone, IPrimitive, 1, 0xFF, 0x50, NEXT) |
| 119 | OPDEF(CEE_STIND_REF, "stind.ref" , PopI+PopI, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x51, NEXT) |
| 120 | OPDEF(CEE_STIND_I1, "stind.i1" , PopI+PopI, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x52, NEXT) |
| 121 | OPDEF(CEE_STIND_I2, "stind.i2" , PopI+PopI, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x53, NEXT) |
| 122 | OPDEF(CEE_STIND_I4, "stind.i4" , PopI+PopI, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x54, NEXT) |
| 123 | OPDEF(CEE_STIND_I8, "stind.i8" , PopI+PopI8, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x55, NEXT) |
| 124 | OPDEF(CEE_STIND_R4, "stind.r4" , PopI+PopR4, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x56, NEXT) |
| 125 | OPDEF(CEE_STIND_R8, "stind.r8" , PopI+PopR8, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x57, NEXT) |
| 126 | OPDEF(CEE_ADD, "add" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x58, NEXT) |
| 127 | OPDEF(CEE_SUB, "sub" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x59, NEXT) |
| 128 | OPDEF(CEE_MUL, "mul" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x5A, NEXT) |
| 129 | OPDEF(CEE_DIV, "div" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x5B, NEXT) |
| 130 | OPDEF(CEE_DIV_UN, "div.un" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x5C, NEXT) |
| 131 | OPDEF(CEE_REM, "rem" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x5D, NEXT) |
| 132 | OPDEF(CEE_REM_UN, "rem.un" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x5E, NEXT) |
| 133 | OPDEF(CEE_AND, "and" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x5F, NEXT) |
| 134 | OPDEF(CEE_OR, "or" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x60, NEXT) |
| 135 | OPDEF(CEE_XOR, "xor" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x61, NEXT) |
| 136 | OPDEF(CEE_SHL, "shl" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x62, NEXT) |
| 137 | OPDEF(CEE_SHR, "shr" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x63, NEXT) |
| 138 | OPDEF(CEE_SHR_UN, "shr.un" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x64, NEXT) |
| 139 | OPDEF(CEE_NEG, "neg" , Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x65, NEXT) |
| 140 | OPDEF(CEE_NOT, "not" , Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0x66, NEXT) |
| 141 | OPDEF(CEE_CONV_I1, "conv.i1" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x67, NEXT) |
| 142 | OPDEF(CEE_CONV_I2, "conv.i2" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x68, NEXT) |
| 143 | OPDEF(CEE_CONV_I4, "conv.i4" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x69, NEXT) |
| 144 | OPDEF(CEE_CONV_I8, "conv.i8" , Pop1, PushI8, InlineNone, IPrimitive, 1, 0xFF, 0x6A, NEXT) |
| 145 | OPDEF(CEE_CONV_R4, "conv.r4" , Pop1, PushR4, InlineNone, IPrimitive, 1, 0xFF, 0x6B, NEXT) |
| 146 | OPDEF(CEE_CONV_R8, "conv.r8" , Pop1, PushR8, InlineNone, IPrimitive, 1, 0xFF, 0x6C, NEXT) |
| 147 | OPDEF(CEE_CONV_U4, "conv.u4" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x6D, NEXT) |
| 148 | OPDEF(CEE_CONV_U8, "conv.u8" , Pop1, PushI8, InlineNone, IPrimitive, 1, 0xFF, 0x6E, NEXT) |
| 149 | OPDEF(CEE_CALLVIRT, "callvirt" , VarPop, VarPush, InlineMethod, IObjModel, 1, 0xFF, 0x6F, CALL) |
| 150 | OPDEF(CEE_CPOBJ, "cpobj" , PopI+PopI, Push0, InlineType, IObjModel, 1, 0xFF, 0x70, NEXT) |
| 151 | OPDEF(CEE_LDOBJ, "ldobj" , PopI, Push1, InlineType, IObjModel, 1, 0xFF, 0x71, NEXT) |
| 152 | OPDEF(CEE_LDSTR, "ldstr" , Pop0, PushRef, InlineString, IObjModel, 1, 0xFF, 0x72, NEXT) |
| 153 | OPDEF(CEE_NEWOBJ, "newobj" , VarPop, PushRef, InlineMethod, IObjModel, 1, 0xFF, 0x73, CALL) |
| 154 | OPDEF(CEE_CASTCLASS, "castclass" , PopRef, PushRef, InlineType, IObjModel, 1, 0xFF, 0x74, NEXT) |
| 155 | OPDEF(CEE_ISINST, "isinst" , PopRef, PushI, InlineType, IObjModel, 1, 0xFF, 0x75, NEXT) |
| 156 | OPDEF(CEE_CONV_R_UN, "conv.r.un" , Pop1, PushR8, InlineNone, IPrimitive, 1, 0xFF, 0x76, NEXT) |
| 157 | OPDEF(CEE_UNUSED58, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x77, NEXT) |
| 158 | OPDEF(CEE_UNUSED1, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0x78, NEXT) |
| 159 | OPDEF(CEE_UNBOX, "unbox" , PopRef, PushI, InlineType, IPrimitive, 1, 0xFF, 0x79, NEXT) |
| 160 | OPDEF(CEE_THROW, "throw" , PopRef, Push0, InlineNone, IObjModel, 1, 0xFF, 0x7A, THROW) |
| 161 | OPDEF(CEE_LDFLD, "ldfld" , PopRef, Push1, InlineField, IObjModel, 1, 0xFF, 0x7B, NEXT) |
| 162 | OPDEF(CEE_LDFLDA, "ldflda" , PopRef, PushI, InlineField, IObjModel, 1, 0xFF, 0x7C, NEXT) |
| 163 | OPDEF(CEE_STFLD, "stfld" , PopRef+Pop1, Push0, InlineField, IObjModel, 1, 0xFF, 0x7D, NEXT) |
| 164 | OPDEF(CEE_LDSFLD, "ldsfld" , Pop0, Push1, InlineField, IObjModel, 1, 0xFF, 0x7E, NEXT) |
| 165 | OPDEF(CEE_LDSFLDA, "ldsflda" , Pop0, PushI, InlineField, IObjModel, 1, 0xFF, 0x7F, NEXT) |
| 166 | OPDEF(CEE_STSFLD, "stsfld" , Pop1, Push0, InlineField, IObjModel, 1, 0xFF, 0x80, NEXT) |
| 167 | OPDEF(CEE_STOBJ, "stobj" , PopI+Pop1, Push0, InlineType, IPrimitive, 1, 0xFF, 0x81, NEXT) |
| 168 | OPDEF(CEE_CONV_OVF_I1_UN, "conv.ovf.i1.un" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x82, NEXT) |
| 169 | OPDEF(CEE_CONV_OVF_I2_UN, "conv.ovf.i2.un" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x83, NEXT) |
| 170 | OPDEF(CEE_CONV_OVF_I4_UN, "conv.ovf.i4.un" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x84, NEXT) |
| 171 | OPDEF(CEE_CONV_OVF_I8_UN, "conv.ovf.i8.un" , Pop1, PushI8, InlineNone, IPrimitive, 1, 0xFF, 0x85, NEXT) |
| 172 | OPDEF(CEE_CONV_OVF_U1_UN, "conv.ovf.u1.un" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x86, NEXT) |
| 173 | OPDEF(CEE_CONV_OVF_U2_UN, "conv.ovf.u2.un" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x87, NEXT) |
| 174 | OPDEF(CEE_CONV_OVF_U4_UN, "conv.ovf.u4.un" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x88, NEXT) |
| 175 | OPDEF(CEE_CONV_OVF_U8_UN, "conv.ovf.u8.un" , Pop1, PushI8, InlineNone, IPrimitive, 1, 0xFF, 0x89, NEXT) |
| 176 | OPDEF(CEE_CONV_OVF_I_UN, "conv.ovf.i.un" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x8A, NEXT) |
| 177 | OPDEF(CEE_CONV_OVF_U_UN, "conv.ovf.u.un" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0x8B, NEXT) |
| 178 | OPDEF(CEE_BOX, "box" , Pop1, PushRef, InlineType, IPrimitive, 1, 0xFF, 0x8C, NEXT) |
| 179 | OPDEF(CEE_NEWARR, "newarr" , PopI, PushRef, InlineType, IObjModel, 1, 0xFF, 0x8D, NEXT) |
| 180 | OPDEF(CEE_LDLEN, "ldlen" , PopRef, PushI, InlineNone, IObjModel, 1, 0xFF, 0x8E, NEXT) |
| 181 | OPDEF(CEE_LDELEMA, "ldelema" , PopRef+PopI, PushI, InlineType, IObjModel, 1, 0xFF, 0x8F, NEXT) |
| 182 | OPDEF(CEE_LDELEM_I1, "ldelem.i1" , PopRef+PopI, PushI, InlineNone, IObjModel, 1, 0xFF, 0x90, NEXT) |
| 183 | OPDEF(CEE_LDELEM_U1, "ldelem.u1" , PopRef+PopI, PushI, InlineNone, IObjModel, 1, 0xFF, 0x91, NEXT) |
| 184 | OPDEF(CEE_LDELEM_I2, "ldelem.i2" , PopRef+PopI, PushI, InlineNone, IObjModel, 1, 0xFF, 0x92, NEXT) |
| 185 | OPDEF(CEE_LDELEM_U2, "ldelem.u2" , PopRef+PopI, PushI, InlineNone, IObjModel, 1, 0xFF, 0x93, NEXT) |
| 186 | OPDEF(CEE_LDELEM_I4, "ldelem.i4" , PopRef+PopI, PushI, InlineNone, IObjModel, 1, 0xFF, 0x94, NEXT) |
| 187 | OPDEF(CEE_LDELEM_U4, "ldelem.u4" , PopRef+PopI, PushI, InlineNone, IObjModel, 1, 0xFF, 0x95, NEXT) |
| 188 | OPDEF(CEE_LDELEM_I8, "ldelem.i8" , PopRef+PopI, PushI8, InlineNone, IObjModel, 1, 0xFF, 0x96, NEXT) |
| 189 | OPDEF(CEE_LDELEM_I, "ldelem.i" , PopRef+PopI, PushI, InlineNone, IObjModel, 1, 0xFF, 0x97, NEXT) |
| 190 | OPDEF(CEE_LDELEM_R4, "ldelem.r4" , PopRef+PopI, PushR4, InlineNone, IObjModel, 1, 0xFF, 0x98, NEXT) |
| 191 | OPDEF(CEE_LDELEM_R8, "ldelem.r8" , PopRef+PopI, PushR8, InlineNone, IObjModel, 1, 0xFF, 0x99, NEXT) |
| 192 | OPDEF(CEE_LDELEM_REF, "ldelem.ref" , PopRef+PopI, PushRef, InlineNone, IObjModel, 1, 0xFF, 0x9A, NEXT) |
| 193 | OPDEF(CEE_STELEM_I, "stelem.i" , PopRef+PopI+PopI, Push0, InlineNone, IObjModel, 1, 0xFF, 0x9B, NEXT) |
| 194 | OPDEF(CEE_STELEM_I1, "stelem.i1" , PopRef+PopI+PopI, Push0, InlineNone, IObjModel, 1, 0xFF, 0x9C, NEXT) |
| 195 | OPDEF(CEE_STELEM_I2, "stelem.i2" , PopRef+PopI+PopI, Push0, InlineNone, IObjModel, 1, 0xFF, 0x9D, NEXT) |
| 196 | OPDEF(CEE_STELEM_I4, "stelem.i4" , PopRef+PopI+PopI, Push0, InlineNone, IObjModel, 1, 0xFF, 0x9E, NEXT) |
| 197 | OPDEF(CEE_STELEM_I8, "stelem.i8" , PopRef+PopI+PopI8, Push0, InlineNone, IObjModel, 1, 0xFF, 0x9F, NEXT) |
| 198 | OPDEF(CEE_STELEM_R4, "stelem.r4" , PopRef+PopI+PopR4, Push0, InlineNone, IObjModel, 1, 0xFF, 0xA0, NEXT) |
| 199 | OPDEF(CEE_STELEM_R8, "stelem.r8" , PopRef+PopI+PopR8, Push0, InlineNone, IObjModel, 1, 0xFF, 0xA1, NEXT) |
| 200 | OPDEF(CEE_STELEM_REF, "stelem.ref" , PopRef+PopI+PopRef, Push0, InlineNone, IObjModel, 1, 0xFF, 0xA2, NEXT) |
| 201 | OPDEF(CEE_LDELEM, "ldelem" , PopRef+PopI, Push1, InlineType, IObjModel, 1, 0xFF, 0xA3, NEXT) |
| 202 | OPDEF(CEE_STELEM, "stelem" , PopRef+PopI+Pop1, Push0, InlineType, IObjModel, 1, 0xFF, 0xA4, NEXT) |
| 203 | OPDEF(CEE_UNBOX_ANY, "unbox.any" , PopRef, Push1, InlineType, IObjModel, 1, 0xFF, 0xA5, NEXT) |
| 204 | OPDEF(CEE_UNUSED5, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA6, NEXT) |
| 205 | OPDEF(CEE_UNUSED6, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA7, NEXT) |
| 206 | OPDEF(CEE_UNUSED7, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA8, NEXT) |
| 207 | OPDEF(CEE_UNUSED8, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xA9, NEXT) |
| 208 | OPDEF(CEE_UNUSED9, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAA, NEXT) |
| 209 | OPDEF(CEE_UNUSED10, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAB, NEXT) |
| 210 | OPDEF(CEE_UNUSED11, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAC, NEXT) |
| 211 | OPDEF(CEE_UNUSED12, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAD, NEXT) |
| 212 | OPDEF(CEE_UNUSED13, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAE, NEXT) |
| 213 | OPDEF(CEE_UNUSED14, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xAF, NEXT) |
| 214 | OPDEF(CEE_UNUSED15, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xB0, NEXT) |
| 215 | OPDEF(CEE_UNUSED16, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xB1, NEXT) |
| 216 | OPDEF(CEE_UNUSED17, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xB2, NEXT) |
| 217 | OPDEF(CEE_CONV_OVF_I1, "conv.ovf.i1" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xB3, NEXT) |
| 218 | OPDEF(CEE_CONV_OVF_U1, "conv.ovf.u1" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xB4, NEXT) |
| 219 | OPDEF(CEE_CONV_OVF_I2, "conv.ovf.i2" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xB5, NEXT) |
| 220 | OPDEF(CEE_CONV_OVF_U2, "conv.ovf.u2" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xB6, NEXT) |
| 221 | OPDEF(CEE_CONV_OVF_I4, "conv.ovf.i4" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xB7, NEXT) |
| 222 | OPDEF(CEE_CONV_OVF_U4, "conv.ovf.u4" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xB8, NEXT) |
| 223 | OPDEF(CEE_CONV_OVF_I8, "conv.ovf.i8" , Pop1, PushI8, InlineNone, IPrimitive, 1, 0xFF, 0xB9, NEXT) |
| 224 | OPDEF(CEE_CONV_OVF_U8, "conv.ovf.u8" , Pop1, PushI8, InlineNone, IPrimitive, 1, 0xFF, 0xBA, NEXT) |
| 225 | OPDEF(CEE_UNUSED50, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xBB, NEXT) |
| 226 | OPDEF(CEE_UNUSED18, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xBC, NEXT) |
| 227 | OPDEF(CEE_UNUSED19, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xBD, NEXT) |
| 228 | OPDEF(CEE_UNUSED20, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xBE, NEXT) |
| 229 | OPDEF(CEE_UNUSED21, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xBF, NEXT) |
| 230 | OPDEF(CEE_UNUSED22, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xC0, NEXT) |
| 231 | OPDEF(CEE_UNUSED23, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xC1, NEXT) |
| 232 | OPDEF(CEE_REFANYVAL, "refanyval" , Pop1, PushI, InlineType, IPrimitive, 1, 0xFF, 0xC2, NEXT) |
| 233 | OPDEF(CEE_CKFINITE, "ckfinite" , Pop1, PushR8, InlineNone, IPrimitive, 1, 0xFF, 0xC3, NEXT) |
| 234 | OPDEF(CEE_UNUSED24, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xC4, NEXT) |
| 235 | OPDEF(CEE_UNUSED25, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xC5, NEXT) |
| 236 | OPDEF(CEE_MKREFANY, "mkrefany" , PopI, Push1, InlineType, IPrimitive, 1, 0xFF, 0xC6, NEXT) |
| 237 | OPDEF(CEE_UNUSED59, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xC7, NEXT) |
| 238 | OPDEF(CEE_UNUSED60, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xC8, NEXT) |
| 239 | OPDEF(CEE_UNUSED61, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xC9, NEXT) |
| 240 | OPDEF(CEE_UNUSED62, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCA, NEXT) |
| 241 | OPDEF(CEE_UNUSED63, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCB, NEXT) |
| 242 | OPDEF(CEE_UNUSED64, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCC, NEXT) |
| 243 | OPDEF(CEE_UNUSED65, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCD, NEXT) |
| 244 | OPDEF(CEE_UNUSED66, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCE, NEXT) |
| 245 | OPDEF(CEE_UNUSED67, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xCF, NEXT) |
| 246 | OPDEF(CEE_LDTOKEN, "ldtoken" , Pop0, PushI, InlineTok, IPrimitive, 1, 0xFF, 0xD0, NEXT) |
| 247 | OPDEF(CEE_CONV_U2, "conv.u2" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xD1, NEXT) |
| 248 | OPDEF(CEE_CONV_U1, "conv.u1" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xD2, NEXT) |
| 249 | OPDEF(CEE_CONV_I, "conv.i" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xD3, NEXT) |
| 250 | OPDEF(CEE_CONV_OVF_I, "conv.ovf.i" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xD4, NEXT) |
| 251 | OPDEF(CEE_CONV_OVF_U, "conv.ovf.u" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xD5, NEXT) |
| 252 | OPDEF(CEE_ADD_OVF, "add.ovf" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0xD6, NEXT) |
| 253 | OPDEF(CEE_ADD_OVF_UN, "add.ovf.un" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0xD7, NEXT) |
| 254 | OPDEF(CEE_MUL_OVF, "mul.ovf" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0xD8, NEXT) |
| 255 | OPDEF(CEE_MUL_OVF_UN, "mul.ovf.un" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0xD9, NEXT) |
| 256 | OPDEF(CEE_SUB_OVF, "sub.ovf" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0xDA, NEXT) |
| 257 | OPDEF(CEE_SUB_OVF_UN, "sub.ovf.un" , Pop1+Pop1, Push1, InlineNone, IPrimitive, 1, 0xFF, 0xDB, NEXT) |
| 258 | OPDEF(CEE_ENDFINALLY, "endfinally" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xDC, RETURN) |
| 259 | OPDEF(CEE_LEAVE, "leave" , Pop0, Push0, InlineBrTarget, IPrimitive, 1, 0xFF, 0xDD, BRANCH) |
| 260 | OPDEF(CEE_LEAVE_S, "leave.s" , Pop0, Push0, ShortInlineBrTarget,IPrimitive, 1, 0xFF, 0xDE, BRANCH) |
| 261 | OPDEF(CEE_STIND_I, "stind.i" , PopI+PopI, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xDF, NEXT) |
| 262 | OPDEF(CEE_CONV_U, "conv.u" , Pop1, PushI, InlineNone, IPrimitive, 1, 0xFF, 0xE0, NEXT) |
| 263 | OPDEF(CEE_UNUSED26, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE1, NEXT) |
| 264 | OPDEF(CEE_UNUSED27, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE2, NEXT) |
| 265 | OPDEF(CEE_UNUSED28, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE3, NEXT) |
| 266 | OPDEF(CEE_UNUSED29, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE4, NEXT) |
| 267 | OPDEF(CEE_UNUSED30, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE5, NEXT) |
| 268 | OPDEF(CEE_UNUSED31, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE6, NEXT) |
| 269 | OPDEF(CEE_UNUSED32, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE7, NEXT) |
| 270 | OPDEF(CEE_UNUSED33, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE8, NEXT) |
| 271 | OPDEF(CEE_UNUSED34, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xE9, NEXT) |
| 272 | OPDEF(CEE_UNUSED35, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xEA, NEXT) |
| 273 | OPDEF(CEE_UNUSED36, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xEB, NEXT) |
| 274 | OPDEF(CEE_UNUSED37, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xEC, NEXT) |
| 275 | OPDEF(CEE_UNUSED38, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xED, NEXT) |
| 276 | OPDEF(CEE_UNUSED39, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xEE, NEXT) |
| 277 | OPDEF(CEE_UNUSED40, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xEF, NEXT) |
| 278 | OPDEF(CEE_UNUSED41, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xF0, NEXT) |
| 279 | OPDEF(CEE_UNUSED42, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xF1, NEXT) |
| 280 | OPDEF(CEE_UNUSED43, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xF2, NEXT) |
| 281 | OPDEF(CEE_UNUSED44, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xF3, NEXT) |
| 282 | OPDEF(CEE_UNUSED45, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xF4, NEXT) |
| 283 | OPDEF(CEE_UNUSED46, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xF5, NEXT) |
| 284 | OPDEF(CEE_UNUSED47, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xF6, NEXT) |
| 285 | OPDEF(CEE_UNUSED48, "unused" , Pop0, Push0, InlineNone, IPrimitive, 1, 0xFF, 0xF7, NEXT) |
| 286 | OPDEF(CEE_PREFIX7, "prefix7" , Pop0, Push0, InlineNone, IInternal, 1, 0xFF, 0xF8, META) |
| 287 | OPDEF(CEE_PREFIX6, "prefix6" , Pop0, Push0, InlineNone, IInternal, 1, 0xFF, 0xF9, META) |
| 288 | OPDEF(CEE_PREFIX5, "prefix5" , Pop0, Push0, InlineNone, IInternal, 1, 0xFF, 0xFA, META) |
| 289 | OPDEF(CEE_PREFIX4, "prefix4" , Pop0, Push0, InlineNone, IInternal, 1, 0xFF, 0xFB, META) |
| 290 | OPDEF(CEE_PREFIX3, "prefix3" , Pop0, Push0, InlineNone, IInternal, 1, 0xFF, 0xFC, META) |
| 291 | OPDEF(CEE_PREFIX2, "prefix2" , Pop0, Push0, InlineNone, IInternal, 1, 0xFF, 0xFD, META) |
| 292 | OPDEF(CEE_PREFIX1, "prefix1" , Pop0, Push0, InlineNone, IInternal, 1, 0xFF, 0xFE, META) |
| 293 | OPDEF(CEE_PREFIXREF, "prefixref" , Pop0, Push0, InlineNone, IInternal, 1, 0xFF, 0xFF, META) |
| 294 | |
| 295 | OPDEF(CEE_ARGLIST, "arglist" , Pop0, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x00, NEXT) |
| 296 | OPDEF(CEE_CEQ, "ceq" , Pop1+Pop1, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x01, NEXT) |
| 297 | OPDEF(CEE_CGT, "cgt" , Pop1+Pop1, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x02, NEXT) |
| 298 | OPDEF(CEE_CGT_UN, "cgt.un" , Pop1+Pop1, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x03, NEXT) |
| 299 | OPDEF(CEE_CLT, "clt" , Pop1+Pop1, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x04, NEXT) |
| 300 | OPDEF(CEE_CLT_UN, "clt.un" , Pop1+Pop1, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x05, NEXT) |
| 301 | OPDEF(CEE_LDFTN, "ldftn" , Pop0, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x06, NEXT) |
| 302 | OPDEF(CEE_LDVIRTFTN, "ldvirtftn" , PopRef, PushI, InlineMethod, IPrimitive, 2, 0xFE, 0x07, NEXT) |
| 303 | OPDEF(CEE_UNUSED56, "unused" , Pop0, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x08, NEXT) |
| 304 | OPDEF(CEE_LDARG, "ldarg" , Pop0, Push1, InlineVar, IPrimitive, 2, 0xFE, 0x09, NEXT) |
| 305 | OPDEF(CEE_LDARGA, "ldarga" , Pop0, PushI, InlineVar, IPrimitive, 2, 0xFE, 0x0A, NEXT) |
| 306 | OPDEF(CEE_STARG, "starg" , Pop1, Push0, InlineVar, IPrimitive, 2, 0xFE, 0x0B, NEXT) |
| 307 | OPDEF(CEE_LDLOC, "ldloc" , Pop0, Push1, InlineVar, IPrimitive, 2, 0xFE, 0x0C, NEXT) |
| 308 | OPDEF(CEE_LDLOCA, "ldloca" , Pop0, PushI, InlineVar, IPrimitive, 2, 0xFE, 0x0D, NEXT) |
| 309 | OPDEF(CEE_STLOC, "stloc" , Pop1, Push0, InlineVar, IPrimitive, 2, 0xFE, 0x0E, NEXT) |
| 310 | OPDEF(CEE_LOCALLOC, "localloc" , PopI, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x0F, NEXT) |
| 311 | OPDEF(CEE_UNUSED57, "unused" , Pop0, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x10, NEXT) |
| 312 | OPDEF(CEE_ENDFILTER, "endfilter" , PopI, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x11, RETURN) |
| 313 | OPDEF(CEE_UNALIGNED, "unaligned." , Pop0, Push0, ShortInlineI, IPrefix, 2, 0xFE, 0x12, META) |
| 314 | OPDEF(CEE_VOLATILE, "volatile." , Pop0, Push0, InlineNone, IPrefix, 2, 0xFE, 0x13, META) |
| 315 | OPDEF(CEE_TAILCALL, "tail." , Pop0, Push0, InlineNone, IPrefix, 2, 0xFE, 0x14, META) |
| 316 | OPDEF(CEE_INITOBJ, "initobj" , PopI, Push0, InlineType, IObjModel, 2, 0xFE, 0x15, NEXT) |
| 317 | OPDEF(CEE_CONSTRAINED, "constrained." , Pop0, Push0, InlineType, IPrefix, 2, 0xFE, 0x16, META) |
| 318 | OPDEF(CEE_CPBLK, "cpblk" , PopI+PopI+PopI, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x17, NEXT) |
| 319 | OPDEF(CEE_INITBLK, "initblk" , PopI+PopI+PopI, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x18, NEXT) |
| 320 | OPDEF(CEE_UNUSED69, "unused" , Pop0, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x19, NEXT) |
| 321 | OPDEF(CEE_RETHROW, "rethrow" , Pop0, Push0, InlineNone, IObjModel, 2, 0xFE, 0x1A, THROW) |
| 322 | OPDEF(CEE_UNUSED51, "unused" , Pop0, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x1B, NEXT) |
| 323 | OPDEF(CEE_SIZEOF, "sizeof" , Pop0, PushI, InlineType, IPrimitive, 2, 0xFE, 0x1C, NEXT) |
| 324 | OPDEF(CEE_REFANYTYPE, "refanytype" , Pop1, PushI, InlineNone, IPrimitive, 2, 0xFE, 0x1D, NEXT) |
| 325 | OPDEF(CEE_READONLY, "readonly." , Pop0, Push0, InlineNone, IPrefix, 2, 0xFE, 0x1E, META) |
| 326 | OPDEF(CEE_UNUSED53, "unused" , Pop0, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x1F, NEXT) |
| 327 | OPDEF(CEE_UNUSED54, "unused" , Pop0, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x20, NEXT) |
| 328 | OPDEF(CEE_UNUSED55, "unused" , Pop0, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x21, NEXT) |
| 329 | OPDEF(CEE_UNUSED70, "unused" , Pop0, Push0, InlineNone, IPrimitive, 2, 0xFE, 0x22, NEXT) |
| 330 | |
| 331 | // These are not real opcodes, but they are handy internally in the EE |
| 332 | |
| 333 | OPDEF(CEE_ILLEGAL, "illegal" , Pop0, Push0, InlineNone, IInternal, 0, MOOT, MOOT, META) |
| 334 | OPDEF(CEE_MACRO_END, "endmac" , Pop0, Push0, InlineNone, IInternal, 0, MOOT, MOOT, META) |
| 335 | OPDEF(CEE_CODE_LABEL, "codelabel" , Pop0, Push0, InlineNone, IInternal, 0, MOOT, MOOT, META) |
| 336 | |
| 337 | #ifndef OPALIAS |
| 338 | #define _OPALIAS_DEFINED_ |
| 339 | #define OPALIAS(canonicalName, stringName, realOpcode) |
| 340 | #endif |
| 341 | |
| 342 | OPALIAS(CEE_BRNULL, "brnull" , CEE_BRFALSE) |
| 343 | OPALIAS(CEE_BRNULL_S, "brnull.s" , CEE_BRFALSE_S) |
| 344 | OPALIAS(CEE_BRZERO, "brzero" , CEE_BRFALSE) |
| 345 | OPALIAS(CEE_BRZERO_S, "brzero.s" , CEE_BRFALSE_S) |
| 346 | OPALIAS(CEE_BRINST, "brinst" , CEE_BRTRUE) |
| 347 | OPALIAS(CEE_BRINST_S, "brinst.s" , CEE_BRTRUE_S) |
| 348 | OPALIAS(CEE_LDIND_U8, "ldind.u8" , CEE_LDIND_I8) |
| 349 | OPALIAS(CEE_LDELEM_U8, "ldelem.u8" , CEE_LDELEM_I8) |
| 350 | OPALIAS(CEE_LDELEM_ANY, "ldelem.any" , CEE_LDELEM) |
| 351 | OPALIAS(CEE_STELEM_ANY, "stelem.any" , CEE_STELEM) |
| 352 | OPALIAS(CEE_LDC_I4_M1x, "ldc.i4.M1" , CEE_LDC_I4_M1) |
| 353 | OPALIAS(CEE_ENDFAULT, "endfault" , CEE_ENDFINALLY) |
| 354 | |
| 355 | #ifdef _OPALIAS_DEFINED_ |
| 356 | #undef OPALIAS |
| 357 | #undef _OPALIAS_DEFINED_ |
| 358 | #endif |
| 359 | |
| 360 | |