[interp] Optimize ldelema (#15846)
[mono-project.git] / mono / mini / interp / mintops.def
blob0b2e887b03cec43a4399e6000796dda1a16033c4
1 /*
2 * Definitions of VM instructions executed by interp.c
4 * Authors:
5 * Bernie Solomon (bernard@ugsolutions.com)
7 */
9 /* OPDEF (opsymbol, opstring, oplength (in uint16s), optype) */
11 OPDEF(MINT_NOP, "nop", 1, MintOpNoArgs)
12 OPDEF(MINT_NIY, "niy", 1, MintOpNoArgs)
13 OPDEF(MINT_BREAK, "break", 1, MintOpNoArgs)
14 OPDEF(MINT_BREAKPOINT, "breakpoint", 1, MintOpNoArgs)
15 OPDEF(MINT_LDNULL, "ldnull", 1, MintOpNoArgs)
16 OPDEF(MINT_DUP, "dup", 1, MintOpNoArgs)
17 OPDEF(MINT_DUP_VT, "dup.vt", 3, MintOpInt)
18 OPDEF(MINT_POP, "pop", 2, MintOpShortInt)
20 OPDEF(MINT_RET, "ret", 1, MintOpNoArgs)
21 OPDEF(MINT_RET_VOID, "ret.void", 1, MintOpNoArgs)
22 OPDEF(MINT_RET_VT, "ret.vt", 3, MintOpInt)
24 OPDEF(MINT_VTRESULT, "vtresult", 4, MintOpShortAndInt) /*FIX should be unsigned*/
26 OPDEF(MINT_LDC_I4_M1, "ldc.i4.m1", 1, MintOpNoArgs)
27 OPDEF(MINT_LDC_I4_0, "ldc.i4.0", 1, MintOpNoArgs)
28 OPDEF(MINT_LDC_I4_1, "ldc.i4.1", 1, MintOpNoArgs)
29 OPDEF(MINT_LDC_I4_2, "ldc.i4.2", 1, MintOpNoArgs)
30 OPDEF(MINT_LDC_I4_3, "ldc.i4.3", 1, MintOpNoArgs)
31 OPDEF(MINT_LDC_I4_4, "ldc.i4.4", 1, MintOpNoArgs)
32 OPDEF(MINT_LDC_I4_5, "ldc.i4.5", 1, MintOpNoArgs)
33 OPDEF(MINT_LDC_I4_6, "ldc.i4.6", 1, MintOpNoArgs)
34 OPDEF(MINT_LDC_I4_7, "ldc.i4.7", 1, MintOpNoArgs)
35 OPDEF(MINT_LDC_I4_8, "ldc.i4.8", 1, MintOpNoArgs)
37 OPDEF(MINT_LDC_I4_S, "ldc.i4.s", 2, MintOpShortInt)
38 OPDEF(MINT_LDC_I4, "ldc.i4", 3, MintOpInt)
39 OPDEF(MINT_LDC_I8, "ldc.i8", 5, MintOpLongInt)
40 OPDEF(MINT_LDC_I8_S, "ldc.i8.s", 2, MintOpShortInt)
42 OPDEF(MINT_LDC_R4, "ldc.r4", 3, MintOpFloat)
43 OPDEF(MINT_LDC_R8, "ldc.r8", 5, MintOpDouble)
45 OPDEF(MINT_ARGLIST, "arglist", 1, MintOpNoArgs)
47 OPDEF(MINT_LDARG_I1, "ldarg.i1", 2, MintOpUShortInt)
48 OPDEF(MINT_LDARG_U1, "ldarg.u1", 2, MintOpUShortInt)
49 OPDEF(MINT_LDARG_I2, "ldarg.i2", 2, MintOpUShortInt)
50 OPDEF(MINT_LDARG_U2, "ldarg.u2", 2, MintOpUShortInt)
51 OPDEF(MINT_LDARG_I4, "ldarg.i4", 2, MintOpUShortInt)
52 OPDEF(MINT_LDARG_I8, "ldarg.i8", 2, MintOpUShortInt)
53 OPDEF(MINT_LDARG_R4, "ldarg.r4", 2, MintOpUShortInt)
54 OPDEF(MINT_LDARG_R8, "ldarg.r8", 2, MintOpUShortInt)
55 OPDEF(MINT_LDARG_O, "ldarg.o", 2, MintOpUShortInt)
56 OPDEF(MINT_LDARG_P, "ldarg.p", 2, MintOpUShortInt)
57 OPDEF(MINT_LDARG_VT, "ldarg.vt", 4, MintOpShortAndInt)
59 OPDEF(MINT_STARG_I1, "starg.i1", 2, MintOpUShortInt)
60 OPDEF(MINT_STARG_U1, "starg.u1", 2, MintOpUShortInt)
61 OPDEF(MINT_STARG_I2, "starg.i2", 2, MintOpUShortInt)
62 OPDEF(MINT_STARG_U2, "starg.u2", 2, MintOpUShortInt)
63 OPDEF(MINT_STARG_I4, "starg.i4", 2, MintOpUShortInt)
64 OPDEF(MINT_STARG_I8, "starg.i8", 2, MintOpUShortInt)
65 OPDEF(MINT_STARG_R4, "starg.r4", 2, MintOpUShortInt)
66 OPDEF(MINT_STARG_R8, "starg.r8", 2, MintOpUShortInt)
67 OPDEF(MINT_STARG_O, "starg.o", 2, MintOpUShortInt)
68 OPDEF(MINT_STARG_P, "starg.p", 2, MintOpUShortInt)
69 OPDEF(MINT_STARG_VT, "starg.vt", 4, MintOpShortAndInt)
71 OPDEF(MINT_LDARGA, "ldarga", 2, MintOpUShortInt)
72 OPDEF(MINT_LDARGA_VT, "ldarga.vt", 2, MintOpUShortInt)
74 OPDEF(MINT_LDFLD_I1, "ldfld.i1", 2, MintOpUShortInt)
75 OPDEF(MINT_LDFLD_U1, "ldfld.u1", 2, MintOpUShortInt)
76 OPDEF(MINT_LDFLD_I2, "ldfld.i2", 2, MintOpUShortInt)
77 OPDEF(MINT_LDFLD_U2, "ldfld.u2", 2, MintOpUShortInt)
78 OPDEF(MINT_LDFLD_I4, "ldfld.i4", 2, MintOpUShortInt)
79 OPDEF(MINT_LDFLD_I8, "ldfld.i8", 2, MintOpUShortInt)
80 OPDEF(MINT_LDFLD_R4, "ldfld.r4", 2, MintOpUShortInt)
81 OPDEF(MINT_LDFLD_R8, "ldfld.r8", 2, MintOpUShortInt)
82 OPDEF(MINT_LDFLD_O, "ldfld.o", 2, MintOpUShortInt)
83 OPDEF(MINT_LDFLD_P, "ldfld.p", 2, MintOpUShortInt)
84 OPDEF(MINT_LDFLD_VT, "ldfld.vt", 4, MintOpShortAndInt)
85 OPDEF(MINT_LDFLD_I8_UNALIGNED, "ldfld.i8.unaligned", 2, MintOpUShortInt)
86 OPDEF(MINT_LDFLD_R8_UNALIGNED, "ldfld.r8.unaligned", 2, MintOpUShortInt)
88 OPDEF(MINT_LDRMFLD, "ldrmfld", 2, MintOpFieldToken)
89 OPDEF(MINT_LDRMFLD_VT, "ldrmfld.vt", 2, MintOpUShortInt)
91 OPDEF(MINT_LDFLDA, "ldflda", 2, MintOpUShortInt)
92 OPDEF(MINT_LDFLDA_UNSAFE, "ldflda.unsafe", 2, MintOpUShortInt)
94 OPDEF(MINT_STFLD_I1, "stfld.i1", 2, MintOpUShortInt)
95 OPDEF(MINT_STFLD_U1, "stfld.u1", 2, MintOpUShortInt)
96 OPDEF(MINT_STFLD_I2, "stfld.i2", 2, MintOpUShortInt)
97 OPDEF(MINT_STFLD_U2, "stfld.u2", 2, MintOpUShortInt)
98 OPDEF(MINT_STFLD_I4, "stfld.i4", 2, MintOpUShortInt)
99 OPDEF(MINT_STFLD_I8, "stfld.i8", 2, MintOpUShortInt)
100 OPDEF(MINT_STFLD_R4, "stfld.r4", 2, MintOpUShortInt)
101 OPDEF(MINT_STFLD_R8, "stfld.r8", 2, MintOpUShortInt)
102 OPDEF(MINT_STFLD_O, "stfld.o", 2, MintOpUShortInt)
103 OPDEF(MINT_STFLD_P, "stfld.p", 2, MintOpUShortInt)
104 OPDEF(MINT_STFLD_VT, "stfld.vt", 3, MintOpTwoShorts)
105 OPDEF(MINT_STFLD_I8_UNALIGNED, "stfld.i8.unaligned", 2, MintOpUShortInt)
106 OPDEF(MINT_STFLD_R8_UNALIGNED, "stfld.r8.unaligned", 2, MintOpUShortInt)
108 OPDEF(MINT_STRMFLD, "strmfld", 2, MintOpFieldToken)
109 OPDEF(MINT_STRMFLD_VT, "strmfld.vt", 2, MintOpUShortInt)
111 OPDEF(MINT_LDTSFLD_I1, "ldtsfld.i1", 3, MintOpInt)
112 OPDEF(MINT_LDTSFLD_U1, "ldtsfld.u1", 3, MintOpInt)
113 OPDEF(MINT_LDTSFLD_I2, "ldtsfld.i2", 3, MintOpInt)
114 OPDEF(MINT_LDTSFLD_U2, "ldtsfld.u2", 3, MintOpInt)
115 OPDEF(MINT_LDTSFLD_I4, "ldtsfld.i4", 3, MintOpInt)
116 OPDEF(MINT_LDTSFLD_I8, "ldtsfld.i8", 3, MintOpInt)
117 OPDEF(MINT_LDTSFLD_R4, "ldtsfld.r4", 3, MintOpInt)
118 OPDEF(MINT_LDTSFLD_R8, "ldtsfld.r8", 3, MintOpInt)
119 OPDEF(MINT_LDTSFLD_O, "ldtsfld.o", 3, MintOpInt)
120 OPDEF(MINT_LDTSFLD_P, "ldtsfld.p", 3, MintOpInt)
121 OPDEF(MINT_LDSSFLD, "ldssfld", 4, MintOpFieldToken)
122 OPDEF(MINT_LDSSFLD_VT, "ldssfld.vt", 5, MintOpInt)
124 OPDEF(MINT_LDSFLD_I1, "ldsfld.i1", 3, MintOpUShortInt)
125 OPDEF(MINT_LDSFLD_U1, "ldsfld.u1", 3, MintOpUShortInt)
126 OPDEF(MINT_LDSFLD_I2, "ldsfld.i2", 3, MintOpUShortInt)
127 OPDEF(MINT_LDSFLD_U2, "ldsfld.u2", 3, MintOpUShortInt)
128 OPDEF(MINT_LDSFLD_I4, "ldsfld.i4", 3, MintOpUShortInt)
129 OPDEF(MINT_LDSFLD_I8, "ldsfld.i8", 3, MintOpUShortInt)
130 OPDEF(MINT_LDSFLD_R4, "ldsfld.r4", 3, MintOpUShortInt)
131 OPDEF(MINT_LDSFLD_R8, "ldsfld.r8", 3, MintOpUShortInt)
132 OPDEF(MINT_LDSFLD_O, "ldsfld.o", 3, MintOpUShortInt)
133 OPDEF(MINT_LDSFLD_P, "ldsfld.p", 3, MintOpUShortInt)
134 OPDEF(MINT_LDSFLD_VT, "ldsfld.vt", 5, MintOpTwoShorts)
136 OPDEF(MINT_STTSFLD_I1, "sttsfld.i1", 3, MintOpInt)
137 OPDEF(MINT_STTSFLD_U1, "sttsfld.u1", 3, MintOpInt)
138 OPDEF(MINT_STTSFLD_I2, "sttsfld.i2", 3, MintOpInt)
139 OPDEF(MINT_STTSFLD_U2, "sttsfld.u2", 3, MintOpInt)
140 OPDEF(MINT_STTSFLD_I4, "sttsfld.i4", 3, MintOpInt)
141 OPDEF(MINT_STTSFLD_I8, "sttsfld.i8", 3, MintOpInt)
142 OPDEF(MINT_STTSFLD_R4, "sttsfld.r4", 3, MintOpInt)
143 OPDEF(MINT_STTSFLD_R8, "sttsfld.r8", 3, MintOpInt)
144 OPDEF(MINT_STTSFLD_O, "sttsfld.o", 3, MintOpInt)
145 OPDEF(MINT_STTSFLD_P, "sttsfld.p", 3, MintOpInt)
146 OPDEF(MINT_STSSFLD, "stssfld", 4, MintOpFieldToken)
147 OPDEF(MINT_STSSFLD_VT, "stssfld.vt", 5, MintOpInt)
148 OPDEF(MINT_STSFLD_I1, "stsfld.i1", 3, MintOpUShortInt)
149 OPDEF(MINT_STSFLD_U1, "stsfld.u1", 3, MintOpUShortInt)
150 OPDEF(MINT_STSFLD_I2, "stsfld.i2", 3, MintOpUShortInt)
151 OPDEF(MINT_STSFLD_U2, "stsfld.u2", 3, MintOpUShortInt)
152 OPDEF(MINT_STSFLD_I4, "stsfld.i4", 3, MintOpUShortInt)
153 OPDEF(MINT_STSFLD_I8, "stsfld.i8", 3, MintOpUShortInt)
154 OPDEF(MINT_STSFLD_R4, "stsfld.r4", 3, MintOpUShortInt)
155 OPDEF(MINT_STSFLD_R8, "stsfld.r8", 3, MintOpUShortInt)
156 OPDEF(MINT_STSFLD_O, "stsfld.o", 3, MintOpUShortInt)
157 OPDEF(MINT_STSFLD_P, "stsfld.p", 3, MintOpUShortInt)
158 OPDEF(MINT_STSFLD_VT, "stsfld.vt", 5, MintOpTwoShorts)
159 OPDEF(MINT_LDSFLDA, "ldsflda", 3, MintOpTwoShorts)
160 OPDEF(MINT_LDSSFLDA, "ldssflda", 4, MintOpInt)
162 OPDEF(MINT_LDLOC_I1, "ldloc.i1", 2, MintOpUShortInt)
163 OPDEF(MINT_LDLOC_U1, "ldloc.u1", 2, MintOpUShortInt)
164 OPDEF(MINT_LDLOC_I2, "ldloc.i2", 2, MintOpUShortInt)
165 OPDEF(MINT_LDLOC_U2, "ldloc.u2", 2, MintOpUShortInt)
166 OPDEF(MINT_LDLOC_I4, "ldloc.i4", 2, MintOpUShortInt)
167 OPDEF(MINT_LDLOC_I8, "ldloc.i8", 2, MintOpUShortInt)
168 OPDEF(MINT_LDLOC_R4, "ldloc.r4", 2, MintOpUShortInt)
169 OPDEF(MINT_LDLOC_R8, "ldloc.r8", 2, MintOpUShortInt)
170 OPDEF(MINT_LDLOC_O, "ldloc.o", 2, MintOpUShortInt)
171 OPDEF(MINT_LDLOC_P, "ldloc.p", 2, MintOpUShortInt)
172 OPDEF(MINT_LDLOC_VT, "ldloc.vt", 4, MintOpShortAndInt)
174 OPDEF(MINT_STLOC_I1, "stloc.i1", 2, MintOpUShortInt)
175 OPDEF(MINT_STLOC_U1, "stloc.u1", 2, MintOpUShortInt)
176 OPDEF(MINT_STLOC_I2, "stloc.i2", 2, MintOpUShortInt)
177 OPDEF(MINT_STLOC_U2, "stloc.u2", 2, MintOpUShortInt)
178 OPDEF(MINT_STLOC_I4, "stloc.i4", 2, MintOpUShortInt)
179 OPDEF(MINT_STLOC_I8, "stloc.i8", 2, MintOpUShortInt)
180 OPDEF(MINT_STLOC_R4, "stloc.r4", 2, MintOpUShortInt)
181 OPDEF(MINT_STLOC_R8, "stloc.r8", 2, MintOpUShortInt)
182 OPDEF(MINT_STLOC_O, "stloc.o", 2, MintOpUShortInt)
183 OPDEF(MINT_STLOC_P, "stloc.p", 2, MintOpUShortInt)
184 OPDEF(MINT_STLOC_VT, "stloc.vt", 4, MintOpShortAndInt)
186 OPDEF(MINT_STLOC_NP_I4, "stloc.np.i4", 2, MintOpUShortInt)
187 OPDEF(MINT_STLOC_NP_O, "stloc.np.o", 2, MintOpUShortInt)
189 OPDEF(MINT_LDLOCA_S, "ldloca.s", 2, MintOpUShortInt)
191 OPDEF(MINT_LDIND_I1_CHECK, "ldind.i1.check", 1, MintOpNoArgs)
192 OPDEF(MINT_LDIND_U1_CHECK, "ldind.u1.check", 1, MintOpNoArgs)
193 OPDEF(MINT_LDIND_I2_CHECK, "ldind.i2.check", 1, MintOpNoArgs)
194 OPDEF(MINT_LDIND_U2_CHECK, "ldind.u2.check", 1, MintOpNoArgs)
195 OPDEF(MINT_LDIND_I4_CHECK, "ldind.i4.check", 1, MintOpNoArgs)
196 OPDEF(MINT_LDIND_U4_CHECK, "ldind.u4.check", 1, MintOpNoArgs)
197 OPDEF(MINT_LDIND_I8_CHECK, "ldind.i8.check", 1, MintOpNoArgs)
198 OPDEF(MINT_LDIND_I, "ldind.i", 2, MintOpUShortInt)
199 OPDEF(MINT_LDIND_I8, "ldind.i8", 2, MintOpUShortInt)
200 OPDEF(MINT_LDIND_R4_CHECK, "ldind.r4.check", 1, MintOpNoArgs)
201 OPDEF(MINT_LDIND_R8_CHECK, "ldind.r8.check", 1, MintOpNoArgs)
202 OPDEF(MINT_LDIND_REF, "ldind.ref", 1, MintOpNoArgs)
203 OPDEF(MINT_LDIND_REF_CHECK, "ldind.ref.check", 1, MintOpNoArgs)
204 OPDEF(MINT_STIND_I1, "stind.i1", 1, MintOpNoArgs)
205 OPDEF(MINT_STIND_I2, "stind.i2", 1, MintOpNoArgs)
206 OPDEF(MINT_STIND_I4, "stind.i4", 1, MintOpNoArgs)
207 OPDEF(MINT_STIND_I8, "stind.i8", 1, MintOpNoArgs)
208 OPDEF(MINT_STIND_I, "stind.i", 1, MintOpNoArgs)
209 OPDEF(MINT_STIND_R4, "stind.r4", 1, MintOpNoArgs)
210 OPDEF(MINT_STIND_R8, "stind.r8", 1, MintOpNoArgs)
211 OPDEF(MINT_STIND_REF, "stind.ref", 1, MintOpNoArgs)
213 OPDEF(MINT_BR, "br", 3, MintOpBranch)
214 OPDEF(MINT_LEAVE, "leave", 3, MintOpBranch)
215 OPDEF(MINT_LEAVE_CHECK, "leave.check", 3, MintOpBranch)
216 OPDEF(MINT_BR_S, "br.s", 2, MintOpShortBranch)
217 OPDEF(MINT_LEAVE_S, "leave.s", 2, MintOpShortBranch)
218 OPDEF(MINT_LEAVE_S_CHECK, "leave.s.check", 2, MintOpShortBranch)
220 OPDEF(MINT_THROW, "throw", 1, MintOpNoArgs)
221 OPDEF(MINT_RETHROW, "rethrow", 2, MintOpUShortInt)
222 OPDEF(MINT_ENDFINALLY, "endfinally", 2, MintOpNoArgs)
223 OPDEF(MINT_MONO_RETHROW, "mono_rethrow", 1, MintOpNoArgs)
225 OPDEF(MINT_CHECKPOINT, "checkpoint", 1, MintOpNoArgs)
226 OPDEF(MINT_SAFEPOINT, "safepoint", 1, MintOpNoArgs)
228 OPDEF(MINT_BRFALSE_I4, "brfalse.i4", 3, MintOpBranch)
229 OPDEF(MINT_BRFALSE_I8, "brfalse.i8", 3, MintOpBranch)
230 OPDEF(MINT_BRFALSE_R4, "brfalse.r4", 3, MintOpBranch)
231 OPDEF(MINT_BRFALSE_R8, "brfalse.r8", 3, MintOpBranch)
232 OPDEF(MINT_BRTRUE_I4, "brtrue.i4", 3, MintOpBranch)
233 OPDEF(MINT_BRTRUE_I8, "brtrue.i8", 3, MintOpBranch)
234 OPDEF(MINT_BRTRUE_R4, "brtrue.r4", 3, MintOpBranch)
235 OPDEF(MINT_BRTRUE_R8, "brtrue.r8", 3, MintOpBranch)
237 OPDEF(MINT_BRFALSE_I4_S, "brfalse.i4.s", 2, MintOpShortBranch)
238 OPDEF(MINT_BRFALSE_I8_S, "brfalse.i8.s", 2, MintOpShortBranch)
239 OPDEF(MINT_BRFALSE_R4_S, "brfalse.r4.s", 2, MintOpShortBranch)
240 OPDEF(MINT_BRFALSE_R8_S, "brfalse.r8.s", 2, MintOpShortBranch)
241 OPDEF(MINT_BRTRUE_I4_S, "brtrue.i4.s", 2, MintOpShortBranch)
242 OPDEF(MINT_BRTRUE_I8_S, "brtrue.i8.s", 2, MintOpShortBranch)
243 OPDEF(MINT_BRTRUE_R4_S, "brtrue.r4.s", 2, MintOpShortBranch)
244 OPDEF(MINT_BRTRUE_R8_S, "brtrue.r8.s", 2, MintOpShortBranch)
246 OPDEF(MINT_BEQ_I4, "beq.i4", 3, MintOpBranch)
247 OPDEF(MINT_BEQ_I8, "beq.i8", 3, MintOpBranch)
248 OPDEF(MINT_BEQ_R4, "beq.r4", 3, MintOpBranch)
249 OPDEF(MINT_BEQ_R8, "beq.r8", 3, MintOpBranch)
250 OPDEF(MINT_BGE_I4, "bge.i4", 3, MintOpBranch)
251 OPDEF(MINT_BGE_I8, "bge.i8", 3, MintOpBranch)
252 OPDEF(MINT_BGE_R4, "bge.r4", 3, MintOpBranch)
253 OPDEF(MINT_BGE_R8, "bge.r8", 3, MintOpBranch)
254 OPDEF(MINT_BGT_I4, "bgt.i4", 3, MintOpBranch)
255 OPDEF(MINT_BGT_I8, "bgt.i8", 3, MintOpBranch)
256 OPDEF(MINT_BGT_R4, "bgt.r4", 3, MintOpBranch)
257 OPDEF(MINT_BGT_R8, "bgt.r8", 3, MintOpBranch)
258 OPDEF(MINT_BLT_I4, "blt.i4", 3, MintOpBranch)
259 OPDEF(MINT_BLT_I8, "blt.i8", 3, MintOpBranch)
260 OPDEF(MINT_BLT_R4, "blt.r4", 3, MintOpBranch)
261 OPDEF(MINT_BLT_R8, "blt.r8", 3, MintOpBranch)
262 OPDEF(MINT_BLE_I4, "ble.i4", 3, MintOpBranch)
263 OPDEF(MINT_BLE_I8, "ble.i8", 3, MintOpBranch)
264 OPDEF(MINT_BLE_R4, "ble.r4", 3, MintOpBranch)
265 OPDEF(MINT_BLE_R8, "ble.r8", 3, MintOpBranch)
267 OPDEF(MINT_BNE_UN_I4, "bne.un.i4", 3, MintOpBranch)
268 OPDEF(MINT_BNE_UN_I8, "bne.un.i8", 3, MintOpBranch)
269 OPDEF(MINT_BNE_UN_R4, "bne.un.r4", 3, MintOpBranch)
270 OPDEF(MINT_BNE_UN_R8, "bne.un.r8", 3, MintOpBranch)
271 OPDEF(MINT_BGE_UN_I4, "bge.un.i4", 3, MintOpBranch)
272 OPDEF(MINT_BGE_UN_I8, "bge.un.i8", 3, MintOpBranch)
273 OPDEF(MINT_BGE_UN_R4, "bge.un.r4", 3, MintOpBranch)
274 OPDEF(MINT_BGE_UN_R8, "bge.un.r8", 3, MintOpBranch)
275 OPDEF(MINT_BGT_UN_I4, "bgt.un.i4", 3, MintOpBranch)
276 OPDEF(MINT_BGT_UN_I8, "bgt.un.i8", 3, MintOpBranch)
277 OPDEF(MINT_BGT_UN_R4, "bgt.un.r4", 3, MintOpBranch)
278 OPDEF(MINT_BGT_UN_R8, "bgt.un.r8", 3, MintOpBranch)
279 OPDEF(MINT_BLE_UN_I4, "ble.un.i4", 3, MintOpBranch)
280 OPDEF(MINT_BLE_UN_I8, "ble.un.i8", 3, MintOpBranch)
281 OPDEF(MINT_BLE_UN_R4, "ble.un.r4", 3, MintOpBranch)
282 OPDEF(MINT_BLE_UN_R8, "ble.un.r8", 3, MintOpBranch)
283 OPDEF(MINT_BLT_UN_I4, "blt.un.i4", 3, MintOpBranch)
284 OPDEF(MINT_BLT_UN_I8, "blt.un.i8", 3, MintOpBranch)
285 OPDEF(MINT_BLT_UN_R4, "blt.un.r4", 3, MintOpBranch)
286 OPDEF(MINT_BLT_UN_R8, "blt.un.r8", 3, MintOpBranch)
288 OPDEF(MINT_BEQ_I4_S, "beq.i4.s", 2, MintOpShortBranch)
289 OPDEF(MINT_BEQ_I8_S, "beq.i8.s", 2, MintOpShortBranch)
290 OPDEF(MINT_BEQ_R4_S, "beq.r4.s", 2, MintOpShortBranch)
291 OPDEF(MINT_BEQ_R8_S, "beq.r8.s", 2, MintOpShortBranch)
292 OPDEF(MINT_BGE_I4_S, "bge.i4.s", 2, MintOpShortBranch)
293 OPDEF(MINT_BGE_I8_S, "bge.i8.s", 2, MintOpShortBranch)
294 OPDEF(MINT_BGE_R4_S, "bge.r4.s", 2, MintOpShortBranch)
295 OPDEF(MINT_BGE_R8_S, "bge.r8.s", 2, MintOpShortBranch)
296 OPDEF(MINT_BGT_I4_S, "bgt.i4.s", 2, MintOpShortBranch)
297 OPDEF(MINT_BGT_I8_S, "bgt.i8.s", 2, MintOpShortBranch)
298 OPDEF(MINT_BGT_R4_S, "bgt.r4.s", 2, MintOpShortBranch)
299 OPDEF(MINT_BGT_R8_S, "bgt.r8.s", 2, MintOpShortBranch)
300 OPDEF(MINT_BLT_I4_S, "blt.i4.s", 2, MintOpShortBranch)
301 OPDEF(MINT_BLT_I8_S, "blt.i8.s", 2, MintOpShortBranch)
302 OPDEF(MINT_BLT_R4_S, "blt.r4.s", 2, MintOpShortBranch)
303 OPDEF(MINT_BLT_R8_S, "blt.r8.s", 2, MintOpShortBranch)
304 OPDEF(MINT_BLE_I4_S, "ble.i4.s", 2, MintOpShortBranch)
305 OPDEF(MINT_BLE_I8_S, "ble.i8.s", 2, MintOpShortBranch)
306 OPDEF(MINT_BLE_R4_S, "ble.r4.s", 2, MintOpShortBranch)
307 OPDEF(MINT_BLE_R8_S, "ble.r8.s", 2, MintOpShortBranch)
309 OPDEF(MINT_BNE_UN_I4_S, "bne.un.i4.s", 2, MintOpShortBranch)
310 OPDEF(MINT_BNE_UN_I8_S, "bne.un.i8.s", 2, MintOpShortBranch)
311 OPDEF(MINT_BNE_UN_R4_S, "bne.un.r4.s", 2, MintOpShortBranch)
312 OPDEF(MINT_BNE_UN_R8_S, "bne.un.r8.s", 2, MintOpShortBranch)
313 OPDEF(MINT_BGE_UN_I4_S, "bge.un.i4.s", 2, MintOpShortBranch)
314 OPDEF(MINT_BGE_UN_I8_S, "bge.un.i8.s", 2, MintOpShortBranch)
315 OPDEF(MINT_BGE_UN_R4_S, "bge.un.r4.s", 2, MintOpShortBranch)
316 OPDEF(MINT_BGE_UN_R8_S, "bge.un.r8.s", 2, MintOpShortBranch)
317 OPDEF(MINT_BGT_UN_I4_S, "bgt.un.i4.s", 2, MintOpShortBranch)
318 OPDEF(MINT_BGT_UN_I8_S, "bgt.un.i8.s", 2, MintOpShortBranch)
319 OPDEF(MINT_BGT_UN_R4_S, "bgt.un.r4.s", 2, MintOpShortBranch)
320 OPDEF(MINT_BGT_UN_R8_S, "bgt.un.r8.s", 2, MintOpShortBranch)
321 OPDEF(MINT_BLE_UN_I4_S, "ble.un.i4.s", 2, MintOpShortBranch)
322 OPDEF(MINT_BLE_UN_I8_S, "ble.un.i8.s", 2, MintOpShortBranch)
323 OPDEF(MINT_BLE_UN_R4_S, "ble.un.r4.s", 2, MintOpShortBranch)
324 OPDEF(MINT_BLE_UN_R8_S, "ble.un.r8.s", 2, MintOpShortBranch)
325 OPDEF(MINT_BLT_UN_I4_S, "blt.un.i4.s", 2, MintOpShortBranch)
326 OPDEF(MINT_BLT_UN_I8_S, "blt.un.i8.s", 2, MintOpShortBranch)
327 OPDEF(MINT_BLT_UN_R4_S, "blt.un.r4.s", 2, MintOpShortBranch)
328 OPDEF(MINT_BLT_UN_R8_S, "blt.un.r8.s", 2, MintOpShortBranch)
330 OPDEF(MINT_SWITCH, "switch", 0, MintOpSwitch)
332 OPDEF(MINT_LDSTR, "ldstr", 2, MintOpMethodToken) /* not really */
333 OPDEF(MINT_LDSTR_TOKEN, "ldstr.token", 2, MintOpMethodToken) /* not really */
335 OPDEF(MINT_CALL, "call", 2, MintOpMethodToken)
336 OPDEF(MINT_VCALL, "vcall", 2, MintOpMethodToken)
337 OPDEF(MINT_CALLVIRT, "callvirt", 2, MintOpMethodToken)
338 OPDEF(MINT_VCALLVIRT, "vcallvirt", 2, MintOpMethodToken)
339 OPDEF(MINT_CALLVIRT_FAST, "callvirt.fast", 3, MintOpMethodToken)
340 OPDEF(MINT_VCALLVIRT_FAST, "vcallvirt.fast", 3, MintOpMethodToken)
341 OPDEF(MINT_CALLI, "calli", 2, MintOpMethodToken)
342 OPDEF(MINT_CALLI_NAT, "calli.nat", 3, MintOpMethodToken)
343 OPDEF(MINT_CALLI_NAT_FAST, "calli.nat.fast", 4, MintOpMethodToken)
344 OPDEF(MINT_CALL_VARARG, "call.vararg", 3, MintOpMethodToken)
345 OPDEF(MINT_JMP, "jmp", 2, MintOpMethodToken)
347 OPDEF(MINT_CALLRUN, "callrun", 3, MintOpNoArgs)
349 OPDEF(MINT_ENDFILTER, "endfilter", 1, MintOpNoArgs)
351 OPDEF(MINT_NEWOBJ, "newobj", 2, MintOpMethodToken)
352 OPDEF(MINT_NEWOBJ_ARRAY, "newobj_array", 3, MintOpMethodToken)
353 OPDEF(MINT_NEWOBJ_FAST, "newobj_fast", 4, MintOpMethodToken)
354 OPDEF(MINT_NEWOBJ_VT_FAST, "newobj_vt_fast", 3, MintOpMethodToken)
355 OPDEF(MINT_NEWOBJ_VTST_FAST, "newobj_vtst_fast", 4, MintOpMethodToken)
356 OPDEF(MINT_NEWOBJ_MAGIC, "newobj_magic", 2, MintOpMethodToken)
357 OPDEF(MINT_INITOBJ, "initobj", 3, MintOpInt)
358 OPDEF(MINT_CASTCLASS, "castclass", 2, MintOpClassToken)
359 OPDEF(MINT_ISINST, "isinst", 2, MintOpClassToken)
360 OPDEF(MINT_CASTCLASS_INTERFACE, "castclass.interface", 2, MintOpClassToken)
361 OPDEF(MINT_ISINST_INTERFACE, "isinst.interface", 2, MintOpClassToken)
362 OPDEF(MINT_CASTCLASS_COMMON, "castclass.common", 2, MintOpClassToken)
363 OPDEF(MINT_ISINST_COMMON, "isinst.common", 2, MintOpClassToken)
364 OPDEF(MINT_NEWARR, "newarr", 2, MintOpClassToken)
365 OPDEF(MINT_BOX, "box", 3, MintOpTwoShorts)
366 OPDEF(MINT_BOX_VT, "box.vt", 3, MintOpTwoShorts)
367 OPDEF(MINT_BOX_NULLABLE, "box.nullable", 3, MintOpTwoShorts)
368 OPDEF(MINT_UNBOX, "unbox", 2, MintOpClassToken)
369 OPDEF(MINT_LDTOKEN, "ldtoken", 2, MintOpClassToken) /* not really */
370 OPDEF(MINT_LDFTN, "ldftn", 2, MintOpMethodToken)
371 OPDEF(MINT_LDFTN_DYNAMIC, "ldftn.dynamic", 1, MintOpMethodToken)
372 OPDEF(MINT_LDVIRTFTN, "ldvirtftn", 2, MintOpMethodToken)
373 OPDEF(MINT_CPOBJ, "cpobj", 2, MintOpClassToken)
374 OPDEF(MINT_CPOBJ_VT, "cpobj.vt", 2, MintOpClassToken)
375 OPDEF(MINT_LDOBJ_VT, "ldobj.vt", 3, MintOpInt)
376 OPDEF(MINT_STOBJ_VT, "stobj.vt", 2, MintOpClassToken)
377 OPDEF(MINT_CPBLK, "cpblk", 1, MintOpNoArgs)
378 OPDEF(MINT_INITBLK, "initblk", 1, MintOpNoArgs)
379 OPDEF(MINT_LOCALLOC, "localloc", 1, MintOpNoArgs)
380 OPDEF(MINT_INITLOCALS, "initlocals", 1, MintOpNoArgs)
382 OPDEF(MINT_LDELEM_I, "ldelem.i", 1, MintOpNoArgs)
383 OPDEF(MINT_LDELEM_I1, "ldelem.i1", 1, MintOpNoArgs)
384 OPDEF(MINT_LDELEM_U1, "ldelem.u1", 1, MintOpNoArgs)
385 OPDEF(MINT_LDELEM_I2, "ldelem.i2", 1, MintOpNoArgs)
386 OPDEF(MINT_LDELEM_U2, "ldelem.u2", 1, MintOpNoArgs)
387 OPDEF(MINT_LDELEM_I4, "ldelem.i4", 1, MintOpNoArgs)
388 OPDEF(MINT_LDELEM_U4, "ldelem.u4", 1, MintOpNoArgs)
389 OPDEF(MINT_LDELEM_I8, "ldelem.i8", 1, MintOpNoArgs)
390 OPDEF(MINT_LDELEM_R4, "ldelem.r4", 1, MintOpNoArgs)
391 OPDEF(MINT_LDELEM_R8, "ldelem.r8", 1, MintOpNoArgs)
392 OPDEF(MINT_LDELEM_REF, "ldelem.ref", 1, MintOpNoArgs)
393 OPDEF(MINT_LDELEM_VT, "ldelem.vt", 3, MintOpInt)
395 OPDEF(MINT_LDELEMA, "ldelema", 3, MintOpTwoShorts)
396 OPDEF(MINT_LDELEMA_TC, "ldelema.tc", 3, MintOpTwoShorts)
397 OPDEF(MINT_LDELEMA_FAST, "ldelema.fast", 3, MintOpInt)
399 OPDEF(MINT_STELEM_I, "stelem.i", 1, MintOpNoArgs)
400 OPDEF(MINT_STELEM_I1, "stelem.i1", 1, MintOpNoArgs)
401 OPDEF(MINT_STELEM_U1, "stelem.u1", 1, MintOpNoArgs)
402 OPDEF(MINT_STELEM_I2, "stelem.i2", 1, MintOpNoArgs)
403 OPDEF(MINT_STELEM_U2, "stelem.u2", 1, MintOpNoArgs)
404 OPDEF(MINT_STELEM_I4, "stelem.i4", 1, MintOpNoArgs)
405 OPDEF(MINT_STELEM_I8, "stelem.i8", 1, MintOpNoArgs)
406 OPDEF(MINT_STELEM_R4, "stelem.r4", 1, MintOpNoArgs)
407 OPDEF(MINT_STELEM_R8, "stelem.r8", 1, MintOpNoArgs)
408 OPDEF(MINT_STELEM_REF, "stelem.ref", 1, MintOpNoArgs)
409 OPDEF(MINT_STELEM_VT, "stelem.vt", 4, MintOpShortAndInt)
411 OPDEF(MINT_LDLEN, "ldlen", 1, MintOpNoArgs)
412 OPDEF(MINT_LDLEN_SPAN, "ldlen.span", 2, MintOpShortInt)
414 OPDEF(MINT_GETITEM_SPAN, "getitem.span", 4, MintOpShortAndInt)
416 OPDEF(MINT_ADD_I4, "add.i4", 1, MintOpNoArgs)
417 OPDEF(MINT_ADD_I8, "add.i8", 1, MintOpNoArgs)
418 OPDEF(MINT_ADD_R4, "add.r4", 1, MintOpNoArgs)
419 OPDEF(MINT_ADD_R8, "add.r8", 1, MintOpNoArgs)
421 OPDEF(MINT_ADD1_I4, "add1.i4", 1, MintOpNoArgs)
422 OPDEF(MINT_ADD1_I8, "add1.i8", 1, MintOpNoArgs)
424 OPDEF(MINT_SUB_I4, "sub.i4", 1, MintOpNoArgs)
425 OPDEF(MINT_SUB_I8, "sub.i8", 1, MintOpNoArgs)
426 OPDEF(MINT_SUB_R4, "sub.r4", 1, MintOpNoArgs)
427 OPDEF(MINT_SUB_R8, "sub.r8", 1, MintOpNoArgs)
429 OPDEF(MINT_SUB1_I4, "sub1.i4", 1, MintOpNoArgs)
430 OPDEF(MINT_SUB1_I8, "sub1.i8", 1, MintOpNoArgs)
432 OPDEF(MINT_MUL_I4, "mul.i4", 1, MintOpNoArgs)
433 OPDEF(MINT_MUL_I8, "mul.i8", 1, MintOpNoArgs)
434 OPDEF(MINT_MUL_R4, "mul.r4", 1, MintOpNoArgs)
435 OPDEF(MINT_MUL_R8, "mul.r8", 1, MintOpNoArgs)
437 OPDEF(MINT_DIV_I4, "div.i4", 1, MintOpNoArgs)
438 OPDEF(MINT_DIV_I8, "div.i8", 1, MintOpNoArgs)
439 OPDEF(MINT_DIV_R4, "div.r4", 1, MintOpNoArgs)
440 OPDEF(MINT_DIV_R8, "div.r8", 1, MintOpNoArgs)
442 OPDEF(MINT_DIV_UN_I4, "div.un.i4", 1, MintOpNoArgs)
443 OPDEF(MINT_DIV_UN_I8, "div.un.i8", 1, MintOpNoArgs)
445 OPDEF(MINT_ADD_OVF_I4, "add.ovf.i4", 1, MintOpNoArgs)
446 OPDEF(MINT_ADD_OVF_I8, "add.ovf.i8", 1, MintOpNoArgs)
448 OPDEF(MINT_ADD_OVF_UN_I4, "add.ovf.un.i4", 1, MintOpNoArgs)
449 OPDEF(MINT_ADD_OVF_UN_I8, "add.ovf.un.i8", 1, MintOpNoArgs)
451 OPDEF(MINT_MUL_OVF_I4, "mul.ovf.i4", 1, MintOpNoArgs)
452 OPDEF(MINT_MUL_OVF_I8, "mul.ovf.i8", 1, MintOpNoArgs)
454 OPDEF(MINT_MUL_OVF_UN_I4, "mul.ovf.un.i4", 1, MintOpNoArgs)
455 OPDEF(MINT_MUL_OVF_UN_I8, "mul.ovf.un.i8", 1, MintOpNoArgs)
457 OPDEF(MINT_SUB_OVF_I4, "sub.ovf.i4", 1, MintOpNoArgs)
458 OPDEF(MINT_SUB_OVF_I8, "sub.ovf.i8", 1, MintOpNoArgs)
460 OPDEF(MINT_SUB_OVF_UN_I4, "sub.ovf.un.i4", 1, MintOpNoArgs)
461 OPDEF(MINT_SUB_OVF_UN_I8, "sub.ovf.un.i8", 1, MintOpNoArgs)
463 OPDEF(MINT_NEG_I4, "neg.i4", 1, MintOpNoArgs)
464 OPDEF(MINT_NEG_I8, "neg.i8", 1, MintOpNoArgs)
465 OPDEF(MINT_NEG_R4, "neg.r4", 1, MintOpNoArgs)
466 OPDEF(MINT_NEG_R8, "neg.r8", 1, MintOpNoArgs)
468 OPDEF(MINT_NOT_I4, "not.i4", 1, MintOpNoArgs)
469 OPDEF(MINT_NOT_I8, "not.i8", 1, MintOpNoArgs)
471 OPDEF(MINT_AND_I4, "and.i4", 1, MintOpNoArgs)
472 OPDEF(MINT_AND_I8, "and.i8", 1, MintOpNoArgs)
474 OPDEF(MINT_OR_I4, "or.i4", 1, MintOpNoArgs)
475 OPDEF(MINT_OR_I8, "or.i8", 1, MintOpNoArgs)
477 OPDEF(MINT_XOR_I4, "xor.i4", 1, MintOpNoArgs)
478 OPDEF(MINT_XOR_I8, "xor.i8", 1, MintOpNoArgs)
480 OPDEF(MINT_REM_I4, "rem.i4", 1, MintOpNoArgs)
481 OPDEF(MINT_REM_I8, "rem.i8", 1, MintOpNoArgs)
482 OPDEF(MINT_REM_R4, "rem.r4", 1, MintOpNoArgs)
483 OPDEF(MINT_REM_R8, "rem.r8", 1, MintOpNoArgs)
485 OPDEF(MINT_REM_UN_I4, "rem.un.i4", 1, MintOpNoArgs)
486 OPDEF(MINT_REM_UN_I8, "rem.un.i8", 1, MintOpNoArgs)
488 OPDEF(MINT_SHR_UN_I4, "shr.un.i4", 1, MintOpNoArgs)
489 OPDEF(MINT_SHR_UN_I8, "shr.un.i8", 1, MintOpNoArgs)
490 OPDEF(MINT_SHL_I4, "shl.i4", 1, MintOpNoArgs)
491 OPDEF(MINT_SHL_I8, "shl.i8", 1, MintOpNoArgs)
492 OPDEF(MINT_SHR_I4, "shr.i4", 1, MintOpNoArgs)
493 OPDEF(MINT_SHR_I8, "shr.i8", 1, MintOpNoArgs)
495 OPDEF(MINT_CONV_R_UN_I4, "conv.r.un.i4", 1, MintOpNoArgs)
496 OPDEF(MINT_CONV_R_UN_I8, "conv.r.un.i8", 1, MintOpNoArgs)
498 OPDEF(MINT_CONV_I1_I4, "conv.i1.i4", 1, MintOpNoArgs)
499 OPDEF(MINT_CONV_I1_I8, "conv.i1.i8", 1, MintOpNoArgs)
500 OPDEF(MINT_CONV_I1_R4, "conv.i1.r4", 1, MintOpNoArgs)
501 OPDEF(MINT_CONV_I1_R8, "conv.i1.r8", 1, MintOpNoArgs)
503 OPDEF(MINT_CONV_U1_I4, "conv.u1.i4", 1, MintOpNoArgs)
504 OPDEF(MINT_CONV_U1_I8, "conv.u1.i8", 1, MintOpNoArgs)
505 OPDEF(MINT_CONV_U1_R4, "conv.u1.r4", 1, MintOpNoArgs)
506 OPDEF(MINT_CONV_U1_R8, "conv.u1.r8", 1, MintOpNoArgs)
508 OPDEF(MINT_CONV_I2_I4, "conv.i2.i4", 1, MintOpNoArgs)
509 OPDEF(MINT_CONV_I2_I8, "conv.i2.i8", 1, MintOpNoArgs)
510 OPDEF(MINT_CONV_I2_R4, "conv.i2.r4", 1, MintOpNoArgs)
511 OPDEF(MINT_CONV_I2_R8, "conv.i2.r8", 1, MintOpNoArgs)
513 OPDEF(MINT_CONV_U2_I4, "conv.u2.i4", 1, MintOpNoArgs)
514 OPDEF(MINT_CONV_U2_I8, "conv.u2.i8", 1, MintOpNoArgs)
515 OPDEF(MINT_CONV_U2_R4, "conv.u2.r4", 1, MintOpNoArgs)
516 OPDEF(MINT_CONV_U2_R8, "conv.u2.r8", 1, MintOpNoArgs)
518 OPDEF(MINT_CONV_I4_I8, "conv.i4.i8", 1, MintOpNoArgs)
519 OPDEF(MINT_CONV_I4_R4, "conv.i4.r4", 1, MintOpNoArgs)
520 OPDEF(MINT_CONV_I4_R8, "conv.i4.r8", 1, MintOpNoArgs)
522 OPDEF(MINT_CONV_U4_I8, "conv.u4.i8", 1, MintOpNoArgs)
523 OPDEF(MINT_CONV_U4_R4, "conv.u4.r4", 1, MintOpNoArgs)
524 OPDEF(MINT_CONV_U4_R8, "conv.u4.r8", 1, MintOpNoArgs)
526 OPDEF(MINT_CONV_I8_I4, "conv.i8.i4", 1, MintOpNoArgs)
527 OPDEF(MINT_CONV_I8_U4, "conv.i8.u4", 1, MintOpNoArgs)
528 OPDEF(MINT_CONV_I8_R4, "conv.i8.r4", 1, MintOpNoArgs)
529 OPDEF(MINT_CONV_I8_R8, "conv.i8.r8", 1, MintOpNoArgs)
531 OPDEF(MINT_CONV_R4_I4, "conv.r4.i4", 1, MintOpNoArgs)
532 OPDEF(MINT_CONV_R4_I8, "conv.r4.i8", 1, MintOpNoArgs)
533 OPDEF(MINT_CONV_R4_R8, "conv.r4.r8", 1, MintOpNoArgs)
535 OPDEF(MINT_CONV_R8_I4, "conv.r8.i4", 1, MintOpNoArgs)
536 OPDEF(MINT_CONV_R8_I8, "conv.r8.i8", 1, MintOpNoArgs)
537 OPDEF(MINT_CONV_R8_R4, "conv.r8.r4", 1, MintOpNoArgs)
539 OPDEF(MINT_CONV_I4_I8_SP, "conv.i4.i8.sp", 1, MintOpNoArgs) /* special for narrowing sp[-2] on 64 bits */
540 OPDEF(MINT_CONV_I8_I4_SP, "conv.i8.i4.sp", 1, MintOpNoArgs) /* special for widening sp[-2] on 64 bits */
541 OPDEF(MINT_CONV_R8_R4_SP, "conv.r8.r4.sp", 1, MintOpNoArgs)
543 OPDEF(MINT_CONV_U8_I4, "conv.u8.i4", 1, MintOpNoArgs)
544 OPDEF(MINT_CONV_U8_R4, "conv.u8.r4", 1, MintOpNoArgs)
545 OPDEF(MINT_CONV_U8_R8, "conv.u8.r8", 1, MintOpNoArgs)
547 OPDEF(MINT_CONV_OVF_I1_I4, "conv.ovf.i1.i4", 1, MintOpNoArgs)
548 OPDEF(MINT_CONV_OVF_I1_I8, "conv.ovf.i1.i8", 1, MintOpNoArgs)
549 OPDEF(MINT_CONV_OVF_I1_R8, "conv.ovf.i1.r8", 1, MintOpNoArgs)
551 OPDEF(MINT_CONV_OVF_I1_U4, "conv.ovf.i1.u4", 1, MintOpNoArgs)
552 OPDEF(MINT_CONV_OVF_I1_U8, "conv.ovf.i1.u8", 1, MintOpNoArgs)
553 OPDEF(MINT_CONV_OVF_I1_UN_R8, "conv.ovf.i1.un.r8", 1, MintOpNoArgs)
555 OPDEF(MINT_CONV_OVF_U1_I4, "conv.ovf.u1.i4", 1, MintOpNoArgs)
556 OPDEF(MINT_CONV_OVF_U1_I8, "conv.ovf.u1.i8", 1, MintOpNoArgs)
557 OPDEF(MINT_CONV_OVF_U1_R8, "conv.ovf.u1.r8", 1, MintOpNoArgs)
559 OPDEF(MINT_CONV_OVF_I2_I4, "conv.ovf.i2.i4", 1, MintOpNoArgs)
560 OPDEF(MINT_CONV_OVF_I2_I8, "conv.ovf.i2.i8", 1, MintOpNoArgs)
561 OPDEF(MINT_CONV_OVF_I2_R8, "conv.ovf.i2.r8", 1, MintOpNoArgs)
563 OPDEF(MINT_CONV_OVF_I2_U4, "conv.ovf.i2.u4", 1, MintOpNoArgs)
564 OPDEF(MINT_CONV_OVF_I2_U8, "conv.ovf.i2.u8", 1, MintOpNoArgs)
565 OPDEF(MINT_CONV_OVF_I2_UN_R8, "conv.ovf.i2.un.r8", 1, MintOpNoArgs)
567 OPDEF(MINT_CONV_OVF_U2_I4, "conv.ovf.u2.i4", 1, MintOpNoArgs)
568 OPDEF(MINT_CONV_OVF_U2_I8, "conv.ovf.u2.i8", 1, MintOpNoArgs)
569 OPDEF(MINT_CONV_OVF_U2_R8, "conv.ovf.u2.r8", 1, MintOpNoArgs)
571 OPDEF(MINT_CONV_OVF_I4_U4, "conv.ovf.i4.u4", 1, MintOpNoArgs)
572 OPDEF(MINT_CONV_OVF_I4_I8, "conv.ovf.i4.i8", 1, MintOpNoArgs)
573 OPDEF(MINT_CONV_OVF_I4_U8, "conv.ovf.i4.u8", 1, MintOpNoArgs)
574 OPDEF(MINT_CONV_OVF_I4_R4, "conv.ovf.i4.r4", 1, MintOpNoArgs)
575 OPDEF(MINT_CONV_OVF_I4_R8, "conv.ovf.i4.r8", 1, MintOpNoArgs)
577 OPDEF(MINT_CONV_OVF_I4_UN_I8, "conv.ovf.i4.un.i8", 1, MintOpNoArgs)
578 OPDEF(MINT_CONV_OVF_I4_UN_R8, "conv.ovf.i4.un.r8", 1, MintOpNoArgs)
580 OPDEF(MINT_CONV_OVF_U4_I4, "conv.ovf.u4.i4", 1, MintOpNoArgs)
581 OPDEF(MINT_CONV_OVF_U4_I8, "conv.ovf.u4.i8", 1, MintOpNoArgs)
582 OPDEF(MINT_CONV_OVF_U4_R4, "conv.ovf.u4.r4", 1, MintOpNoArgs)
583 OPDEF(MINT_CONV_OVF_U4_R8, "conv.ovf.u4.r8", 1, MintOpNoArgs)
585 OPDEF(MINT_CONV_OVF_I8_U8, "conv.ovf.i8.u8", 1, MintOpNoArgs)
586 OPDEF(MINT_CONV_OVF_I8_R4, "conv.ovf.i8.r4", 1, MintOpNoArgs)
587 OPDEF(MINT_CONV_OVF_I8_R8, "conv.ovf.i8.r8", 1, MintOpNoArgs)
589 OPDEF(MINT_CONV_OVF_I8_UN_R8, "conv.ovf.i8.un.r8", 1, MintOpNoArgs)
590 OPDEF(MINT_CONV_OVF_I8_UN_R4, "conv.ovf.i8.un.r4", 1, MintOpNoArgs)
592 OPDEF(MINT_CONV_OVF_U8_I4, "conv.ovf.u8.i4", 1, MintOpNoArgs)
593 OPDEF(MINT_CONV_OVF_U8_I8, "conv.ovf.u8.i8", 1, MintOpNoArgs)
594 OPDEF(MINT_CONV_OVF_U8_R4, "conv.ovf.u8.r4", 1, MintOpNoArgs)
595 OPDEF(MINT_CONV_OVF_U8_R8, "conv.ovf.u8.r8", 1, MintOpNoArgs)
597 OPDEF(MINT_CEQ_I4, "ceq.i4", 1, MintOpNoArgs)
598 OPDEF(MINT_CEQ_I8, "ceq.i8", 1, MintOpNoArgs)
599 OPDEF(MINT_CEQ_R4, "ceq.r4", 1, MintOpNoArgs)
600 OPDEF(MINT_CEQ_R8, "ceq.r8", 1, MintOpNoArgs)
602 OPDEF(MINT_CNE_I4, "cne.i4", 1, MintOpNoArgs)
603 OPDEF(MINT_CNE_I8, "cne.i8", 1, MintOpNoArgs)
604 OPDEF(MINT_CNE_R4, "cne.r4", 1, MintOpNoArgs)
605 OPDEF(MINT_CNE_R8, "cne.r8", 1, MintOpNoArgs)
607 OPDEF(MINT_CEQ0_I4, "ceq0.i4", 1, MintOpNoArgs)
609 OPDEF(MINT_CGT_I4, "cgt.i4", 1, MintOpNoArgs)
610 OPDEF(MINT_CGT_I8, "cgt.i8", 1, MintOpNoArgs)
611 OPDEF(MINT_CGT_R4, "cgt.r4", 1, MintOpNoArgs)
612 OPDEF(MINT_CGT_R8, "cgt.r8", 1, MintOpNoArgs)
614 OPDEF(MINT_CGE_I4, "cge.i4", 1, MintOpNoArgs)
615 OPDEF(MINT_CGE_I8, "cge.i8", 1, MintOpNoArgs)
616 OPDEF(MINT_CGE_R4, "cge.r4", 1, MintOpNoArgs)
617 OPDEF(MINT_CGE_R8, "cge.r8", 1, MintOpNoArgs)
619 OPDEF(MINT_CGE_UN_I4, "cge.un.i4", 1, MintOpNoArgs)
620 OPDEF(MINT_CGE_UN_I8, "cge.un.i8", 1, MintOpNoArgs)
622 OPDEF(MINT_CGT_UN_I4, "cgt.un.i4", 1, MintOpNoArgs)
623 OPDEF(MINT_CGT_UN_I8, "cgt.un.i8", 1, MintOpNoArgs)
624 OPDEF(MINT_CGT_UN_R4, "cgt.un.r4", 1, MintOpNoArgs)
625 OPDEF(MINT_CGT_UN_R8, "cgt.un.r8", 1, MintOpNoArgs)
627 OPDEF(MINT_CLT_I4, "clt.i4", 1, MintOpNoArgs)
628 OPDEF(MINT_CLT_I8, "clt.i8", 1, MintOpNoArgs)
629 OPDEF(MINT_CLT_R4, "clt.r4", 1, MintOpNoArgs)
630 OPDEF(MINT_CLT_R8, "clt.r8", 1, MintOpNoArgs)
632 OPDEF(MINT_CLE_I4, "cle.i4", 1, MintOpNoArgs)
633 OPDEF(MINT_CLE_I8, "cle.i8", 1, MintOpNoArgs)
634 OPDEF(MINT_CLE_R4, "cle.r4", 1, MintOpNoArgs)
635 OPDEF(MINT_CLE_R8, "cle.r8", 1, MintOpNoArgs)
637 OPDEF(MINT_CLE_UN_I4, "cle.un.i4", 1, MintOpNoArgs)
638 OPDEF(MINT_CLE_UN_I8, "cle.un.i8", 1, MintOpNoArgs)
640 OPDEF(MINT_CLT_UN_I4, "clt.un.i4", 1, MintOpNoArgs)
641 OPDEF(MINT_CLT_UN_I8, "clt.un.i8", 1, MintOpNoArgs)
642 OPDEF(MINT_CLT_UN_R4, "clt.un.r4", 1, MintOpNoArgs)
643 OPDEF(MINT_CLT_UN_R8, "clt.un.r8", 1, MintOpNoArgs)
645 OPDEF(MINT_CKFINITE, "ckfinite", 1, MintOpNoArgs)
646 OPDEF(MINT_MKREFANY, "mkrefany", 2, MintOpClassToken)
647 OPDEF(MINT_REFANYTYPE, "refanytype", 1, MintOpNoArgs)
648 OPDEF(MINT_REFANYVAL, "refanyval", 2, MintOpNoArgs)
650 OPDEF(MINT_CKNULL_N, "cknull_n", 2, MintOpUShortInt)
652 OPDEF(MINT_GETCHR, "getchr", 1, MintOpNoArgs)
653 OPDEF(MINT_STRLEN, "strlen", 1, MintOpNoArgs)
654 OPDEF(MINT_ARRAY_RANK, "array_rank", 1, MintOpNoArgs)
656 OPDEF(MINT_ICALL_V_V, "mono_icall_v_v", 2, MintOpClassToken) /* not really */
657 OPDEF(MINT_ICALL_V_P, "mono_icall_v_p", 2, MintOpClassToken)
658 OPDEF(MINT_ICALL_P_V, "mono_icall_p_v", 2, MintOpClassToken)
659 OPDEF(MINT_ICALL_P_P, "mono_icall_p_p", 2, MintOpClassToken)
660 OPDEF(MINT_ICALL_PP_V, "mono_icall_pp_v", 2, MintOpClassToken)
661 OPDEF(MINT_ICALL_PP_P, "mono_icall_pp_p", 2, MintOpClassToken)
662 OPDEF(MINT_ICALL_PPP_V, "mono_icall_ppp_v", 2, MintOpClassToken)
663 OPDEF(MINT_ICALL_PPP_P, "mono_icall_ppp_p", 2, MintOpClassToken)
664 OPDEF(MINT_ICALL_PPPP_V, "mono_icall_pppp_v", 2, MintOpClassToken)
665 OPDEF(MINT_ICALL_PPPP_P, "mono_icall_pppp_p", 2, MintOpClassToken)
666 OPDEF(MINT_ICALL_PPPPP_V, "mono_icall_ppppp_v", 2, MintOpClassToken)
667 OPDEF(MINT_ICALL_PPPPP_P, "mono_icall_ppppp_p", 2, MintOpClassToken)
668 OPDEF(MINT_ICALL_PPPPPP_V, "mono_icall_pppppp_v", 2, MintOpClassToken)
669 OPDEF(MINT_ICALL_PPPPPP_P, "mono_icall_pppppp_p", 2, MintOpClassToken)
670 OPDEF(MINT_MONO_LDPTR, "mono_ldptr", 2, MintOpClassToken)
671 OPDEF(MINT_MONO_SGEN_THREAD_INFO, "mono_sgen_thread_info", 1, MintOpNoArgs)
672 OPDEF(MINT_MONO_NEWOBJ, "mono_newobj", 2, MintOpClassToken)
673 OPDEF(MINT_MONO_RETOBJ, "mono_retobj", 1, MintOpNoArgs)
674 OPDEF(MINT_MONO_FREE, "mono_free", 1, MintOpNoArgs)
675 OPDEF(MINT_MONO_ATOMIC_STORE_I4, "mono_atomic.store.i4", 1, MintOpNoArgs)
676 OPDEF(MINT_MONO_MEMORY_BARRIER, "mono_memory_barrier", 1, MintOpNoArgs)
677 OPDEF(MINT_MONO_LDDOMAIN, "mono_lddomain", 1, MintOpNoArgs)
679 // FIXME: MintOp
680 OPDEF(MINT_JIT_CALL, "mono_jit_call", 2, MintOpNoArgs)
681 OPDEF(MINT_SDB_INTR_LOC, "sdb_intr_loc", 1, MintOpNoArgs)
682 OPDEF(MINT_SDB_SEQ_POINT, "sdb_seq_point", 1, MintOpNoArgs)
683 OPDEF(MINT_SDB_BREAKPOINT, "sdb_breakpoint", 1, MintOpNoArgs)
684 OPDEF(MINT_LD_DELEGATE_METHOD_PTR, "ld_delegate_method_ptr", 1, MintOpNoArgs)
685 OPDEF(MINT_LD_DELEGATE_INVOKE_IMPL, "ld_delegate_invoke_impl", 2, MintOpNoArgs)
687 OPDEF(MINT_START_ABORT_PROT, "start_abort_protected", 1, MintOpNoArgs)
689 // Math intrinsics
690 OPDEF(MINT_ABS, "abs", 1, MintOpNoArgs)
691 OPDEF(MINT_ASIN, "asin", 1, MintOpNoArgs)
692 OPDEF(MINT_ASINH, "asinh", 1, MintOpNoArgs)
693 OPDEF(MINT_ACOS, "acos", 1, MintOpNoArgs)
694 OPDEF(MINT_ACOSH, "acosh", 1, MintOpNoArgs)
695 OPDEF(MINT_ATAN, "atan", 1, MintOpNoArgs)
696 OPDEF(MINT_ATANH, "atanh", 1, MintOpNoArgs)
697 OPDEF(MINT_COS, "cos", 1, MintOpNoArgs)
698 OPDEF(MINT_CBRT, "cbrt", 1, MintOpNoArgs)
699 OPDEF(MINT_COSH, "cosh", 1, MintOpNoArgs)
700 OPDEF(MINT_SIN, "sin", 1, MintOpNoArgs)
701 OPDEF(MINT_SQRT, "sqrt", 1, MintOpNoArgs)
702 OPDEF(MINT_SINH, "sinh", 1, MintOpNoArgs)
703 OPDEF(MINT_TAN, "tan", 1, MintOpNoArgs)
704 OPDEF(MINT_TANH, "tanh", 1, MintOpNoArgs)
707 * This needs to be an opcode because we need to trigger the enter event after
708 * the STINARG* opcodes have executed.
710 OPDEF(MINT_PROF_ENTER, "prof_enter", 1, MintOpNoArgs)
711 OPDEF(MINT_TRACE_ENTER, "trace_enter", 1, MintOpNoArgs)
712 OPDEF(MINT_TRACE_EXIT, "trace_exit", 3, MintOpInt)
714 OPDEF(MINT_INTRINS_ENUM_HASFLAG, "intrins_enum_hasflag", 2, MintOpClassToken)
715 OPDEF(MINT_INTRINS_GET_HASHCODE, "intrins_get_hashcode", 1, MintOpNoArgs)
716 OPDEF(MINT_INTRINS_GET_TYPE, "intrins_get_type", 1, MintOpNoArgs)
717 OPDEF(MINT_INTRINS_BYREFERENCE_CTOR, "intrins_byreference_ctor", 2, MintOpClassToken)
718 OPDEF(MINT_INTRINS_BYREFERENCE_GET_VALUE, "intrins_byreference_get_value", 1, MintOpNoArgs)
719 OPDEF(MINT_INTRINS_UNSAFE_ADD_BYTE_OFFSET, "intrins_unsafe_add_byte_offset", 1, MintOpNoArgs)
720 OPDEF(MINT_INTRINS_UNSAFE_BYTE_OFFSET, "intrins_unsafe_byte_offset", 1, MintOpNoArgs)
721 OPDEF(MINT_INTRINS_RUNTIMEHELPERS_OBJECT_HAS_COMPONENT_SIZE, "intrins_runtimehelpers_object_has_component_size", 1, MintOpNoArgs)