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 | |