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 namespace System.Reflection.Emit
6 {
7     //
8     // Internal enums for opcode values. Note that the value names are used to construct
9     // publicly visible ilasm-compatible opcode names, so their exact form is important!
10     //
11     internal enum OpCodeValues
12     {
13         Nop = 0x00,
14         Break = 0x01,
15         Ldarg_0 = 0x02,
16         Ldarg_1 = 0x03,
17         Ldarg_2 = 0x04,
18         Ldarg_3 = 0x05,
19         Ldloc_0 = 0x06,
20         Ldloc_1 = 0x07,
21         Ldloc_2 = 0x08,
22         Ldloc_3 = 0x09,
23         Stloc_0 = 0x0a,
24         Stloc_1 = 0x0b,
25         Stloc_2 = 0x0c,
26         Stloc_3 = 0x0d,
27         Ldarg_S = 0x0e,
28         Ldarga_S = 0x0f,
29         Starg_S = 0x10,
30         Ldloc_S = 0x11,
31         Ldloca_S = 0x12,
32         Stloc_S = 0x13,
33         Ldnull = 0x14,
34         Ldc_I4_M1 = 0x15,
35         Ldc_I4_0 = 0x16,
36         Ldc_I4_1 = 0x17,
37         Ldc_I4_2 = 0x18,
38         Ldc_I4_3 = 0x19,
39         Ldc_I4_4 = 0x1a,
40         Ldc_I4_5 = 0x1b,
41         Ldc_I4_6 = 0x1c,
42         Ldc_I4_7 = 0x1d,
43         Ldc_I4_8 = 0x1e,
44         Ldc_I4_S = 0x1f,
45         Ldc_I4 = 0x20,
46         Ldc_I8 = 0x21,
47         Ldc_R4 = 0x22,
48         Ldc_R8 = 0x23,
49         Dup = 0x25,
50         Pop = 0x26,
51         Jmp = 0x27,
52         Call = 0x28,
53         Calli = 0x29,
54         Ret = 0x2a,
55         Br_S = 0x2b,
56         Brfalse_S = 0x2c,
57         Brtrue_S = 0x2d,
58         Beq_S = 0x2e,
59         Bge_S = 0x2f,
60         Bgt_S = 0x30,
61         Ble_S = 0x31,
62         Blt_S = 0x32,
63         Bne_Un_S = 0x33,
64         Bge_Un_S = 0x34,
65         Bgt_Un_S = 0x35,
66         Ble_Un_S = 0x36,
67         Blt_Un_S = 0x37,
68         Br = 0x38,
69         Brfalse = 0x39,
70         Brtrue = 0x3a,
71         Beq = 0x3b,
72         Bge = 0x3c,
73         Bgt = 0x3d,
74         Ble = 0x3e,
75         Blt = 0x3f,
76         Bne_Un = 0x40,
77         Bge_Un = 0x41,
78         Bgt_Un = 0x42,
79         Ble_Un = 0x43,
80         Blt_Un = 0x44,
81         Switch = 0x45,
82         Ldind_I1 = 0x46,
83         Ldind_U1 = 0x47,
84         Ldind_I2 = 0x48,
85         Ldind_U2 = 0x49,
86         Ldind_I4 = 0x4a,
87         Ldind_U4 = 0x4b,
88         Ldind_I8 = 0x4c,
89         Ldind_I = 0x4d,
90         Ldind_R4 = 0x4e,
91         Ldind_R8 = 0x4f,
92         Ldind_Ref = 0x50,
93         Stind_Ref = 0x51,
94         Stind_I1 = 0x52,
95         Stind_I2 = 0x53,
96         Stind_I4 = 0x54,
97         Stind_I8 = 0x55,
98         Stind_R4 = 0x56,
99         Stind_R8 = 0x57,
100         Add = 0x58,
101         Sub = 0x59,
102         Mul = 0x5a,
103         Div = 0x5b,
104         Div_Un = 0x5c,
105         Rem = 0x5d,
106         Rem_Un = 0x5e,
107         And = 0x5f,
108         Or = 0x60,
109         Xor = 0x61,
110         Shl = 0x62,
111         Shr = 0x63,
112         Shr_Un = 0x64,
113         Neg = 0x65,
114         Not = 0x66,
115         Conv_I1 = 0x67,
116         Conv_I2 = 0x68,
117         Conv_I4 = 0x69,
118         Conv_I8 = 0x6a,
119         Conv_R4 = 0x6b,
120         Conv_R8 = 0x6c,
121         Conv_U4 = 0x6d,
122         Conv_U8 = 0x6e,
123         Callvirt = 0x6f,
124         Cpobj = 0x70,
125         Ldobj = 0x71,
126         Ldstr = 0x72,
127         Newobj = 0x73,
128         Castclass = 0x74,
129         Isinst = 0x75,
130         Conv_R_Un = 0x76,
131         Unbox = 0x79,
132         Throw = 0x7a,
133         Ldfld = 0x7b,
134         Ldflda = 0x7c,
135         Stfld = 0x7d,
136         Ldsfld = 0x7e,
137         Ldsflda = 0x7f,
138         Stsfld = 0x80,
139         Stobj = 0x81,
140         Conv_Ovf_I1_Un = 0x82,
141         Conv_Ovf_I2_Un = 0x83,
142         Conv_Ovf_I4_Un = 0x84,
143         Conv_Ovf_I8_Un = 0x85,
144         Conv_Ovf_U1_Un = 0x86,
145         Conv_Ovf_U2_Un = 0x87,
146         Conv_Ovf_U4_Un = 0x88,
147         Conv_Ovf_U8_Un = 0x89,
148         Conv_Ovf_I_Un = 0x8a,
149         Conv_Ovf_U_Un = 0x8b,
150         Box = 0x8c,
151         Newarr = 0x8d,
152         Ldlen = 0x8e,
153         Ldelema = 0x8f,
154         Ldelem_I1 = 0x90,
155         Ldelem_U1 = 0x91,
156         Ldelem_I2 = 0x92,
157         Ldelem_U2 = 0x93,
158         Ldelem_I4 = 0x94,
159         Ldelem_U4 = 0x95,
160         Ldelem_I8 = 0x96,
161         Ldelem_I = 0x97,
162         Ldelem_R4 = 0x98,
163         Ldelem_R8 = 0x99,
164         Ldelem_Ref = 0x9a,
165         Stelem_I = 0x9b,
166         Stelem_I1 = 0x9c,
167         Stelem_I2 = 0x9d,
168         Stelem_I4 = 0x9e,
169         Stelem_I8 = 0x9f,
170         Stelem_R4 = 0xa0,
171         Stelem_R8 = 0xa1,
172         Stelem_Ref = 0xa2,
173         Ldelem = 0xa3,
174         Stelem = 0xa4,
175         Unbox_Any = 0xa5,
176         Conv_Ovf_I1 = 0xb3,
177         Conv_Ovf_U1 = 0xb4,
178         Conv_Ovf_I2 = 0xb5,
179         Conv_Ovf_U2 = 0xb6,
180         Conv_Ovf_I4 = 0xb7,
181         Conv_Ovf_U4 = 0xb8,
182         Conv_Ovf_I8 = 0xb9,
183         Conv_Ovf_U8 = 0xba,
184         Refanyval = 0xc2,
185         Ckfinite = 0xc3,
186         Mkrefany = 0xc6,
187         Ldtoken = 0xd0,
188         Conv_U2 = 0xd1,
189         Conv_U1 = 0xd2,
190         Conv_I = 0xd3,
191         Conv_Ovf_I = 0xd4,
192         Conv_Ovf_U = 0xd5,
193         Add_Ovf = 0xd6,
194         Add_Ovf_Un = 0xd7,
195         Mul_Ovf = 0xd8,
196         Mul_Ovf_Un = 0xd9,
197         Sub_Ovf = 0xda,
198         Sub_Ovf_Un = 0xdb,
199         Endfinally = 0xdc,
200         Leave = 0xdd,
201         Leave_S = 0xde,
202         Stind_I = 0xdf,
203         Conv_U = 0xe0,
204         Prefix7 = 0xf8,
205         Prefix6 = 0xf9,
206         Prefix5 = 0xfa,
207         Prefix4 = 0xfb,
208         Prefix3 = 0xfc,
209         Prefix2 = 0xfd,
210         Prefix1 = 0xfe,
211         Prefixref = 0xff,
212         Arglist = 0xfe00,
213         Ceq = 0xfe01,
214         Cgt = 0xfe02,
215         Cgt_Un = 0xfe03,
216         Clt = 0xfe04,
217         Clt_Un = 0xfe05,
218         Ldftn = 0xfe06,
219         Ldvirtftn = 0xfe07,
220         Ldarg = 0xfe09,
221         Ldarga = 0xfe0a,
222         Starg = 0xfe0b,
223         Ldloc = 0xfe0c,
224         Ldloca = 0xfe0d,
225         Stloc = 0xfe0e,
226         Localloc = 0xfe0f,
227         Endfilter = 0xfe11,
228         Unaligned_ = 0xfe12,
229         Volatile_ = 0xfe13,
230         Tail_ = 0xfe14,
231         Initobj = 0xfe15,
232         Constrained_ = 0xfe16,
233         Cpblk = 0xfe17,
234         Initblk = 0xfe18,
235         Rethrow = 0xfe1a,
236         Sizeof = 0xfe1c,
237         Refanytype = 0xfe1d,
238         Readonly_ = 0xfe1e,
239         // If you add more opcodes here, modify OpCode.Name to handle them correctly
240     };
241 
242     public class OpCodes
243     {
244         /// <summary>
245         ///    <para>
246         ///       The IL instruction opcodes supported by the
247         ///       runtime. The IL Instruction Specification describes each
248         ///       Opcode.
249         ///    </para>
250         /// </summary>
251         /// <seealso topic='IL Instruction Set       Specification'/>
252 
OpCodes()253         private OpCodes()
254         {
255         }
256 
257         public static readonly OpCode Nop = new OpCode(OpCodeValues.Nop,
258             ((int)OperandType.InlineNone) |
259             ((int)FlowControl.Next << OpCode.FlowControlShift) |
260             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
261             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
262             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
263             (1 << OpCode.SizeShift) |
264             (0 << OpCode.StackChangeShift)
265         );
266 
267         public static readonly OpCode Break = new OpCode(OpCodeValues.Break,
268             ((int)OperandType.InlineNone) |
269             ((int)FlowControl.Break << OpCode.FlowControlShift) |
270             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
271             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
272             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
273             (1 << OpCode.SizeShift) |
274             (0 << OpCode.StackChangeShift)
275         );
276 
277         public static readonly OpCode Ldarg_0 = new OpCode(OpCodeValues.Ldarg_0,
278             ((int)OperandType.InlineNone) |
279             ((int)FlowControl.Next << OpCode.FlowControlShift) |
280             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
281             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
282             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
283             (1 << OpCode.SizeShift) |
284             (1 << OpCode.StackChangeShift)
285         );
286 
287         public static readonly OpCode Ldarg_1 = new OpCode(OpCodeValues.Ldarg_1,
288             ((int)OperandType.InlineNone) |
289             ((int)FlowControl.Next << OpCode.FlowControlShift) |
290             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
291             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
292             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
293             (1 << OpCode.SizeShift) |
294             (1 << OpCode.StackChangeShift)
295         );
296 
297         public static readonly OpCode Ldarg_2 = new OpCode(OpCodeValues.Ldarg_2,
298             ((int)OperandType.InlineNone) |
299             ((int)FlowControl.Next << OpCode.FlowControlShift) |
300             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
301             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
302             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
303             (1 << OpCode.SizeShift) |
304             (1 << OpCode.StackChangeShift)
305         );
306 
307         public static readonly OpCode Ldarg_3 = new OpCode(OpCodeValues.Ldarg_3,
308             ((int)OperandType.InlineNone) |
309             ((int)FlowControl.Next << OpCode.FlowControlShift) |
310             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
311             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
312             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
313             (1 << OpCode.SizeShift) |
314             (1 << OpCode.StackChangeShift)
315         );
316 
317         public static readonly OpCode Ldloc_0 = new OpCode(OpCodeValues.Ldloc_0,
318             ((int)OperandType.InlineNone) |
319             ((int)FlowControl.Next << OpCode.FlowControlShift) |
320             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
321             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
322             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
323             (1 << OpCode.SizeShift) |
324             (1 << OpCode.StackChangeShift)
325         );
326 
327         public static readonly OpCode Ldloc_1 = new OpCode(OpCodeValues.Ldloc_1,
328             ((int)OperandType.InlineNone) |
329             ((int)FlowControl.Next << OpCode.FlowControlShift) |
330             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
331             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
332             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
333             (1 << OpCode.SizeShift) |
334             (1 << OpCode.StackChangeShift)
335         );
336 
337         public static readonly OpCode Ldloc_2 = new OpCode(OpCodeValues.Ldloc_2,
338             ((int)OperandType.InlineNone) |
339             ((int)FlowControl.Next << OpCode.FlowControlShift) |
340             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
341             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
342             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
343             (1 << OpCode.SizeShift) |
344             (1 << OpCode.StackChangeShift)
345         );
346 
347         public static readonly OpCode Ldloc_3 = new OpCode(OpCodeValues.Ldloc_3,
348             ((int)OperandType.InlineNone) |
349             ((int)FlowControl.Next << OpCode.FlowControlShift) |
350             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
351             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
352             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
353             (1 << OpCode.SizeShift) |
354             (1 << OpCode.StackChangeShift)
355         );
356 
357         public static readonly OpCode Stloc_0 = new OpCode(OpCodeValues.Stloc_0,
358             ((int)OperandType.InlineNone) |
359             ((int)FlowControl.Next << OpCode.FlowControlShift) |
360             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
361             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
362             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
363             (1 << OpCode.SizeShift) |
364             (-1 << OpCode.StackChangeShift)
365         );
366 
367         public static readonly OpCode Stloc_1 = new OpCode(OpCodeValues.Stloc_1,
368             ((int)OperandType.InlineNone) |
369             ((int)FlowControl.Next << OpCode.FlowControlShift) |
370             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
371             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
372             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
373             (1 << OpCode.SizeShift) |
374             (-1 << OpCode.StackChangeShift)
375         );
376 
377         public static readonly OpCode Stloc_2 = new OpCode(OpCodeValues.Stloc_2,
378             ((int)OperandType.InlineNone) |
379             ((int)FlowControl.Next << OpCode.FlowControlShift) |
380             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
381             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
382             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
383             (1 << OpCode.SizeShift) |
384             (-1 << OpCode.StackChangeShift)
385         );
386 
387         public static readonly OpCode Stloc_3 = new OpCode(OpCodeValues.Stloc_3,
388             ((int)OperandType.InlineNone) |
389             ((int)FlowControl.Next << OpCode.FlowControlShift) |
390             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
391             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
392             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
393             (1 << OpCode.SizeShift) |
394             (-1 << OpCode.StackChangeShift)
395         );
396 
397         public static readonly OpCode Ldarg_S = new OpCode(OpCodeValues.Ldarg_S,
398             ((int)OperandType.ShortInlineVar) |
399             ((int)FlowControl.Next << OpCode.FlowControlShift) |
400             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
401             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
402             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
403             (1 << OpCode.SizeShift) |
404             (1 << OpCode.StackChangeShift)
405         );
406 
407         public static readonly OpCode Ldarga_S = new OpCode(OpCodeValues.Ldarga_S,
408             ((int)OperandType.ShortInlineVar) |
409             ((int)FlowControl.Next << OpCode.FlowControlShift) |
410             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
411             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
412             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
413             (1 << OpCode.SizeShift) |
414             (1 << OpCode.StackChangeShift)
415         );
416 
417         public static readonly OpCode Starg_S = new OpCode(OpCodeValues.Starg_S,
418             ((int)OperandType.ShortInlineVar) |
419             ((int)FlowControl.Next << OpCode.FlowControlShift) |
420             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
421             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
422             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
423             (1 << OpCode.SizeShift) |
424             (-1 << OpCode.StackChangeShift)
425         );
426 
427         public static readonly OpCode Ldloc_S = new OpCode(OpCodeValues.Ldloc_S,
428             ((int)OperandType.ShortInlineVar) |
429             ((int)FlowControl.Next << OpCode.FlowControlShift) |
430             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
431             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
432             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
433             (1 << OpCode.SizeShift) |
434             (1 << OpCode.StackChangeShift)
435         );
436 
437         public static readonly OpCode Ldloca_S = new OpCode(OpCodeValues.Ldloca_S,
438             ((int)OperandType.ShortInlineVar) |
439             ((int)FlowControl.Next << OpCode.FlowControlShift) |
440             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
441             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
442             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
443             (1 << OpCode.SizeShift) |
444             (1 << OpCode.StackChangeShift)
445         );
446 
447         public static readonly OpCode Stloc_S = new OpCode(OpCodeValues.Stloc_S,
448             ((int)OperandType.ShortInlineVar) |
449             ((int)FlowControl.Next << OpCode.FlowControlShift) |
450             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
451             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
452             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
453             (1 << OpCode.SizeShift) |
454             (-1 << OpCode.StackChangeShift)
455         );
456 
457         public static readonly OpCode Ldnull = new OpCode(OpCodeValues.Ldnull,
458             ((int)OperandType.InlineNone) |
459             ((int)FlowControl.Next << OpCode.FlowControlShift) |
460             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
461             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
462             ((int)StackBehaviour.Pushref << OpCode.StackBehaviourPushShift) |
463             (1 << OpCode.SizeShift) |
464             (1 << OpCode.StackChangeShift)
465         );
466 
467         public static readonly OpCode Ldc_I4_M1 = new OpCode(OpCodeValues.Ldc_I4_M1,
468             ((int)OperandType.InlineNone) |
469             ((int)FlowControl.Next << OpCode.FlowControlShift) |
470             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
471             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
472             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
473             (1 << OpCode.SizeShift) |
474             (1 << OpCode.StackChangeShift)
475         );
476 
477         public static readonly OpCode Ldc_I4_0 = new OpCode(OpCodeValues.Ldc_I4_0,
478             ((int)OperandType.InlineNone) |
479             ((int)FlowControl.Next << OpCode.FlowControlShift) |
480             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
481             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
482             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
483             (1 << OpCode.SizeShift) |
484             (1 << OpCode.StackChangeShift)
485         );
486 
487         public static readonly OpCode Ldc_I4_1 = new OpCode(OpCodeValues.Ldc_I4_1,
488             ((int)OperandType.InlineNone) |
489             ((int)FlowControl.Next << OpCode.FlowControlShift) |
490             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
491             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
492             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
493             (1 << OpCode.SizeShift) |
494             (1 << OpCode.StackChangeShift)
495         );
496 
497         public static readonly OpCode Ldc_I4_2 = new OpCode(OpCodeValues.Ldc_I4_2,
498             ((int)OperandType.InlineNone) |
499             ((int)FlowControl.Next << OpCode.FlowControlShift) |
500             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
501             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
502             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
503             (1 << OpCode.SizeShift) |
504             (1 << OpCode.StackChangeShift)
505         );
506 
507         public static readonly OpCode Ldc_I4_3 = new OpCode(OpCodeValues.Ldc_I4_3,
508             ((int)OperandType.InlineNone) |
509             ((int)FlowControl.Next << OpCode.FlowControlShift) |
510             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
511             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
512             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
513             (1 << OpCode.SizeShift) |
514             (1 << OpCode.StackChangeShift)
515         );
516 
517         public static readonly OpCode Ldc_I4_4 = new OpCode(OpCodeValues.Ldc_I4_4,
518             ((int)OperandType.InlineNone) |
519             ((int)FlowControl.Next << OpCode.FlowControlShift) |
520             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
521             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
522             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
523             (1 << OpCode.SizeShift) |
524             (1 << OpCode.StackChangeShift)
525         );
526 
527         public static readonly OpCode Ldc_I4_5 = new OpCode(OpCodeValues.Ldc_I4_5,
528             ((int)OperandType.InlineNone) |
529             ((int)FlowControl.Next << OpCode.FlowControlShift) |
530             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
531             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
532             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
533             (1 << OpCode.SizeShift) |
534             (1 << OpCode.StackChangeShift)
535         );
536 
537         public static readonly OpCode Ldc_I4_6 = new OpCode(OpCodeValues.Ldc_I4_6,
538             ((int)OperandType.InlineNone) |
539             ((int)FlowControl.Next << OpCode.FlowControlShift) |
540             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
541             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
542             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
543             (1 << OpCode.SizeShift) |
544             (1 << OpCode.StackChangeShift)
545         );
546 
547         public static readonly OpCode Ldc_I4_7 = new OpCode(OpCodeValues.Ldc_I4_7,
548             ((int)OperandType.InlineNone) |
549             ((int)FlowControl.Next << OpCode.FlowControlShift) |
550             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
551             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
552             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
553             (1 << OpCode.SizeShift) |
554             (1 << OpCode.StackChangeShift)
555         );
556 
557         public static readonly OpCode Ldc_I4_8 = new OpCode(OpCodeValues.Ldc_I4_8,
558             ((int)OperandType.InlineNone) |
559             ((int)FlowControl.Next << OpCode.FlowControlShift) |
560             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
561             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
562             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
563             (1 << OpCode.SizeShift) |
564             (1 << OpCode.StackChangeShift)
565         );
566 
567         public static readonly OpCode Ldc_I4_S = new OpCode(OpCodeValues.Ldc_I4_S,
568             ((int)OperandType.ShortInlineI) |
569             ((int)FlowControl.Next << OpCode.FlowControlShift) |
570             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
571             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
572             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
573             (1 << OpCode.SizeShift) |
574             (1 << OpCode.StackChangeShift)
575         );
576 
577         public static readonly OpCode Ldc_I4 = new OpCode(OpCodeValues.Ldc_I4,
578             ((int)OperandType.InlineI) |
579             ((int)FlowControl.Next << OpCode.FlowControlShift) |
580             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
581             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
582             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
583             (1 << OpCode.SizeShift) |
584             (1 << OpCode.StackChangeShift)
585         );
586 
587         public static readonly OpCode Ldc_I8 = new OpCode(OpCodeValues.Ldc_I8,
588             ((int)OperandType.InlineI8) |
589             ((int)FlowControl.Next << OpCode.FlowControlShift) |
590             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
591             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
592             ((int)StackBehaviour.Pushi8 << OpCode.StackBehaviourPushShift) |
593             (1 << OpCode.SizeShift) |
594             (1 << OpCode.StackChangeShift)
595         );
596 
597         public static readonly OpCode Ldc_R4 = new OpCode(OpCodeValues.Ldc_R4,
598             ((int)OperandType.ShortInlineR) |
599             ((int)FlowControl.Next << OpCode.FlowControlShift) |
600             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
601             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
602             ((int)StackBehaviour.Pushr4 << OpCode.StackBehaviourPushShift) |
603             (1 << OpCode.SizeShift) |
604             (1 << OpCode.StackChangeShift)
605         );
606 
607         public static readonly OpCode Ldc_R8 = new OpCode(OpCodeValues.Ldc_R8,
608             ((int)OperandType.InlineR) |
609             ((int)FlowControl.Next << OpCode.FlowControlShift) |
610             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
611             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
612             ((int)StackBehaviour.Pushr8 << OpCode.StackBehaviourPushShift) |
613             (1 << OpCode.SizeShift) |
614             (1 << OpCode.StackChangeShift)
615         );
616 
617         public static readonly OpCode Dup = new OpCode(OpCodeValues.Dup,
618             ((int)OperandType.InlineNone) |
619             ((int)FlowControl.Next << OpCode.FlowControlShift) |
620             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
621             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
622             ((int)StackBehaviour.Push1_push1 << OpCode.StackBehaviourPushShift) |
623             (1 << OpCode.SizeShift) |
624             (1 << OpCode.StackChangeShift)
625         );
626 
627         public static readonly OpCode Pop = new OpCode(OpCodeValues.Pop,
628             ((int)OperandType.InlineNone) |
629             ((int)FlowControl.Next << OpCode.FlowControlShift) |
630             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
631             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
632             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
633             (1 << OpCode.SizeShift) |
634             (-1 << OpCode.StackChangeShift)
635         );
636 
637         public static readonly OpCode Jmp = new OpCode(OpCodeValues.Jmp,
638             ((int)OperandType.InlineMethod) |
639             ((int)FlowControl.Call << OpCode.FlowControlShift) |
640             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
641             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
642             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
643             (1 << OpCode.SizeShift) |
644             OpCode.EndsUncondJmpBlkFlag |
645             (0 << OpCode.StackChangeShift)
646         );
647 
648         public static readonly OpCode Call = new OpCode(OpCodeValues.Call,
649             ((int)OperandType.InlineMethod) |
650             ((int)FlowControl.Call << OpCode.FlowControlShift) |
651             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
652             ((int)StackBehaviour.Varpop << OpCode.StackBehaviourPopShift) |
653             ((int)StackBehaviour.Varpush << OpCode.StackBehaviourPushShift) |
654             (1 << OpCode.SizeShift) |
655             (0 << OpCode.StackChangeShift)
656         );
657 
658         public static readonly OpCode Calli = new OpCode(OpCodeValues.Calli,
659             ((int)OperandType.InlineSig) |
660             ((int)FlowControl.Call << OpCode.FlowControlShift) |
661             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
662             ((int)StackBehaviour.Varpop << OpCode.StackBehaviourPopShift) |
663             ((int)StackBehaviour.Varpush << OpCode.StackBehaviourPushShift) |
664             (1 << OpCode.SizeShift) |
665             (0 << OpCode.StackChangeShift)
666         );
667 
668         public static readonly OpCode Ret = new OpCode(OpCodeValues.Ret,
669             ((int)OperandType.InlineNone) |
670             ((int)FlowControl.Return << OpCode.FlowControlShift) |
671             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
672             ((int)StackBehaviour.Varpop << OpCode.StackBehaviourPopShift) |
673             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
674             (1 << OpCode.SizeShift) |
675             OpCode.EndsUncondJmpBlkFlag |
676             (0 << OpCode.StackChangeShift)
677         );
678 
679         public static readonly OpCode Br_S = new OpCode(OpCodeValues.Br_S,
680             ((int)OperandType.ShortInlineBrTarget) |
681             ((int)FlowControl.Branch << OpCode.FlowControlShift) |
682             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
683             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
684             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
685             (1 << OpCode.SizeShift) |
686             OpCode.EndsUncondJmpBlkFlag |
687             (0 << OpCode.StackChangeShift)
688         );
689 
690         public static readonly OpCode Brfalse_S = new OpCode(OpCodeValues.Brfalse_S,
691             ((int)OperandType.ShortInlineBrTarget) |
692             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
693             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
694             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
695             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
696             (1 << OpCode.SizeShift) |
697             (-1 << OpCode.StackChangeShift)
698         );
699 
700         public static readonly OpCode Brtrue_S = new OpCode(OpCodeValues.Brtrue_S,
701             ((int)OperandType.ShortInlineBrTarget) |
702             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
703             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
704             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
705             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
706             (1 << OpCode.SizeShift) |
707             (-1 << OpCode.StackChangeShift)
708         );
709 
710         public static readonly OpCode Beq_S = new OpCode(OpCodeValues.Beq_S,
711             ((int)OperandType.ShortInlineBrTarget) |
712             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
713             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
714             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
715             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
716             (1 << OpCode.SizeShift) |
717             (-2 << OpCode.StackChangeShift)
718         );
719 
720         public static readonly OpCode Bge_S = new OpCode(OpCodeValues.Bge_S,
721             ((int)OperandType.ShortInlineBrTarget) |
722             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
723             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
724             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
725             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
726             (1 << OpCode.SizeShift) |
727             (-2 << OpCode.StackChangeShift)
728         );
729 
730         public static readonly OpCode Bgt_S = new OpCode(OpCodeValues.Bgt_S,
731             ((int)OperandType.ShortInlineBrTarget) |
732             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
733             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
734             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
735             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
736             (1 << OpCode.SizeShift) |
737             (-2 << OpCode.StackChangeShift)
738         );
739 
740         public static readonly OpCode Ble_S = new OpCode(OpCodeValues.Ble_S,
741             ((int)OperandType.ShortInlineBrTarget) |
742             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
743             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
744             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
745             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
746             (1 << OpCode.SizeShift) |
747             (-2 << OpCode.StackChangeShift)
748         );
749 
750         public static readonly OpCode Blt_S = new OpCode(OpCodeValues.Blt_S,
751             ((int)OperandType.ShortInlineBrTarget) |
752             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
753             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
754             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
755             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
756             (1 << OpCode.SizeShift) |
757             (-2 << OpCode.StackChangeShift)
758         );
759 
760         public static readonly OpCode Bne_Un_S = new OpCode(OpCodeValues.Bne_Un_S,
761             ((int)OperandType.ShortInlineBrTarget) |
762             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
763             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
764             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
765             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
766             (1 << OpCode.SizeShift) |
767             (-2 << OpCode.StackChangeShift)
768         );
769 
770         public static readonly OpCode Bge_Un_S = new OpCode(OpCodeValues.Bge_Un_S,
771             ((int)OperandType.ShortInlineBrTarget) |
772             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
773             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
774             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
775             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
776             (1 << OpCode.SizeShift) |
777             (-2 << OpCode.StackChangeShift)
778         );
779 
780         public static readonly OpCode Bgt_Un_S = new OpCode(OpCodeValues.Bgt_Un_S,
781             ((int)OperandType.ShortInlineBrTarget) |
782             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
783             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
784             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
785             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
786             (1 << OpCode.SizeShift) |
787             (-2 << OpCode.StackChangeShift)
788         );
789 
790         public static readonly OpCode Ble_Un_S = new OpCode(OpCodeValues.Ble_Un_S,
791             ((int)OperandType.ShortInlineBrTarget) |
792             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
793             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
794             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
795             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
796             (1 << OpCode.SizeShift) |
797             (-2 << OpCode.StackChangeShift)
798         );
799 
800         public static readonly OpCode Blt_Un_S = new OpCode(OpCodeValues.Blt_Un_S,
801             ((int)OperandType.ShortInlineBrTarget) |
802             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
803             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
804             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
805             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
806             (1 << OpCode.SizeShift) |
807             (-2 << OpCode.StackChangeShift)
808         );
809 
810         public static readonly OpCode Br = new OpCode(OpCodeValues.Br,
811             ((int)OperandType.InlineBrTarget) |
812             ((int)FlowControl.Branch << OpCode.FlowControlShift) |
813             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
814             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
815             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
816             (1 << OpCode.SizeShift) |
817             OpCode.EndsUncondJmpBlkFlag |
818             (0 << OpCode.StackChangeShift)
819         );
820 
821         public static readonly OpCode Brfalse = new OpCode(OpCodeValues.Brfalse,
822             ((int)OperandType.InlineBrTarget) |
823             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
824             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
825             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
826             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
827             (1 << OpCode.SizeShift) |
828             (-1 << OpCode.StackChangeShift)
829         );
830 
831         public static readonly OpCode Brtrue = new OpCode(OpCodeValues.Brtrue,
832             ((int)OperandType.InlineBrTarget) |
833             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
834             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
835             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
836             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
837             (1 << OpCode.SizeShift) |
838             (-1 << OpCode.StackChangeShift)
839         );
840 
841         public static readonly OpCode Beq = new OpCode(OpCodeValues.Beq,
842             ((int)OperandType.InlineBrTarget) |
843             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
844             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
845             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
846             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
847             (1 << OpCode.SizeShift) |
848             (-2 << OpCode.StackChangeShift)
849         );
850 
851         public static readonly OpCode Bge = new OpCode(OpCodeValues.Bge,
852             ((int)OperandType.InlineBrTarget) |
853             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
854             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
855             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
856             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
857             (1 << OpCode.SizeShift) |
858             (-2 << OpCode.StackChangeShift)
859         );
860 
861         public static readonly OpCode Bgt = new OpCode(OpCodeValues.Bgt,
862             ((int)OperandType.InlineBrTarget) |
863             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
864             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
865             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
866             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
867             (1 << OpCode.SizeShift) |
868             (-2 << OpCode.StackChangeShift)
869         );
870 
871         public static readonly OpCode Ble = new OpCode(OpCodeValues.Ble,
872             ((int)OperandType.InlineBrTarget) |
873             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
874             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
875             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
876             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
877             (1 << OpCode.SizeShift) |
878             (-2 << OpCode.StackChangeShift)
879         );
880 
881         public static readonly OpCode Blt = new OpCode(OpCodeValues.Blt,
882             ((int)OperandType.InlineBrTarget) |
883             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
884             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
885             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
886             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
887             (1 << OpCode.SizeShift) |
888             (-2 << OpCode.StackChangeShift)
889         );
890 
891         public static readonly OpCode Bne_Un = new OpCode(OpCodeValues.Bne_Un,
892             ((int)OperandType.InlineBrTarget) |
893             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
894             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
895             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
896             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
897             (1 << OpCode.SizeShift) |
898             (-2 << OpCode.StackChangeShift)
899         );
900 
901         public static readonly OpCode Bge_Un = new OpCode(OpCodeValues.Bge_Un,
902             ((int)OperandType.InlineBrTarget) |
903             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
904             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
905             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
906             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
907             (1 << OpCode.SizeShift) |
908             (-2 << OpCode.StackChangeShift)
909         );
910 
911         public static readonly OpCode Bgt_Un = new OpCode(OpCodeValues.Bgt_Un,
912             ((int)OperandType.InlineBrTarget) |
913             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
914             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
915             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
916             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
917             (1 << OpCode.SizeShift) |
918             (-2 << OpCode.StackChangeShift)
919         );
920 
921         public static readonly OpCode Ble_Un = new OpCode(OpCodeValues.Ble_Un,
922             ((int)OperandType.InlineBrTarget) |
923             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
924             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
925             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
926             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
927             (1 << OpCode.SizeShift) |
928             (-2 << OpCode.StackChangeShift)
929         );
930 
931         public static readonly OpCode Blt_Un = new OpCode(OpCodeValues.Blt_Un,
932             ((int)OperandType.InlineBrTarget) |
933             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
934             ((int)OpCodeType.Macro << OpCode.OpCodeTypeShift) |
935             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
936             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
937             (1 << OpCode.SizeShift) |
938             (-2 << OpCode.StackChangeShift)
939         );
940 
941         public static readonly OpCode Switch = new OpCode(OpCodeValues.Switch,
942             ((int)OperandType.InlineSwitch) |
943             ((int)FlowControl.Cond_Branch << OpCode.FlowControlShift) |
944             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
945             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
946             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
947             (1 << OpCode.SizeShift) |
948             (-1 << OpCode.StackChangeShift)
949         );
950 
951         public static readonly OpCode Ldind_I1 = new OpCode(OpCodeValues.Ldind_I1,
952             ((int)OperandType.InlineNone) |
953             ((int)FlowControl.Next << OpCode.FlowControlShift) |
954             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
955             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
956             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
957             (1 << OpCode.SizeShift) |
958             (0 << OpCode.StackChangeShift)
959         );
960 
961         public static readonly OpCode Ldind_U1 = new OpCode(OpCodeValues.Ldind_U1,
962             ((int)OperandType.InlineNone) |
963             ((int)FlowControl.Next << OpCode.FlowControlShift) |
964             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
965             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
966             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
967             (1 << OpCode.SizeShift) |
968             (0 << OpCode.StackChangeShift)
969         );
970 
971         public static readonly OpCode Ldind_I2 = new OpCode(OpCodeValues.Ldind_I2,
972             ((int)OperandType.InlineNone) |
973             ((int)FlowControl.Next << OpCode.FlowControlShift) |
974             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
975             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
976             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
977             (1 << OpCode.SizeShift) |
978             (0 << OpCode.StackChangeShift)
979         );
980 
981         public static readonly OpCode Ldind_U2 = new OpCode(OpCodeValues.Ldind_U2,
982             ((int)OperandType.InlineNone) |
983             ((int)FlowControl.Next << OpCode.FlowControlShift) |
984             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
985             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
986             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
987             (1 << OpCode.SizeShift) |
988             (0 << OpCode.StackChangeShift)
989         );
990 
991         public static readonly OpCode Ldind_I4 = new OpCode(OpCodeValues.Ldind_I4,
992             ((int)OperandType.InlineNone) |
993             ((int)FlowControl.Next << OpCode.FlowControlShift) |
994             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
995             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
996             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
997             (1 << OpCode.SizeShift) |
998             (0 << OpCode.StackChangeShift)
999         );
1000 
1001         public static readonly OpCode Ldind_U4 = new OpCode(OpCodeValues.Ldind_U4,
1002             ((int)OperandType.InlineNone) |
1003             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1004             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1005             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
1006             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1007             (1 << OpCode.SizeShift) |
1008             (0 << OpCode.StackChangeShift)
1009         );
1010 
1011         public static readonly OpCode Ldind_I8 = new OpCode(OpCodeValues.Ldind_I8,
1012             ((int)OperandType.InlineNone) |
1013             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1014             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1015             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
1016             ((int)StackBehaviour.Pushi8 << OpCode.StackBehaviourPushShift) |
1017             (1 << OpCode.SizeShift) |
1018             (0 << OpCode.StackChangeShift)
1019         );
1020 
1021         public static readonly OpCode Ldind_I = new OpCode(OpCodeValues.Ldind_I,
1022             ((int)OperandType.InlineNone) |
1023             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1024             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1025             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
1026             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1027             (1 << OpCode.SizeShift) |
1028             (0 << OpCode.StackChangeShift)
1029         );
1030 
1031         public static readonly OpCode Ldind_R4 = new OpCode(OpCodeValues.Ldind_R4,
1032             ((int)OperandType.InlineNone) |
1033             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1034             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1035             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
1036             ((int)StackBehaviour.Pushr4 << OpCode.StackBehaviourPushShift) |
1037             (1 << OpCode.SizeShift) |
1038             (0 << OpCode.StackChangeShift)
1039         );
1040 
1041         public static readonly OpCode Ldind_R8 = new OpCode(OpCodeValues.Ldind_R8,
1042             ((int)OperandType.InlineNone) |
1043             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1044             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1045             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
1046             ((int)StackBehaviour.Pushr8 << OpCode.StackBehaviourPushShift) |
1047             (1 << OpCode.SizeShift) |
1048             (0 << OpCode.StackChangeShift)
1049         );
1050 
1051         public static readonly OpCode Ldind_Ref = new OpCode(OpCodeValues.Ldind_Ref,
1052             ((int)OperandType.InlineNone) |
1053             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1054             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1055             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
1056             ((int)StackBehaviour.Pushref << OpCode.StackBehaviourPushShift) |
1057             (1 << OpCode.SizeShift) |
1058             (0 << OpCode.StackChangeShift)
1059         );
1060 
1061         public static readonly OpCode Stind_Ref = new OpCode(OpCodeValues.Stind_Ref,
1062             ((int)OperandType.InlineNone) |
1063             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1064             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1065             ((int)StackBehaviour.Popi_popi << OpCode.StackBehaviourPopShift) |
1066             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1067             (1 << OpCode.SizeShift) |
1068             (-2 << OpCode.StackChangeShift)
1069         );
1070 
1071         public static readonly OpCode Stind_I1 = new OpCode(OpCodeValues.Stind_I1,
1072             ((int)OperandType.InlineNone) |
1073             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1074             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1075             ((int)StackBehaviour.Popi_popi << OpCode.StackBehaviourPopShift) |
1076             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1077             (1 << OpCode.SizeShift) |
1078             (-2 << OpCode.StackChangeShift)
1079         );
1080 
1081         public static readonly OpCode Stind_I2 = new OpCode(OpCodeValues.Stind_I2,
1082             ((int)OperandType.InlineNone) |
1083             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1084             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1085             ((int)StackBehaviour.Popi_popi << OpCode.StackBehaviourPopShift) |
1086             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1087             (1 << OpCode.SizeShift) |
1088             (-2 << OpCode.StackChangeShift)
1089         );
1090 
1091         public static readonly OpCode Stind_I4 = new OpCode(OpCodeValues.Stind_I4,
1092             ((int)OperandType.InlineNone) |
1093             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1094             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1095             ((int)StackBehaviour.Popi_popi << OpCode.StackBehaviourPopShift) |
1096             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1097             (1 << OpCode.SizeShift) |
1098             (-2 << OpCode.StackChangeShift)
1099         );
1100 
1101         public static readonly OpCode Stind_I8 = new OpCode(OpCodeValues.Stind_I8,
1102             ((int)OperandType.InlineNone) |
1103             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1104             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1105             ((int)StackBehaviour.Popi_popi8 << OpCode.StackBehaviourPopShift) |
1106             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1107             (1 << OpCode.SizeShift) |
1108             (-2 << OpCode.StackChangeShift)
1109         );
1110 
1111         public static readonly OpCode Stind_R4 = new OpCode(OpCodeValues.Stind_R4,
1112             ((int)OperandType.InlineNone) |
1113             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1114             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1115             ((int)StackBehaviour.Popi_popr4 << OpCode.StackBehaviourPopShift) |
1116             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1117             (1 << OpCode.SizeShift) |
1118             (-2 << OpCode.StackChangeShift)
1119         );
1120 
1121         public static readonly OpCode Stind_R8 = new OpCode(OpCodeValues.Stind_R8,
1122             ((int)OperandType.InlineNone) |
1123             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1124             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1125             ((int)StackBehaviour.Popi_popr8 << OpCode.StackBehaviourPopShift) |
1126             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1127             (1 << OpCode.SizeShift) |
1128             (-2 << OpCode.StackChangeShift)
1129         );
1130 
1131         public static readonly OpCode Add = new OpCode(OpCodeValues.Add,
1132             ((int)OperandType.InlineNone) |
1133             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1134             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1135             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1136             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1137             (1 << OpCode.SizeShift) |
1138             (-1 << OpCode.StackChangeShift)
1139         );
1140 
1141         public static readonly OpCode Sub = new OpCode(OpCodeValues.Sub,
1142             ((int)OperandType.InlineNone) |
1143             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1144             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1145             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1146             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1147             (1 << OpCode.SizeShift) |
1148             (-1 << OpCode.StackChangeShift)
1149         );
1150 
1151         public static readonly OpCode Mul = new OpCode(OpCodeValues.Mul,
1152             ((int)OperandType.InlineNone) |
1153             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1154             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1155             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1156             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1157             (1 << OpCode.SizeShift) |
1158             (-1 << OpCode.StackChangeShift)
1159         );
1160 
1161         public static readonly OpCode Div = new OpCode(OpCodeValues.Div,
1162             ((int)OperandType.InlineNone) |
1163             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1164             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1165             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1166             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1167             (1 << OpCode.SizeShift) |
1168             (-1 << OpCode.StackChangeShift)
1169         );
1170 
1171         public static readonly OpCode Div_Un = new OpCode(OpCodeValues.Div_Un,
1172             ((int)OperandType.InlineNone) |
1173             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1174             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1175             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1176             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1177             (1 << OpCode.SizeShift) |
1178             (-1 << OpCode.StackChangeShift)
1179         );
1180 
1181         public static readonly OpCode Rem = new OpCode(OpCodeValues.Rem,
1182             ((int)OperandType.InlineNone) |
1183             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1184             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1185             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1186             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1187             (1 << OpCode.SizeShift) |
1188             (-1 << OpCode.StackChangeShift)
1189         );
1190 
1191         public static readonly OpCode Rem_Un = new OpCode(OpCodeValues.Rem_Un,
1192             ((int)OperandType.InlineNone) |
1193             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1194             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1195             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1196             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1197             (1 << OpCode.SizeShift) |
1198             (-1 << OpCode.StackChangeShift)
1199         );
1200 
1201         public static readonly OpCode And = new OpCode(OpCodeValues.And,
1202             ((int)OperandType.InlineNone) |
1203             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1204             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1205             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1206             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1207             (1 << OpCode.SizeShift) |
1208             (-1 << OpCode.StackChangeShift)
1209         );
1210 
1211         public static readonly OpCode Or = new OpCode(OpCodeValues.Or,
1212             ((int)OperandType.InlineNone) |
1213             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1214             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1215             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1216             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1217             (1 << OpCode.SizeShift) |
1218             (-1 << OpCode.StackChangeShift)
1219         );
1220 
1221         public static readonly OpCode Xor = new OpCode(OpCodeValues.Xor,
1222             ((int)OperandType.InlineNone) |
1223             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1224             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1225             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1226             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1227             (1 << OpCode.SizeShift) |
1228             (-1 << OpCode.StackChangeShift)
1229         );
1230 
1231         public static readonly OpCode Shl = new OpCode(OpCodeValues.Shl,
1232             ((int)OperandType.InlineNone) |
1233             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1234             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1235             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1236             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1237             (1 << OpCode.SizeShift) |
1238             (-1 << OpCode.StackChangeShift)
1239         );
1240 
1241         public static readonly OpCode Shr = new OpCode(OpCodeValues.Shr,
1242             ((int)OperandType.InlineNone) |
1243             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1244             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1245             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1246             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1247             (1 << OpCode.SizeShift) |
1248             (-1 << OpCode.StackChangeShift)
1249         );
1250 
1251         public static readonly OpCode Shr_Un = new OpCode(OpCodeValues.Shr_Un,
1252             ((int)OperandType.InlineNone) |
1253             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1254             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1255             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
1256             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1257             (1 << OpCode.SizeShift) |
1258             (-1 << OpCode.StackChangeShift)
1259         );
1260 
1261         public static readonly OpCode Neg = new OpCode(OpCodeValues.Neg,
1262             ((int)OperandType.InlineNone) |
1263             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1264             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1265             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1266             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1267             (1 << OpCode.SizeShift) |
1268             (0 << OpCode.StackChangeShift)
1269         );
1270 
1271         public static readonly OpCode Not = new OpCode(OpCodeValues.Not,
1272             ((int)OperandType.InlineNone) |
1273             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1274             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1275             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1276             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1277             (1 << OpCode.SizeShift) |
1278             (0 << OpCode.StackChangeShift)
1279         );
1280 
1281         public static readonly OpCode Conv_I1 = new OpCode(OpCodeValues.Conv_I1,
1282             ((int)OperandType.InlineNone) |
1283             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1284             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1285             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1286             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1287             (1 << OpCode.SizeShift) |
1288             (0 << OpCode.StackChangeShift)
1289         );
1290 
1291         public static readonly OpCode Conv_I2 = new OpCode(OpCodeValues.Conv_I2,
1292             ((int)OperandType.InlineNone) |
1293             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1294             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1295             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1296             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1297             (1 << OpCode.SizeShift) |
1298             (0 << OpCode.StackChangeShift)
1299         );
1300 
1301         public static readonly OpCode Conv_I4 = new OpCode(OpCodeValues.Conv_I4,
1302             ((int)OperandType.InlineNone) |
1303             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1304             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1305             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1306             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1307             (1 << OpCode.SizeShift) |
1308             (0 << OpCode.StackChangeShift)
1309         );
1310 
1311         public static readonly OpCode Conv_I8 = new OpCode(OpCodeValues.Conv_I8,
1312             ((int)OperandType.InlineNone) |
1313             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1314             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1315             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1316             ((int)StackBehaviour.Pushi8 << OpCode.StackBehaviourPushShift) |
1317             (1 << OpCode.SizeShift) |
1318             (0 << OpCode.StackChangeShift)
1319         );
1320 
1321         public static readonly OpCode Conv_R4 = new OpCode(OpCodeValues.Conv_R4,
1322             ((int)OperandType.InlineNone) |
1323             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1324             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1325             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1326             ((int)StackBehaviour.Pushr4 << OpCode.StackBehaviourPushShift) |
1327             (1 << OpCode.SizeShift) |
1328             (0 << OpCode.StackChangeShift)
1329         );
1330 
1331         public static readonly OpCode Conv_R8 = new OpCode(OpCodeValues.Conv_R8,
1332             ((int)OperandType.InlineNone) |
1333             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1334             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1335             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1336             ((int)StackBehaviour.Pushr8 << OpCode.StackBehaviourPushShift) |
1337             (1 << OpCode.SizeShift) |
1338             (0 << OpCode.StackChangeShift)
1339         );
1340 
1341         public static readonly OpCode Conv_U4 = new OpCode(OpCodeValues.Conv_U4,
1342             ((int)OperandType.InlineNone) |
1343             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1344             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1345             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1346             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1347             (1 << OpCode.SizeShift) |
1348             (0 << OpCode.StackChangeShift)
1349         );
1350 
1351         public static readonly OpCode Conv_U8 = new OpCode(OpCodeValues.Conv_U8,
1352             ((int)OperandType.InlineNone) |
1353             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1354             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1355             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1356             ((int)StackBehaviour.Pushi8 << OpCode.StackBehaviourPushShift) |
1357             (1 << OpCode.SizeShift) |
1358             (0 << OpCode.StackChangeShift)
1359         );
1360 
1361         public static readonly OpCode Callvirt = new OpCode(OpCodeValues.Callvirt,
1362             ((int)OperandType.InlineMethod) |
1363             ((int)FlowControl.Call << OpCode.FlowControlShift) |
1364             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1365             ((int)StackBehaviour.Varpop << OpCode.StackBehaviourPopShift) |
1366             ((int)StackBehaviour.Varpush << OpCode.StackBehaviourPushShift) |
1367             (1 << OpCode.SizeShift) |
1368             (0 << OpCode.StackChangeShift)
1369         );
1370 
1371         public static readonly OpCode Cpobj = new OpCode(OpCodeValues.Cpobj,
1372             ((int)OperandType.InlineType) |
1373             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1374             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1375             ((int)StackBehaviour.Popi_popi << OpCode.StackBehaviourPopShift) |
1376             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1377             (1 << OpCode.SizeShift) |
1378             (-2 << OpCode.StackChangeShift)
1379         );
1380 
1381         public static readonly OpCode Ldobj = new OpCode(OpCodeValues.Ldobj,
1382             ((int)OperandType.InlineType) |
1383             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1384             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1385             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
1386             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1387             (1 << OpCode.SizeShift) |
1388             (0 << OpCode.StackChangeShift)
1389         );
1390 
1391         public static readonly OpCode Ldstr = new OpCode(OpCodeValues.Ldstr,
1392             ((int)OperandType.InlineString) |
1393             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1394             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1395             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
1396             ((int)StackBehaviour.Pushref << OpCode.StackBehaviourPushShift) |
1397             (1 << OpCode.SizeShift) |
1398             (1 << OpCode.StackChangeShift)
1399         );
1400 
1401         public static readonly OpCode Newobj = new OpCode(OpCodeValues.Newobj,
1402             ((int)OperandType.InlineMethod) |
1403             ((int)FlowControl.Call << OpCode.FlowControlShift) |
1404             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1405             ((int)StackBehaviour.Varpop << OpCode.StackBehaviourPopShift) |
1406             ((int)StackBehaviour.Pushref << OpCode.StackBehaviourPushShift) |
1407             (1 << OpCode.SizeShift) |
1408             (1 << OpCode.StackChangeShift)
1409         );
1410 
1411         public static readonly OpCode Castclass = new OpCode(OpCodeValues.Castclass,
1412             ((int)OperandType.InlineType) |
1413             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1414             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1415             ((int)StackBehaviour.Popref << OpCode.StackBehaviourPopShift) |
1416             ((int)StackBehaviour.Pushref << OpCode.StackBehaviourPushShift) |
1417             (1 << OpCode.SizeShift) |
1418             (0 << OpCode.StackChangeShift)
1419         );
1420 
1421         public static readonly OpCode Isinst = new OpCode(OpCodeValues.Isinst,
1422             ((int)OperandType.InlineType) |
1423             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1424             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1425             ((int)StackBehaviour.Popref << OpCode.StackBehaviourPopShift) |
1426             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1427             (1 << OpCode.SizeShift) |
1428             (0 << OpCode.StackChangeShift)
1429         );
1430 
1431         public static readonly OpCode Conv_R_Un = new OpCode(OpCodeValues.Conv_R_Un,
1432             ((int)OperandType.InlineNone) |
1433             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1434             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1435             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1436             ((int)StackBehaviour.Pushr8 << OpCode.StackBehaviourPushShift) |
1437             (1 << OpCode.SizeShift) |
1438             (0 << OpCode.StackChangeShift)
1439         );
1440 
1441         public static readonly OpCode Unbox = new OpCode(OpCodeValues.Unbox,
1442             ((int)OperandType.InlineType) |
1443             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1444             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1445             ((int)StackBehaviour.Popref << OpCode.StackBehaviourPopShift) |
1446             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1447             (1 << OpCode.SizeShift) |
1448             (0 << OpCode.StackChangeShift)
1449         );
1450 
1451         public static readonly OpCode Throw = new OpCode(OpCodeValues.Throw,
1452             ((int)OperandType.InlineNone) |
1453             ((int)FlowControl.Throw << OpCode.FlowControlShift) |
1454             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1455             ((int)StackBehaviour.Popref << OpCode.StackBehaviourPopShift) |
1456             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1457             (1 << OpCode.SizeShift) |
1458             OpCode.EndsUncondJmpBlkFlag |
1459             (-1 << OpCode.StackChangeShift)
1460         );
1461 
1462         public static readonly OpCode Ldfld = new OpCode(OpCodeValues.Ldfld,
1463             ((int)OperandType.InlineField) |
1464             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1465             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1466             ((int)StackBehaviour.Popref << OpCode.StackBehaviourPopShift) |
1467             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1468             (1 << OpCode.SizeShift) |
1469             (0 << OpCode.StackChangeShift)
1470         );
1471 
1472         public static readonly OpCode Ldflda = new OpCode(OpCodeValues.Ldflda,
1473             ((int)OperandType.InlineField) |
1474             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1475             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1476             ((int)StackBehaviour.Popref << OpCode.StackBehaviourPopShift) |
1477             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1478             (1 << OpCode.SizeShift) |
1479             (0 << OpCode.StackChangeShift)
1480         );
1481 
1482         public static readonly OpCode Stfld = new OpCode(OpCodeValues.Stfld,
1483             ((int)OperandType.InlineField) |
1484             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1485             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1486             ((int)StackBehaviour.Popref_pop1 << OpCode.StackBehaviourPopShift) |
1487             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1488             (1 << OpCode.SizeShift) |
1489             (-2 << OpCode.StackChangeShift)
1490         );
1491 
1492         public static readonly OpCode Ldsfld = new OpCode(OpCodeValues.Ldsfld,
1493             ((int)OperandType.InlineField) |
1494             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1495             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1496             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
1497             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1498             (1 << OpCode.SizeShift) |
1499             (1 << OpCode.StackChangeShift)
1500         );
1501 
1502         public static readonly OpCode Ldsflda = new OpCode(OpCodeValues.Ldsflda,
1503             ((int)OperandType.InlineField) |
1504             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1505             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1506             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
1507             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1508             (1 << OpCode.SizeShift) |
1509             (1 << OpCode.StackChangeShift)
1510         );
1511 
1512         public static readonly OpCode Stsfld = new OpCode(OpCodeValues.Stsfld,
1513             ((int)OperandType.InlineField) |
1514             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1515             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1516             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1517             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1518             (1 << OpCode.SizeShift) |
1519             (-1 << OpCode.StackChangeShift)
1520         );
1521 
1522         public static readonly OpCode Stobj = new OpCode(OpCodeValues.Stobj,
1523             ((int)OperandType.InlineType) |
1524             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1525             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1526             ((int)StackBehaviour.Popi_pop1 << OpCode.StackBehaviourPopShift) |
1527             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1528             (1 << OpCode.SizeShift) |
1529             (-2 << OpCode.StackChangeShift)
1530         );
1531 
1532         public static readonly OpCode Conv_Ovf_I1_Un = new OpCode(OpCodeValues.Conv_Ovf_I1_Un,
1533             ((int)OperandType.InlineNone) |
1534             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1535             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1536             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1537             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1538             (1 << OpCode.SizeShift) |
1539             (0 << OpCode.StackChangeShift)
1540         );
1541 
1542         public static readonly OpCode Conv_Ovf_I2_Un = new OpCode(OpCodeValues.Conv_Ovf_I2_Un,
1543             ((int)OperandType.InlineNone) |
1544             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1545             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1546             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1547             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1548             (1 << OpCode.SizeShift) |
1549             (0 << OpCode.StackChangeShift)
1550         );
1551 
1552         public static readonly OpCode Conv_Ovf_I4_Un = new OpCode(OpCodeValues.Conv_Ovf_I4_Un,
1553             ((int)OperandType.InlineNone) |
1554             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1555             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1556             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1557             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1558             (1 << OpCode.SizeShift) |
1559             (0 << OpCode.StackChangeShift)
1560         );
1561 
1562         public static readonly OpCode Conv_Ovf_I8_Un = new OpCode(OpCodeValues.Conv_Ovf_I8_Un,
1563             ((int)OperandType.InlineNone) |
1564             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1565             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1566             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1567             ((int)StackBehaviour.Pushi8 << OpCode.StackBehaviourPushShift) |
1568             (1 << OpCode.SizeShift) |
1569             (0 << OpCode.StackChangeShift)
1570         );
1571 
1572         public static readonly OpCode Conv_Ovf_U1_Un = new OpCode(OpCodeValues.Conv_Ovf_U1_Un,
1573             ((int)OperandType.InlineNone) |
1574             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1575             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1576             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1577             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1578             (1 << OpCode.SizeShift) |
1579             (0 << OpCode.StackChangeShift)
1580         );
1581 
1582         public static readonly OpCode Conv_Ovf_U2_Un = new OpCode(OpCodeValues.Conv_Ovf_U2_Un,
1583             ((int)OperandType.InlineNone) |
1584             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1585             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1586             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1587             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1588             (1 << OpCode.SizeShift) |
1589             (0 << OpCode.StackChangeShift)
1590         );
1591 
1592         public static readonly OpCode Conv_Ovf_U4_Un = new OpCode(OpCodeValues.Conv_Ovf_U4_Un,
1593             ((int)OperandType.InlineNone) |
1594             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1595             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1596             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1597             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1598             (1 << OpCode.SizeShift) |
1599             (0 << OpCode.StackChangeShift)
1600         );
1601 
1602         public static readonly OpCode Conv_Ovf_U8_Un = new OpCode(OpCodeValues.Conv_Ovf_U8_Un,
1603             ((int)OperandType.InlineNone) |
1604             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1605             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1606             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1607             ((int)StackBehaviour.Pushi8 << OpCode.StackBehaviourPushShift) |
1608             (1 << OpCode.SizeShift) |
1609             (0 << OpCode.StackChangeShift)
1610         );
1611 
1612         public static readonly OpCode Conv_Ovf_I_Un = new OpCode(OpCodeValues.Conv_Ovf_I_Un,
1613             ((int)OperandType.InlineNone) |
1614             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1615             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1616             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1617             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1618             (1 << OpCode.SizeShift) |
1619             (0 << OpCode.StackChangeShift)
1620         );
1621 
1622         public static readonly OpCode Conv_Ovf_U_Un = new OpCode(OpCodeValues.Conv_Ovf_U_Un,
1623             ((int)OperandType.InlineNone) |
1624             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1625             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1626             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1627             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1628             (1 << OpCode.SizeShift) |
1629             (0 << OpCode.StackChangeShift)
1630         );
1631 
1632         public static readonly OpCode Box = new OpCode(OpCodeValues.Box,
1633             ((int)OperandType.InlineType) |
1634             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1635             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1636             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1637             ((int)StackBehaviour.Pushref << OpCode.StackBehaviourPushShift) |
1638             (1 << OpCode.SizeShift) |
1639             (0 << OpCode.StackChangeShift)
1640         );
1641 
1642         public static readonly OpCode Newarr = new OpCode(OpCodeValues.Newarr,
1643             ((int)OperandType.InlineType) |
1644             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1645             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1646             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
1647             ((int)StackBehaviour.Pushref << OpCode.StackBehaviourPushShift) |
1648             (1 << OpCode.SizeShift) |
1649             (0 << OpCode.StackChangeShift)
1650         );
1651 
1652         public static readonly OpCode Ldlen = new OpCode(OpCodeValues.Ldlen,
1653             ((int)OperandType.InlineNone) |
1654             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1655             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1656             ((int)StackBehaviour.Popref << OpCode.StackBehaviourPopShift) |
1657             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1658             (1 << OpCode.SizeShift) |
1659             (0 << OpCode.StackChangeShift)
1660         );
1661 
1662         public static readonly OpCode Ldelema = new OpCode(OpCodeValues.Ldelema,
1663             ((int)OperandType.InlineType) |
1664             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1665             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1666             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1667             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1668             (1 << OpCode.SizeShift) |
1669             (-1 << OpCode.StackChangeShift)
1670         );
1671 
1672         public static readonly OpCode Ldelem_I1 = new OpCode(OpCodeValues.Ldelem_I1,
1673             ((int)OperandType.InlineNone) |
1674             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1675             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1676             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1677             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1678             (1 << OpCode.SizeShift) |
1679             (-1 << OpCode.StackChangeShift)
1680         );
1681 
1682         public static readonly OpCode Ldelem_U1 = new OpCode(OpCodeValues.Ldelem_U1,
1683             ((int)OperandType.InlineNone) |
1684             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1685             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1686             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1687             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1688             (1 << OpCode.SizeShift) |
1689             (-1 << OpCode.StackChangeShift)
1690         );
1691 
1692         public static readonly OpCode Ldelem_I2 = new OpCode(OpCodeValues.Ldelem_I2,
1693             ((int)OperandType.InlineNone) |
1694             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1695             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1696             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1697             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1698             (1 << OpCode.SizeShift) |
1699             (-1 << OpCode.StackChangeShift)
1700         );
1701 
1702         public static readonly OpCode Ldelem_U2 = new OpCode(OpCodeValues.Ldelem_U2,
1703             ((int)OperandType.InlineNone) |
1704             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1705             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1706             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1707             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1708             (1 << OpCode.SizeShift) |
1709             (-1 << OpCode.StackChangeShift)
1710         );
1711 
1712         public static readonly OpCode Ldelem_I4 = new OpCode(OpCodeValues.Ldelem_I4,
1713             ((int)OperandType.InlineNone) |
1714             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1715             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1716             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1717             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1718             (1 << OpCode.SizeShift) |
1719             (-1 << OpCode.StackChangeShift)
1720         );
1721 
1722         public static readonly OpCode Ldelem_U4 = new OpCode(OpCodeValues.Ldelem_U4,
1723             ((int)OperandType.InlineNone) |
1724             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1725             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1726             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1727             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1728             (1 << OpCode.SizeShift) |
1729             (-1 << OpCode.StackChangeShift)
1730         );
1731 
1732         public static readonly OpCode Ldelem_I8 = new OpCode(OpCodeValues.Ldelem_I8,
1733             ((int)OperandType.InlineNone) |
1734             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1735             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1736             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1737             ((int)StackBehaviour.Pushi8 << OpCode.StackBehaviourPushShift) |
1738             (1 << OpCode.SizeShift) |
1739             (-1 << OpCode.StackChangeShift)
1740         );
1741 
1742         public static readonly OpCode Ldelem_I = new OpCode(OpCodeValues.Ldelem_I,
1743             ((int)OperandType.InlineNone) |
1744             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1745             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1746             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1747             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1748             (1 << OpCode.SizeShift) |
1749             (-1 << OpCode.StackChangeShift)
1750         );
1751 
1752         public static readonly OpCode Ldelem_R4 = new OpCode(OpCodeValues.Ldelem_R4,
1753             ((int)OperandType.InlineNone) |
1754             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1755             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1756             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1757             ((int)StackBehaviour.Pushr4 << OpCode.StackBehaviourPushShift) |
1758             (1 << OpCode.SizeShift) |
1759             (-1 << OpCode.StackChangeShift)
1760         );
1761 
1762         public static readonly OpCode Ldelem_R8 = new OpCode(OpCodeValues.Ldelem_R8,
1763             ((int)OperandType.InlineNone) |
1764             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1765             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1766             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1767             ((int)StackBehaviour.Pushr8 << OpCode.StackBehaviourPushShift) |
1768             (1 << OpCode.SizeShift) |
1769             (-1 << OpCode.StackChangeShift)
1770         );
1771 
1772         public static readonly OpCode Ldelem_Ref = new OpCode(OpCodeValues.Ldelem_Ref,
1773             ((int)OperandType.InlineNone) |
1774             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1775             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1776             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1777             ((int)StackBehaviour.Pushref << OpCode.StackBehaviourPushShift) |
1778             (1 << OpCode.SizeShift) |
1779             (-1 << OpCode.StackChangeShift)
1780         );
1781 
1782         public static readonly OpCode Stelem_I = new OpCode(OpCodeValues.Stelem_I,
1783             ((int)OperandType.InlineNone) |
1784             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1785             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1786             ((int)StackBehaviour.Popref_popi_popi << OpCode.StackBehaviourPopShift) |
1787             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1788             (1 << OpCode.SizeShift) |
1789             (-3 << OpCode.StackChangeShift)
1790         );
1791 
1792         public static readonly OpCode Stelem_I1 = new OpCode(OpCodeValues.Stelem_I1,
1793             ((int)OperandType.InlineNone) |
1794             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1795             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1796             ((int)StackBehaviour.Popref_popi_popi << OpCode.StackBehaviourPopShift) |
1797             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1798             (1 << OpCode.SizeShift) |
1799             (-3 << OpCode.StackChangeShift)
1800         );
1801 
1802         public static readonly OpCode Stelem_I2 = new OpCode(OpCodeValues.Stelem_I2,
1803             ((int)OperandType.InlineNone) |
1804             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1805             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1806             ((int)StackBehaviour.Popref_popi_popi << OpCode.StackBehaviourPopShift) |
1807             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1808             (1 << OpCode.SizeShift) |
1809             (-3 << OpCode.StackChangeShift)
1810         );
1811 
1812         public static readonly OpCode Stelem_I4 = new OpCode(OpCodeValues.Stelem_I4,
1813             ((int)OperandType.InlineNone) |
1814             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1815             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1816             ((int)StackBehaviour.Popref_popi_popi << OpCode.StackBehaviourPopShift) |
1817             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1818             (1 << OpCode.SizeShift) |
1819             (-3 << OpCode.StackChangeShift)
1820         );
1821 
1822         public static readonly OpCode Stelem_I8 = new OpCode(OpCodeValues.Stelem_I8,
1823             ((int)OperandType.InlineNone) |
1824             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1825             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1826             ((int)StackBehaviour.Popref_popi_popi8 << OpCode.StackBehaviourPopShift) |
1827             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1828             (1 << OpCode.SizeShift) |
1829             (-3 << OpCode.StackChangeShift)
1830         );
1831 
1832         public static readonly OpCode Stelem_R4 = new OpCode(OpCodeValues.Stelem_R4,
1833             ((int)OperandType.InlineNone) |
1834             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1835             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1836             ((int)StackBehaviour.Popref_popi_popr4 << OpCode.StackBehaviourPopShift) |
1837             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1838             (1 << OpCode.SizeShift) |
1839             (-3 << OpCode.StackChangeShift)
1840         );
1841 
1842         public static readonly OpCode Stelem_R8 = new OpCode(OpCodeValues.Stelem_R8,
1843             ((int)OperandType.InlineNone) |
1844             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1845             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1846             ((int)StackBehaviour.Popref_popi_popr8 << OpCode.StackBehaviourPopShift) |
1847             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1848             (1 << OpCode.SizeShift) |
1849             (-3 << OpCode.StackChangeShift)
1850         );
1851 
1852         public static readonly OpCode Stelem_Ref = new OpCode(OpCodeValues.Stelem_Ref,
1853             ((int)OperandType.InlineNone) |
1854             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1855             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1856             ((int)StackBehaviour.Popref_popi_popref << OpCode.StackBehaviourPopShift) |
1857             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1858             (1 << OpCode.SizeShift) |
1859             (-3 << OpCode.StackChangeShift)
1860         );
1861 
1862         public static readonly OpCode Ldelem = new OpCode(OpCodeValues.Ldelem,
1863             ((int)OperandType.InlineType) |
1864             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1865             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1866             ((int)StackBehaviour.Popref_popi << OpCode.StackBehaviourPopShift) |
1867             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1868             (1 << OpCode.SizeShift) |
1869             (-1 << OpCode.StackChangeShift)
1870         );
1871 
1872         public static readonly OpCode Stelem = new OpCode(OpCodeValues.Stelem,
1873             ((int)OperandType.InlineType) |
1874             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1875             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1876             ((int)StackBehaviour.Popref_popi_pop1 << OpCode.StackBehaviourPopShift) |
1877             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
1878             (1 << OpCode.SizeShift) |
1879             (0 << OpCode.StackChangeShift)
1880         );
1881 
1882         public static readonly OpCode Unbox_Any = new OpCode(OpCodeValues.Unbox_Any,
1883             ((int)OperandType.InlineType) |
1884             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1885             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
1886             ((int)StackBehaviour.Popref << OpCode.StackBehaviourPopShift) |
1887             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1888             (1 << OpCode.SizeShift) |
1889             (0 << OpCode.StackChangeShift)
1890         );
1891 
1892         public static readonly OpCode Conv_Ovf_I1 = new OpCode(OpCodeValues.Conv_Ovf_I1,
1893             ((int)OperandType.InlineNone) |
1894             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1895             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1896             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1897             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1898             (1 << OpCode.SizeShift) |
1899             (0 << OpCode.StackChangeShift)
1900         );
1901 
1902         public static readonly OpCode Conv_Ovf_U1 = new OpCode(OpCodeValues.Conv_Ovf_U1,
1903             ((int)OperandType.InlineNone) |
1904             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1905             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1906             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1907             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1908             (1 << OpCode.SizeShift) |
1909             (0 << OpCode.StackChangeShift)
1910         );
1911 
1912         public static readonly OpCode Conv_Ovf_I2 = new OpCode(OpCodeValues.Conv_Ovf_I2,
1913             ((int)OperandType.InlineNone) |
1914             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1915             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1916             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1917             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1918             (1 << OpCode.SizeShift) |
1919             (0 << OpCode.StackChangeShift)
1920         );
1921 
1922         public static readonly OpCode Conv_Ovf_U2 = new OpCode(OpCodeValues.Conv_Ovf_U2,
1923             ((int)OperandType.InlineNone) |
1924             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1925             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1926             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1927             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1928             (1 << OpCode.SizeShift) |
1929             (0 << OpCode.StackChangeShift)
1930         );
1931 
1932         public static readonly OpCode Conv_Ovf_I4 = new OpCode(OpCodeValues.Conv_Ovf_I4,
1933             ((int)OperandType.InlineNone) |
1934             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1935             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1936             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1937             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1938             (1 << OpCode.SizeShift) |
1939             (0 << OpCode.StackChangeShift)
1940         );
1941 
1942         public static readonly OpCode Conv_Ovf_U4 = new OpCode(OpCodeValues.Conv_Ovf_U4,
1943             ((int)OperandType.InlineNone) |
1944             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1945             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1946             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1947             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1948             (1 << OpCode.SizeShift) |
1949             (0 << OpCode.StackChangeShift)
1950         );
1951 
1952         public static readonly OpCode Conv_Ovf_I8 = new OpCode(OpCodeValues.Conv_Ovf_I8,
1953             ((int)OperandType.InlineNone) |
1954             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1955             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1956             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1957             ((int)StackBehaviour.Pushi8 << OpCode.StackBehaviourPushShift) |
1958             (1 << OpCode.SizeShift) |
1959             (0 << OpCode.StackChangeShift)
1960         );
1961 
1962         public static readonly OpCode Conv_Ovf_U8 = new OpCode(OpCodeValues.Conv_Ovf_U8,
1963             ((int)OperandType.InlineNone) |
1964             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1965             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1966             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1967             ((int)StackBehaviour.Pushi8 << OpCode.StackBehaviourPushShift) |
1968             (1 << OpCode.SizeShift) |
1969             (0 << OpCode.StackChangeShift)
1970         );
1971 
1972         public static readonly OpCode Refanyval = new OpCode(OpCodeValues.Refanyval,
1973             ((int)OperandType.InlineType) |
1974             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1975             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1976             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1977             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
1978             (1 << OpCode.SizeShift) |
1979             (0 << OpCode.StackChangeShift)
1980         );
1981 
1982         public static readonly OpCode Ckfinite = new OpCode(OpCodeValues.Ckfinite,
1983             ((int)OperandType.InlineNone) |
1984             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1985             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1986             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
1987             ((int)StackBehaviour.Pushr8 << OpCode.StackBehaviourPushShift) |
1988             (1 << OpCode.SizeShift) |
1989             (0 << OpCode.StackChangeShift)
1990         );
1991 
1992         public static readonly OpCode Mkrefany = new OpCode(OpCodeValues.Mkrefany,
1993             ((int)OperandType.InlineType) |
1994             ((int)FlowControl.Next << OpCode.FlowControlShift) |
1995             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
1996             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
1997             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
1998             (1 << OpCode.SizeShift) |
1999             (0 << OpCode.StackChangeShift)
2000         );
2001 
2002         public static readonly OpCode Ldtoken = new OpCode(OpCodeValues.Ldtoken,
2003             ((int)OperandType.InlineTok) |
2004             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2005             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2006             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2007             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2008             (1 << OpCode.SizeShift) |
2009             (1 << OpCode.StackChangeShift)
2010         );
2011 
2012         public static readonly OpCode Conv_U2 = new OpCode(OpCodeValues.Conv_U2,
2013             ((int)OperandType.InlineNone) |
2014             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2015             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2016             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
2017             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2018             (1 << OpCode.SizeShift) |
2019             (0 << OpCode.StackChangeShift)
2020         );
2021 
2022         public static readonly OpCode Conv_U1 = new OpCode(OpCodeValues.Conv_U1,
2023             ((int)OperandType.InlineNone) |
2024             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2025             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2026             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
2027             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2028             (1 << OpCode.SizeShift) |
2029             (0 << OpCode.StackChangeShift)
2030         );
2031 
2032         public static readonly OpCode Conv_I = new OpCode(OpCodeValues.Conv_I,
2033             ((int)OperandType.InlineNone) |
2034             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2035             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2036             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
2037             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2038             (1 << OpCode.SizeShift) |
2039             (0 << OpCode.StackChangeShift)
2040         );
2041 
2042         public static readonly OpCode Conv_Ovf_I = new OpCode(OpCodeValues.Conv_Ovf_I,
2043             ((int)OperandType.InlineNone) |
2044             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2045             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2046             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
2047             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2048             (1 << OpCode.SizeShift) |
2049             (0 << OpCode.StackChangeShift)
2050         );
2051 
2052         public static readonly OpCode Conv_Ovf_U = new OpCode(OpCodeValues.Conv_Ovf_U,
2053             ((int)OperandType.InlineNone) |
2054             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2055             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2056             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
2057             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2058             (1 << OpCode.SizeShift) |
2059             (0 << OpCode.StackChangeShift)
2060         );
2061 
2062         public static readonly OpCode Add_Ovf = new OpCode(OpCodeValues.Add_Ovf,
2063             ((int)OperandType.InlineNone) |
2064             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2065             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2066             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
2067             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
2068             (1 << OpCode.SizeShift) |
2069             (-1 << OpCode.StackChangeShift)
2070         );
2071 
2072         public static readonly OpCode Add_Ovf_Un = new OpCode(OpCodeValues.Add_Ovf_Un,
2073             ((int)OperandType.InlineNone) |
2074             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2075             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2076             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
2077             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
2078             (1 << OpCode.SizeShift) |
2079             (-1 << OpCode.StackChangeShift)
2080         );
2081 
2082         public static readonly OpCode Mul_Ovf = new OpCode(OpCodeValues.Mul_Ovf,
2083             ((int)OperandType.InlineNone) |
2084             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2085             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2086             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
2087             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
2088             (1 << OpCode.SizeShift) |
2089             (-1 << OpCode.StackChangeShift)
2090         );
2091 
2092         public static readonly OpCode Mul_Ovf_Un = new OpCode(OpCodeValues.Mul_Ovf_Un,
2093             ((int)OperandType.InlineNone) |
2094             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2095             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2096             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
2097             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
2098             (1 << OpCode.SizeShift) |
2099             (-1 << OpCode.StackChangeShift)
2100         );
2101 
2102         public static readonly OpCode Sub_Ovf = new OpCode(OpCodeValues.Sub_Ovf,
2103             ((int)OperandType.InlineNone) |
2104             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2105             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2106             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
2107             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
2108             (1 << OpCode.SizeShift) |
2109             (-1 << OpCode.StackChangeShift)
2110         );
2111 
2112         public static readonly OpCode Sub_Ovf_Un = new OpCode(OpCodeValues.Sub_Ovf_Un,
2113             ((int)OperandType.InlineNone) |
2114             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2115             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2116             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
2117             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
2118             (1 << OpCode.SizeShift) |
2119             (-1 << OpCode.StackChangeShift)
2120         );
2121 
2122         public static readonly OpCode Endfinally = new OpCode(OpCodeValues.Endfinally,
2123             ((int)OperandType.InlineNone) |
2124             ((int)FlowControl.Return << OpCode.FlowControlShift) |
2125             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2126             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2127             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2128             (1 << OpCode.SizeShift) |
2129             OpCode.EndsUncondJmpBlkFlag |
2130             (0 << OpCode.StackChangeShift)
2131         );
2132 
2133         public static readonly OpCode Leave = new OpCode(OpCodeValues.Leave,
2134             ((int)OperandType.InlineBrTarget) |
2135             ((int)FlowControl.Branch << OpCode.FlowControlShift) |
2136             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2137             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2138             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2139             (1 << OpCode.SizeShift) |
2140             OpCode.EndsUncondJmpBlkFlag |
2141             (0 << OpCode.StackChangeShift)
2142         );
2143 
2144         public static readonly OpCode Leave_S = new OpCode(OpCodeValues.Leave_S,
2145             ((int)OperandType.ShortInlineBrTarget) |
2146             ((int)FlowControl.Branch << OpCode.FlowControlShift) |
2147             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2148             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2149             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2150             (1 << OpCode.SizeShift) |
2151             OpCode.EndsUncondJmpBlkFlag |
2152             (0 << OpCode.StackChangeShift)
2153         );
2154 
2155         public static readonly OpCode Stind_I = new OpCode(OpCodeValues.Stind_I,
2156             ((int)OperandType.InlineNone) |
2157             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2158             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2159             ((int)StackBehaviour.Popi_popi << OpCode.StackBehaviourPopShift) |
2160             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2161             (1 << OpCode.SizeShift) |
2162             (-2 << OpCode.StackChangeShift)
2163         );
2164 
2165         public static readonly OpCode Conv_U = new OpCode(OpCodeValues.Conv_U,
2166             ((int)OperandType.InlineNone) |
2167             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2168             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2169             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
2170             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2171             (1 << OpCode.SizeShift) |
2172             (0 << OpCode.StackChangeShift)
2173         );
2174 
2175         public static readonly OpCode Prefix7 = new OpCode(OpCodeValues.Prefix7,
2176             ((int)OperandType.InlineNone) |
2177             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2178             ((int)OpCodeType.Nternal << OpCode.OpCodeTypeShift) |
2179             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2180             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2181             (1 << OpCode.SizeShift) |
2182             (0 << OpCode.StackChangeShift)
2183         );
2184 
2185         public static readonly OpCode Prefix6 = new OpCode(OpCodeValues.Prefix6,
2186             ((int)OperandType.InlineNone) |
2187             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2188             ((int)OpCodeType.Nternal << OpCode.OpCodeTypeShift) |
2189             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2190             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2191             (1 << OpCode.SizeShift) |
2192             (0 << OpCode.StackChangeShift)
2193         );
2194 
2195         public static readonly OpCode Prefix5 = new OpCode(OpCodeValues.Prefix5,
2196             ((int)OperandType.InlineNone) |
2197             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2198             ((int)OpCodeType.Nternal << OpCode.OpCodeTypeShift) |
2199             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2200             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2201             (1 << OpCode.SizeShift) |
2202             (0 << OpCode.StackChangeShift)
2203         );
2204 
2205         public static readonly OpCode Prefix4 = new OpCode(OpCodeValues.Prefix4,
2206             ((int)OperandType.InlineNone) |
2207             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2208             ((int)OpCodeType.Nternal << OpCode.OpCodeTypeShift) |
2209             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2210             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2211             (1 << OpCode.SizeShift) |
2212             (0 << OpCode.StackChangeShift)
2213         );
2214 
2215         public static readonly OpCode Prefix3 = new OpCode(OpCodeValues.Prefix3,
2216             ((int)OperandType.InlineNone) |
2217             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2218             ((int)OpCodeType.Nternal << OpCode.OpCodeTypeShift) |
2219             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2220             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2221             (1 << OpCode.SizeShift) |
2222             (0 << OpCode.StackChangeShift)
2223         );
2224 
2225         public static readonly OpCode Prefix2 = new OpCode(OpCodeValues.Prefix2,
2226             ((int)OperandType.InlineNone) |
2227             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2228             ((int)OpCodeType.Nternal << OpCode.OpCodeTypeShift) |
2229             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2230             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2231             (1 << OpCode.SizeShift) |
2232             (0 << OpCode.StackChangeShift)
2233         );
2234 
2235         public static readonly OpCode Prefix1 = new OpCode(OpCodeValues.Prefix1,
2236             ((int)OperandType.InlineNone) |
2237             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2238             ((int)OpCodeType.Nternal << OpCode.OpCodeTypeShift) |
2239             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2240             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2241             (1 << OpCode.SizeShift) |
2242             (0 << OpCode.StackChangeShift)
2243         );
2244 
2245         public static readonly OpCode Prefixref = new OpCode(OpCodeValues.Prefixref,
2246             ((int)OperandType.InlineNone) |
2247             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2248             ((int)OpCodeType.Nternal << OpCode.OpCodeTypeShift) |
2249             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2250             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2251             (1 << OpCode.SizeShift) |
2252             (0 << OpCode.StackChangeShift)
2253         );
2254 
2255         public static readonly OpCode Arglist = new OpCode(OpCodeValues.Arglist,
2256             ((int)OperandType.InlineNone) |
2257             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2258             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2259             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2260             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2261             (2 << OpCode.SizeShift) |
2262             (1 << OpCode.StackChangeShift)
2263         );
2264 
2265         public static readonly OpCode Ceq = new OpCode(OpCodeValues.Ceq,
2266             ((int)OperandType.InlineNone) |
2267             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2268             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2269             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
2270             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2271             (2 << OpCode.SizeShift) |
2272             (-1 << OpCode.StackChangeShift)
2273         );
2274 
2275         public static readonly OpCode Cgt = new OpCode(OpCodeValues.Cgt,
2276             ((int)OperandType.InlineNone) |
2277             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2278             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2279             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
2280             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2281             (2 << OpCode.SizeShift) |
2282             (-1 << OpCode.StackChangeShift)
2283         );
2284 
2285         public static readonly OpCode Cgt_Un = new OpCode(OpCodeValues.Cgt_Un,
2286             ((int)OperandType.InlineNone) |
2287             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2288             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2289             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
2290             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2291             (2 << OpCode.SizeShift) |
2292             (-1 << OpCode.StackChangeShift)
2293         );
2294 
2295         public static readonly OpCode Clt = new OpCode(OpCodeValues.Clt,
2296             ((int)OperandType.InlineNone) |
2297             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2298             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2299             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
2300             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2301             (2 << OpCode.SizeShift) |
2302             (-1 << OpCode.StackChangeShift)
2303         );
2304 
2305         public static readonly OpCode Clt_Un = new OpCode(OpCodeValues.Clt_Un,
2306             ((int)OperandType.InlineNone) |
2307             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2308             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2309             ((int)StackBehaviour.Pop1_pop1 << OpCode.StackBehaviourPopShift) |
2310             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2311             (2 << OpCode.SizeShift) |
2312             (-1 << OpCode.StackChangeShift)
2313         );
2314 
2315         public static readonly OpCode Ldftn = new OpCode(OpCodeValues.Ldftn,
2316             ((int)OperandType.InlineMethod) |
2317             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2318             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2319             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2320             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2321             (2 << OpCode.SizeShift) |
2322             (1 << OpCode.StackChangeShift)
2323         );
2324 
2325         public static readonly OpCode Ldvirtftn = new OpCode(OpCodeValues.Ldvirtftn,
2326             ((int)OperandType.InlineMethod) |
2327             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2328             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2329             ((int)StackBehaviour.Popref << OpCode.StackBehaviourPopShift) |
2330             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2331             (2 << OpCode.SizeShift) |
2332             (0 << OpCode.StackChangeShift)
2333         );
2334 
2335         public static readonly OpCode Ldarg = new OpCode(OpCodeValues.Ldarg,
2336             ((int)OperandType.InlineVar) |
2337             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2338             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2339             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2340             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
2341             (2 << OpCode.SizeShift) |
2342             (1 << OpCode.StackChangeShift)
2343         );
2344 
2345         public static readonly OpCode Ldarga = new OpCode(OpCodeValues.Ldarga,
2346             ((int)OperandType.InlineVar) |
2347             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2348             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2349             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2350             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2351             (2 << OpCode.SizeShift) |
2352             (1 << OpCode.StackChangeShift)
2353         );
2354 
2355         public static readonly OpCode Starg = new OpCode(OpCodeValues.Starg,
2356             ((int)OperandType.InlineVar) |
2357             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2358             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2359             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
2360             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2361             (2 << OpCode.SizeShift) |
2362             (-1 << OpCode.StackChangeShift)
2363         );
2364 
2365         public static readonly OpCode Ldloc = new OpCode(OpCodeValues.Ldloc,
2366             ((int)OperandType.InlineVar) |
2367             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2368             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2369             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2370             ((int)StackBehaviour.Push1 << OpCode.StackBehaviourPushShift) |
2371             (2 << OpCode.SizeShift) |
2372             (1 << OpCode.StackChangeShift)
2373         );
2374 
2375         public static readonly OpCode Ldloca = new OpCode(OpCodeValues.Ldloca,
2376             ((int)OperandType.InlineVar) |
2377             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2378             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2379             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2380             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2381             (2 << OpCode.SizeShift) |
2382             (1 << OpCode.StackChangeShift)
2383         );
2384 
2385         public static readonly OpCode Stloc = new OpCode(OpCodeValues.Stloc,
2386             ((int)OperandType.InlineVar) |
2387             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2388             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2389             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
2390             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2391             (2 << OpCode.SizeShift) |
2392             (-1 << OpCode.StackChangeShift)
2393         );
2394 
2395         public static readonly OpCode Localloc = new OpCode(OpCodeValues.Localloc,
2396             ((int)OperandType.InlineNone) |
2397             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2398             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2399             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
2400             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2401             (2 << OpCode.SizeShift) |
2402             (0 << OpCode.StackChangeShift)
2403         );
2404 
2405         public static readonly OpCode Endfilter = new OpCode(OpCodeValues.Endfilter,
2406             ((int)OperandType.InlineNone) |
2407             ((int)FlowControl.Return << OpCode.FlowControlShift) |
2408             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2409             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
2410             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2411             (2 << OpCode.SizeShift) |
2412             OpCode.EndsUncondJmpBlkFlag |
2413             (-1 << OpCode.StackChangeShift)
2414         );
2415 
2416         public static readonly OpCode Unaligned = new OpCode(OpCodeValues.Unaligned_,
2417             ((int)OperandType.ShortInlineI) |
2418             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2419             ((int)OpCodeType.Prefix << OpCode.OpCodeTypeShift) |
2420             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2421             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2422             (2 << OpCode.SizeShift) |
2423             (0 << OpCode.StackChangeShift)
2424         );
2425 
2426         public static readonly OpCode Volatile = new OpCode(OpCodeValues.Volatile_,
2427             ((int)OperandType.InlineNone) |
2428             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2429             ((int)OpCodeType.Prefix << OpCode.OpCodeTypeShift) |
2430             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2431             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2432             (2 << OpCode.SizeShift) |
2433             (0 << OpCode.StackChangeShift)
2434         );
2435 
2436         public static readonly OpCode Tailcall = new OpCode(OpCodeValues.Tail_,
2437             ((int)OperandType.InlineNone) |
2438             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2439             ((int)OpCodeType.Prefix << OpCode.OpCodeTypeShift) |
2440             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2441             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2442             (2 << OpCode.SizeShift) |
2443             (0 << OpCode.StackChangeShift)
2444         );
2445 
2446         public static readonly OpCode Initobj = new OpCode(OpCodeValues.Initobj,
2447             ((int)OperandType.InlineType) |
2448             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2449             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
2450             ((int)StackBehaviour.Popi << OpCode.StackBehaviourPopShift) |
2451             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2452             (2 << OpCode.SizeShift) |
2453             (-1 << OpCode.StackChangeShift)
2454         );
2455 
2456         public static readonly OpCode Constrained = new OpCode(OpCodeValues.Constrained_,
2457             ((int)OperandType.InlineType) |
2458             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2459             ((int)OpCodeType.Prefix << OpCode.OpCodeTypeShift) |
2460             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2461             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2462             (2 << OpCode.SizeShift) |
2463             (0 << OpCode.StackChangeShift)
2464         );
2465 
2466         public static readonly OpCode Cpblk = new OpCode(OpCodeValues.Cpblk,
2467             ((int)OperandType.InlineNone) |
2468             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2469             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2470             ((int)StackBehaviour.Popi_popi_popi << OpCode.StackBehaviourPopShift) |
2471             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2472             (2 << OpCode.SizeShift) |
2473             (-3 << OpCode.StackChangeShift)
2474         );
2475 
2476         public static readonly OpCode Initblk = new OpCode(OpCodeValues.Initblk,
2477             ((int)OperandType.InlineNone) |
2478             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2479             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2480             ((int)StackBehaviour.Popi_popi_popi << OpCode.StackBehaviourPopShift) |
2481             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2482             (2 << OpCode.SizeShift) |
2483             (-3 << OpCode.StackChangeShift)
2484         );
2485 
2486         public static readonly OpCode Rethrow = new OpCode(OpCodeValues.Rethrow,
2487             ((int)OperandType.InlineNone) |
2488             ((int)FlowControl.Throw << OpCode.FlowControlShift) |
2489             ((int)OpCodeType.Objmodel << OpCode.OpCodeTypeShift) |
2490             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2491             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2492             (2 << OpCode.SizeShift) |
2493             OpCode.EndsUncondJmpBlkFlag |
2494             (0 << OpCode.StackChangeShift)
2495         );
2496 
2497         public static readonly OpCode Sizeof = new OpCode(OpCodeValues.Sizeof,
2498             ((int)OperandType.InlineType) |
2499             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2500             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2501             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2502             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2503             (2 << OpCode.SizeShift) |
2504             (1 << OpCode.StackChangeShift)
2505         );
2506 
2507         public static readonly OpCode Refanytype = new OpCode(OpCodeValues.Refanytype,
2508             ((int)OperandType.InlineNone) |
2509             ((int)FlowControl.Next << OpCode.FlowControlShift) |
2510             ((int)OpCodeType.Primitive << OpCode.OpCodeTypeShift) |
2511             ((int)StackBehaviour.Pop1 << OpCode.StackBehaviourPopShift) |
2512             ((int)StackBehaviour.Pushi << OpCode.StackBehaviourPushShift) |
2513             (2 << OpCode.SizeShift) |
2514             (0 << OpCode.StackChangeShift)
2515         );
2516 
2517         public static readonly OpCode Readonly = new OpCode(OpCodeValues.Readonly_,
2518             ((int)OperandType.InlineNone) |
2519             ((int)FlowControl.Meta << OpCode.FlowControlShift) |
2520             ((int)OpCodeType.Prefix << OpCode.OpCodeTypeShift) |
2521             ((int)StackBehaviour.Pop0 << OpCode.StackBehaviourPopShift) |
2522             ((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
2523             (2 << OpCode.SizeShift) |
2524             (0 << OpCode.StackChangeShift)
2525         );
2526 
2527 
TakesSingleByteArgument(OpCode inst)2528         public static bool TakesSingleByteArgument(OpCode inst)
2529         {
2530             switch (inst.OperandType)
2531             {
2532                 case OperandType.ShortInlineBrTarget:
2533                 case OperandType.ShortInlineI:
2534                 case OperandType.ShortInlineVar:
2535                     return true;
2536             };
2537             return false;
2538         }
2539     }
2540 }
2541