Switch to compiler-tester
[mono.git] / mcs / class / corlib / System.Reflection.Emit / OpCodes.cs
1 using System.Runtime.InteropServices;
2
3 namespace System.Reflection.Emit {
4 #if NET_2_0
5         [ComVisible (true)]
6 #endif
7         public class OpCodes {
8
9                 internal OpCodes () {
10                 }
11
12                 //
13                 // The order is:
14                 //       Op1, Op2, StackBehaviourPush, StackBehaviourPop
15                 //       Size, OpCodeType, OperandType, FlowControl
16                 //
17                 public static readonly OpCode Nop = new OpCode (
18                         0xFF << 0 | 0x00 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
19                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
20
21                 public static readonly OpCode Break = new OpCode (
22                         0xFF << 0 | 0x01 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
23                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Break << 24);
24
25                 public static readonly OpCode Ldarg_0 = new OpCode (
26                         0xFF << 0 | 0x02 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
27                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
28
29                 public static readonly OpCode Ldarg_1 = new OpCode (
30                         0xFF << 0 | 0x03 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
31                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
32
33                 public static readonly OpCode Ldarg_2 = new OpCode (
34                         0xFF << 0 | 0x04 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
35                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
36
37                 public static readonly OpCode Ldarg_3 = new OpCode (
38                         0xFF << 0 | 0x05 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
39                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
40
41                 public static readonly OpCode Ldloc_0 = new OpCode (
42                         0xFF << 0 | 0x06 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
43                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
44
45                 public static readonly OpCode Ldloc_1 = new OpCode (
46                         0xFF << 0 | 0x07 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
47                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
48
49                 public static readonly OpCode Ldloc_2 = new OpCode (
50                         0xFF << 0 | 0x08 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
51                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
52
53                 public static readonly OpCode Ldloc_3 = new OpCode (
54                         0xFF << 0 | 0x09 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
55                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
56
57                 public static readonly OpCode Stloc_0 = new OpCode (
58                         0xFF << 0 | 0x0A << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1 << 24,
59                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
60
61                 public static readonly OpCode Stloc_1 = new OpCode (
62                         0xFF << 0 | 0x0B << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1 << 24,
63                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
64
65                 public static readonly OpCode Stloc_2 = new OpCode (
66                         0xFF << 0 | 0x0C << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1 << 24,
67                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
68
69                 public static readonly OpCode Stloc_3 = new OpCode (
70                         0xFF << 0 | 0x0D << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1 << 24,
71                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
72
73                 public static readonly OpCode Ldarg_S = new OpCode (
74                         0xFF << 0 | 0x0E << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
75                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineVar << 16 | (byte) FlowControl.Next << 24);
76
77                 public static readonly OpCode Ldarga_S = new OpCode (
78                         0xFF << 0 | 0x0F << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
79                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineVar << 16 | (byte) FlowControl.Next << 24);
80
81                 public static readonly OpCode Starg_S = new OpCode (
82                         0xFF << 0 | 0x10 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1 << 24,
83                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineVar << 16 | (byte) FlowControl.Next << 24);
84
85                 public static readonly OpCode Ldloc_S = new OpCode (
86                         0xFF << 0 | 0x11 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
87                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineVar << 16 | (byte) FlowControl.Next << 24);
88
89                 public static readonly OpCode Ldloca_S = new OpCode (
90                         0xFF << 0 | 0x12 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
91                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineVar << 16 | (byte) FlowControl.Next << 24);
92
93                 public static readonly OpCode Stloc_S = new OpCode (
94                         0xFF << 0 | 0x13 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1 << 24,
95                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineVar << 16 | (byte) FlowControl.Next << 24);
96
97                 public static readonly OpCode Ldnull = new OpCode (
98                         0xFF << 0 | 0x14 << 8 | (byte) StackBehaviour.Pushref << 16 | (byte) StackBehaviour.Pop0 << 24,
99                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
100
101                 public static readonly OpCode Ldc_I4_M1 = new OpCode (
102                         0xFF << 0 | 0x15 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
103                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
104
105                 public static readonly OpCode Ldc_I4_0 = new OpCode (
106                         0xFF << 0 | 0x16 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
107                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
108
109                 public static readonly OpCode Ldc_I4_1 = new OpCode (
110                         0xFF << 0 | 0x17 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
111                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
112
113                 public static readonly OpCode Ldc_I4_2 = new OpCode (
114                         0xFF << 0 | 0x18 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
115                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
116
117                 public static readonly OpCode Ldc_I4_3 = new OpCode (
118                         0xFF << 0 | 0x19 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
119                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
120
121                 public static readonly OpCode Ldc_I4_4 = new OpCode (
122                         0xFF << 0 | 0x1A << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
123                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
124
125                 public static readonly OpCode Ldc_I4_5 = new OpCode (
126                         0xFF << 0 | 0x1B << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
127                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
128
129                 public static readonly OpCode Ldc_I4_6 = new OpCode (
130                         0xFF << 0 | 0x1C << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
131                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
132
133                 public static readonly OpCode Ldc_I4_7 = new OpCode (
134                         0xFF << 0 | 0x1D << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
135                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
136
137                 public static readonly OpCode Ldc_I4_8 = new OpCode (
138                         0xFF << 0 | 0x1E << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
139                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
140
141                 public static readonly OpCode Ldc_I4_S = new OpCode (
142                         0xFF << 0 | 0x1F << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
143                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineI << 16 | (byte) FlowControl.Next << 24);
144
145                 public static readonly OpCode Ldc_I4 = new OpCode (
146                         0xFF << 0 | 0x20 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
147                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineI << 16 | (byte) FlowControl.Next << 24);
148
149                 public static readonly OpCode Ldc_I8 = new OpCode (
150                         0xFF << 0 | 0x21 << 8 | (byte) StackBehaviour.Pushi8 << 16 | (byte) StackBehaviour.Pop0 << 24,
151                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineI8 << 16 | (byte) FlowControl.Next << 24);
152
153                 public static readonly OpCode Ldc_R4 = new OpCode (
154                         0xFF << 0 | 0x22 << 8 | (byte) StackBehaviour.Pushr4 << 16 | (byte) StackBehaviour.Pop0 << 24,
155                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.ShortInlineR << 16 | (byte) FlowControl.Next << 24);
156
157                 public static readonly OpCode Ldc_R8 = new OpCode (
158                         0xFF << 0 | 0x23 << 8 | (byte) StackBehaviour.Pushr8 << 16 | (byte) StackBehaviour.Pop0 << 24,
159                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineR << 16 | (byte) FlowControl.Next << 24);
160
161                 public static readonly OpCode Dup = new OpCode (
162                         0xFF << 0 | 0x25 << 8 | (byte) StackBehaviour.Push1_push1 << 16 | (byte) StackBehaviour.Pop1 << 24,
163                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
164
165                 public static readonly OpCode Pop = new OpCode (
166                         0xFF << 0 | 0x26 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1 << 24,
167                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
168
169                 public static readonly OpCode Jmp = new OpCode (
170                         0xFF << 0 | 0x27 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
171                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineMethod << 16 | (byte) FlowControl.Call << 24);
172
173                 public static readonly OpCode Call = new OpCode (
174                         0xFF << 0 | 0x28 << 8 | (byte) StackBehaviour.Varpush << 16 | (byte) StackBehaviour.Varpop << 24,
175                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineMethod << 16 | (byte) FlowControl.Call << 24);
176
177                 public static readonly OpCode Calli = new OpCode (
178                         0xFF << 0 | 0x29 << 8 | (byte) StackBehaviour.Varpush << 16 | (byte) StackBehaviour.Varpop << 24,
179                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineSig << 16 | (byte) FlowControl.Call << 24);
180
181                 public static readonly OpCode Ret = new OpCode (
182                         0xFF << 0 | 0x2A << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Varpop << 24,
183                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Return << 24);
184
185                 public static readonly OpCode Br_S = new OpCode (
186                         0xFF << 0 | 0x2B << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
187                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Branch << 24);
188
189                 public static readonly OpCode Brfalse_S = new OpCode (
190                         0xFF << 0 | 0x2C << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi << 24,
191                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
192
193                 public static readonly OpCode Brtrue_S = new OpCode (
194                         0xFF << 0 | 0x2D << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi << 24,
195                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
196
197                 public static readonly OpCode Beq_S = new OpCode (
198                         0xFF << 0 | 0x2E << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
199                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
200
201                 public static readonly OpCode Bge_S = new OpCode (
202                         0xFF << 0 | 0x2F << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
203                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
204
205                 public static readonly OpCode Bgt_S = new OpCode (
206                         0xFF << 0 | 0x30 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
207                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
208
209                 public static readonly OpCode Ble_S = new OpCode (
210                         0xFF << 0 | 0x31 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
211                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
212
213                 public static readonly OpCode Blt_S = new OpCode (
214                         0xFF << 0 | 0x32 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
215                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
216
217                 public static readonly OpCode Bne_Un_S = new OpCode (
218                         0xFF << 0 | 0x33 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
219                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
220
221                 public static readonly OpCode Bge_Un_S = new OpCode (
222                         0xFF << 0 | 0x34 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
223                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
224
225                 public static readonly OpCode Bgt_Un_S = new OpCode (
226                         0xFF << 0 | 0x35 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
227                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
228
229                 public static readonly OpCode Ble_Un_S = new OpCode (
230                         0xFF << 0 | 0x36 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
231                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
232
233                 public static readonly OpCode Blt_Un_S = new OpCode (
234                         0xFF << 0 | 0x37 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
235                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
236
237                 public static readonly OpCode Br = new OpCode (
238                         0xFF << 0 | 0x38 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
239                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Branch << 24);
240
241                 public static readonly OpCode Brfalse = new OpCode (
242                         0xFF << 0 | 0x39 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi << 24,
243                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
244
245                 public static readonly OpCode Brtrue = new OpCode (
246                         0xFF << 0 | 0x3A << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi << 24,
247                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
248
249                 public static readonly OpCode Beq = new OpCode (
250                         0xFF << 0 | 0x3B << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
251                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
252
253                 public static readonly OpCode Bge = new OpCode (
254                         0xFF << 0 | 0x3C << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
255                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
256
257                 public static readonly OpCode Bgt = new OpCode (
258                         0xFF << 0 | 0x3D << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
259                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
260
261                 public static readonly OpCode Ble = new OpCode (
262                         0xFF << 0 | 0x3E << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
263                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
264
265                 public static readonly OpCode Blt = new OpCode (
266                         0xFF << 0 | 0x3F << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
267                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
268
269                 public static readonly OpCode Bne_Un = new OpCode (
270                         0xFF << 0 | 0x40 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
271                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
272
273                 public static readonly OpCode Bge_Un = new OpCode (
274                         0xFF << 0 | 0x41 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
275                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
276
277                 public static readonly OpCode Bgt_Un = new OpCode (
278                         0xFF << 0 | 0x42 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
279                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
280
281                 public static readonly OpCode Ble_Un = new OpCode (
282                         0xFF << 0 | 0x43 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
283                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
284
285                 public static readonly OpCode Blt_Un = new OpCode (
286                         0xFF << 0 | 0x44 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
287                         1 << 0 | (byte) OpCodeType.Macro << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Cond_Branch << 24);
288
289                 public static readonly OpCode Switch = new OpCode (
290                         0xFF << 0 | 0x45 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi << 24,
291                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineSwitch << 16 | (byte) FlowControl.Cond_Branch << 24);
292
293                 public static readonly OpCode Ldind_I1 = new OpCode (
294                         0xFF << 0 | 0x46 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popi << 24,
295                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
296
297                 public static readonly OpCode Ldind_U1 = new OpCode (
298                         0xFF << 0 | 0x47 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popi << 24,
299                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
300
301                 public static readonly OpCode Ldind_I2 = new OpCode (
302                         0xFF << 0 | 0x48 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popi << 24,
303                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
304
305                 public static readonly OpCode Ldind_U2 = new OpCode (
306                         0xFF << 0 | 0x49 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popi << 24,
307                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
308
309                 public static readonly OpCode Ldind_I4 = new OpCode (
310                         0xFF << 0 | 0x4A << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popi << 24,
311                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
312
313                 public static readonly OpCode Ldind_U4 = new OpCode (
314                         0xFF << 0 | 0x4B << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popi << 24,
315                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
316
317                 public static readonly OpCode Ldind_I8 = new OpCode (
318                         0xFF << 0 | 0x4C << 8 | (byte) StackBehaviour.Pushi8 << 16 | (byte) StackBehaviour.Popi << 24,
319                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
320
321                 public static readonly OpCode Ldind_I = new OpCode (
322                         0xFF << 0 | 0x4D << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popi << 24,
323                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
324
325                 public static readonly OpCode Ldind_R4 = new OpCode (
326                         0xFF << 0 | 0x4E << 8 | (byte) StackBehaviour.Pushr4 << 16 | (byte) StackBehaviour.Popi << 24,
327                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
328
329                 public static readonly OpCode Ldind_R8 = new OpCode (
330                         0xFF << 0 | 0x4F << 8 | (byte) StackBehaviour.Pushr8 << 16 | (byte) StackBehaviour.Popi << 24,
331                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
332
333                 public static readonly OpCode Ldind_Ref = new OpCode (
334                         0xFF << 0 | 0x50 << 8 | (byte) StackBehaviour.Pushref << 16 | (byte) StackBehaviour.Popi << 24,
335                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
336
337                 public static readonly OpCode Stind_Ref = new OpCode (
338                         0xFF << 0 | 0x51 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_popi << 24,
339                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
340
341                 public static readonly OpCode Stind_I1 = new OpCode (
342                         0xFF << 0 | 0x52 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_popi << 24,
343                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
344
345                 public static readonly OpCode Stind_I2 = new OpCode (
346                         0xFF << 0 | 0x53 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_popi << 24,
347                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
348
349                 public static readonly OpCode Stind_I4 = new OpCode (
350                         0xFF << 0 | 0x54 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_popi << 24,
351                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
352
353                 public static readonly OpCode Stind_I8 = new OpCode (
354                         0xFF << 0 | 0x55 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_popi8 << 24,
355                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
356
357                 public static readonly OpCode Stind_R4 = new OpCode (
358                         0xFF << 0 | 0x56 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_popr4 << 24,
359                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
360
361                 public static readonly OpCode Stind_R8 = new OpCode (
362                         0xFF << 0 | 0x57 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_popr8 << 24,
363                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
364
365                 public static readonly OpCode Add = new OpCode (
366                         0xFF << 0 | 0x58 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
367                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
368
369                 public static readonly OpCode Sub = new OpCode (
370                         0xFF << 0 | 0x59 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
371                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
372
373                 public static readonly OpCode Mul = new OpCode (
374                         0xFF << 0 | 0x5A << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
375                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
376
377                 public static readonly OpCode Div = new OpCode (
378                         0xFF << 0 | 0x5B << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
379                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
380
381                 public static readonly OpCode Div_Un = new OpCode (
382                         0xFF << 0 | 0x5C << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
383                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
384
385                 public static readonly OpCode Rem = new OpCode (
386                         0xFF << 0 | 0x5D << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
387                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
388
389                 public static readonly OpCode Rem_Un = new OpCode (
390                         0xFF << 0 | 0x5E << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
391                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
392
393                 public static readonly OpCode And = new OpCode (
394                         0xFF << 0 | 0x5F << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
395                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
396
397                 public static readonly OpCode Or = new OpCode (
398                         0xFF << 0 | 0x60 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
399                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
400
401                 public static readonly OpCode Xor = new OpCode (
402                         0xFF << 0 | 0x61 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
403                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
404
405                 public static readonly OpCode Shl = new OpCode (
406                         0xFF << 0 | 0x62 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
407                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
408
409                 public static readonly OpCode Shr = new OpCode (
410                         0xFF << 0 | 0x63 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
411                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
412
413                 public static readonly OpCode Shr_Un = new OpCode (
414                         0xFF << 0 | 0x64 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
415                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
416
417                 public static readonly OpCode Neg = new OpCode (
418                         0xFF << 0 | 0x65 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1 << 24,
419                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
420
421                 public static readonly OpCode Not = new OpCode (
422                         0xFF << 0 | 0x66 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1 << 24,
423                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
424
425                 public static readonly OpCode Conv_I1 = new OpCode (
426                         0xFF << 0 | 0x67 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
427                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
428
429                 public static readonly OpCode Conv_I2 = new OpCode (
430                         0xFF << 0 | 0x68 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
431                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
432
433                 public static readonly OpCode Conv_I4 = new OpCode (
434                         0xFF << 0 | 0x69 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
435                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
436
437                 public static readonly OpCode Conv_I8 = new OpCode (
438                         0xFF << 0 | 0x6A << 8 | (byte) StackBehaviour.Pushi8 << 16 | (byte) StackBehaviour.Pop1 << 24,
439                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
440
441                 public static readonly OpCode Conv_R4 = new OpCode (
442                         0xFF << 0 | 0x6B << 8 | (byte) StackBehaviour.Pushr4 << 16 | (byte) StackBehaviour.Pop1 << 24,
443                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
444
445                 public static readonly OpCode Conv_R8 = new OpCode (
446                         0xFF << 0 | 0x6C << 8 | (byte) StackBehaviour.Pushr8 << 16 | (byte) StackBehaviour.Pop1 << 24,
447                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
448
449                 public static readonly OpCode Conv_U4 = new OpCode (
450                         0xFF << 0 | 0x6D << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
451                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
452
453                 public static readonly OpCode Conv_U8 = new OpCode (
454                         0xFF << 0 | 0x6E << 8 | (byte) StackBehaviour.Pushi8 << 16 | (byte) StackBehaviour.Pop1 << 24,
455                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
456
457                 public static readonly OpCode Callvirt = new OpCode (
458                         0xFF << 0 | 0x6F << 8 | (byte) StackBehaviour.Varpush << 16 | (byte) StackBehaviour.Varpop << 24,
459                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineMethod << 16 | (byte) FlowControl.Call << 24);
460
461                 public static readonly OpCode Cpobj = new OpCode (
462                         0xFF << 0 | 0x70 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_popi << 24,
463                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
464
465                 public static readonly OpCode Ldobj = new OpCode (
466                         0xFF << 0 | 0x71 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Popi << 24,
467                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
468
469                 public static readonly OpCode Ldstr = new OpCode (
470                         0xFF << 0 | 0x72 << 8 | (byte) StackBehaviour.Pushref << 16 | (byte) StackBehaviour.Pop0 << 24,
471                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineString << 16 | (byte) FlowControl.Next << 24);
472
473                 public static readonly OpCode Newobj = new OpCode (
474                         0xFF << 0 | 0x73 << 8 | (byte) StackBehaviour.Pushref << 16 | (byte) StackBehaviour.Varpop << 24,
475                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineMethod << 16 | (byte) FlowControl.Call << 24);
476
477 #if NET_2_0
478         [ComVisible (true)]
479 #endif
480                 public static readonly OpCode Castclass = new OpCode (
481                         0xFF << 0 | 0x74 << 8 | (byte) StackBehaviour.Pushref << 16 | (byte) StackBehaviour.Popref << 24,
482                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
483
484                 public static readonly OpCode Isinst = new OpCode (
485                         0xFF << 0 | 0x75 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref << 24,
486                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
487
488                 public static readonly OpCode Conv_R_Un = new OpCode (
489                         0xFF << 0 | 0x76 << 8 | (byte) StackBehaviour.Pushr8 << 16 | (byte) StackBehaviour.Pop1 << 24,
490                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
491
492                 public static readonly OpCode Unbox = new OpCode (
493                         0xFF << 0 | 0x79 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref << 24,
494                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
495
496                 public static readonly OpCode Throw = new OpCode (
497                         0xFF << 0 | 0x7A << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref << 24,
498                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Throw << 24);
499
500                 public static readonly OpCode Ldfld = new OpCode (
501                         0xFF << 0 | 0x7B << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Popref << 24,
502                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineField << 16 | (byte) FlowControl.Next << 24);
503
504                 public static readonly OpCode Ldflda = new OpCode (
505                         0xFF << 0 | 0x7C << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref << 24,
506                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineField << 16 | (byte) FlowControl.Next << 24);
507
508                 public static readonly OpCode Stfld = new OpCode (
509                         0xFF << 0 | 0x7D << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref_pop1 << 24,
510                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineField << 16 | (byte) FlowControl.Next << 24);
511
512                 public static readonly OpCode Ldsfld = new OpCode (
513                         0xFF << 0 | 0x7E << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
514                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineField << 16 | (byte) FlowControl.Next << 24);
515
516                 public static readonly OpCode Ldsflda = new OpCode (
517                         0xFF << 0 | 0x7F << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
518                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineField << 16 | (byte) FlowControl.Next << 24);
519
520                 public static readonly OpCode Stsfld = new OpCode (
521                         0xFF << 0 | 0x80 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1 << 24,
522                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineField << 16 | (byte) FlowControl.Next << 24);
523
524                 public static readonly OpCode Stobj = new OpCode (
525                         0xFF << 0 | 0x81 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_pop1 << 24,
526                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
527
528                 public static readonly OpCode Conv_Ovf_I1_Un = new OpCode (
529                         0xFF << 0 | 0x82 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
530                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
531
532                 public static readonly OpCode Conv_Ovf_I2_Un = new OpCode (
533                         0xFF << 0 | 0x83 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
534                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
535
536                 public static readonly OpCode Conv_Ovf_I4_Un = new OpCode (
537                         0xFF << 0 | 0x84 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
538                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
539
540                 public static readonly OpCode Conv_Ovf_I8_Un = new OpCode (
541                         0xFF << 0 | 0x85 << 8 | (byte) StackBehaviour.Pushi8 << 16 | (byte) StackBehaviour.Pop1 << 24,
542                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
543
544                 public static readonly OpCode Conv_Ovf_U1_Un = new OpCode (
545                         0xFF << 0 | 0x86 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
546                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
547
548                 public static readonly OpCode Conv_Ovf_U2_Un = new OpCode (
549                         0xFF << 0 | 0x87 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
550                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
551
552                 public static readonly OpCode Conv_Ovf_U4_Un = new OpCode (
553                         0xFF << 0 | 0x88 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
554                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
555
556                 public static readonly OpCode Conv_Ovf_U8_Un = new OpCode (
557                         0xFF << 0 | 0x89 << 8 | (byte) StackBehaviour.Pushi8 << 16 | (byte) StackBehaviour.Pop1 << 24,
558                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
559
560                 public static readonly OpCode Conv_Ovf_I_Un = new OpCode (
561                         0xFF << 0 | 0x8A << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
562                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
563
564                 public static readonly OpCode Conv_Ovf_U_Un = new OpCode (
565                         0xFF << 0 | 0x8B << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
566                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
567
568                 public static readonly OpCode Box = new OpCode (
569                         0xFF << 0 | 0x8C << 8 | (byte) StackBehaviour.Pushref << 16 | (byte) StackBehaviour.Pop1 << 24,
570                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
571
572                 public static readonly OpCode Newarr = new OpCode (
573                         0xFF << 0 | 0x8D << 8 | (byte) StackBehaviour.Pushref << 16 | (byte) StackBehaviour.Popi << 24,
574                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
575
576                 public static readonly OpCode Ldlen = new OpCode (
577                         0xFF << 0 | 0x8E << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref << 24,
578                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
579
580                 public static readonly OpCode Ldelema = new OpCode (
581                         0xFF << 0 | 0x8F << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref_popi << 24,
582                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
583
584                 public static readonly OpCode Ldelem_I1 = new OpCode (
585                         0xFF << 0 | 0x90 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref_popi << 24,
586                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
587
588                 public static readonly OpCode Ldelem_U1 = new OpCode (
589                         0xFF << 0 | 0x91 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref_popi << 24,
590                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
591
592                 public static readonly OpCode Ldelem_I2 = new OpCode (
593                         0xFF << 0 | 0x92 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref_popi << 24,
594                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
595
596                 public static readonly OpCode Ldelem_U2 = new OpCode (
597                         0xFF << 0 | 0x93 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref_popi << 24,
598                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
599
600                 public static readonly OpCode Ldelem_I4 = new OpCode (
601                         0xFF << 0 | 0x94 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref_popi << 24,
602                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
603
604                 public static readonly OpCode Ldelem_U4 = new OpCode (
605                         0xFF << 0 | 0x95 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref_popi << 24,
606                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
607
608                 public static readonly OpCode Ldelem_I8 = new OpCode (
609                         0xFF << 0 | 0x96 << 8 | (byte) StackBehaviour.Pushi8 << 16 | (byte) StackBehaviour.Popref_popi << 24,
610                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
611
612                 public static readonly OpCode Ldelem_I = new OpCode (
613                         0xFF << 0 | 0x97 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref_popi << 24,
614                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
615
616                 public static readonly OpCode Ldelem_R4 = new OpCode (
617                         0xFF << 0 | 0x98 << 8 | (byte) StackBehaviour.Pushr4 << 16 | (byte) StackBehaviour.Popref_popi << 24,
618                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
619
620                 public static readonly OpCode Ldelem_R8 = new OpCode (
621                         0xFF << 0 | 0x99 << 8 | (byte) StackBehaviour.Pushr8 << 16 | (byte) StackBehaviour.Popref_popi << 24,
622                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
623
624                 public static readonly OpCode Ldelem_Ref = new OpCode (
625                         0xFF << 0 | 0x9A << 8 | (byte) StackBehaviour.Pushref << 16 | (byte) StackBehaviour.Popref_popi << 24,
626                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
627
628                 public static readonly OpCode Stelem_I = new OpCode (
629                         0xFF << 0 | 0x9B << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref_popi_popi << 24,
630                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
631
632                 public static readonly OpCode Stelem_I1 = new OpCode (
633                         0xFF << 0 | 0x9C << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref_popi_popi << 24,
634                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
635
636                 public static readonly OpCode Stelem_I2 = new OpCode (
637                         0xFF << 0 | 0x9D << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref_popi_popi << 24,
638                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
639
640                 public static readonly OpCode Stelem_I4 = new OpCode (
641                         0xFF << 0 | 0x9E << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref_popi_popi << 24,
642                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
643
644                 public static readonly OpCode Stelem_I8 = new OpCode (
645                         0xFF << 0 | 0x9F << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref_popi_popi8 << 24,
646                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
647
648                 public static readonly OpCode Stelem_R4 = new OpCode (
649                         0xFF << 0 | 0xA0 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref_popi_popr4 << 24,
650                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
651
652                 public static readonly OpCode Stelem_R8 = new OpCode (
653                         0xFF << 0 | 0xA1 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref_popi_popr8 << 24,
654                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
655
656                 public static readonly OpCode Stelem_Ref = new OpCode (
657                         0xFF << 0 | 0xA2 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref_popi_popref << 24,
658                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
659 #if NET_2_0 || BOOTSTRAP_NET_2_0
660                 public static readonly OpCode Ldelem_Any = new OpCode (
661                         0xFF << 0 | 0xA3 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Popref_popi << 24,
662                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
663
664                 public static readonly OpCode Stelem_Any = new OpCode (
665                         0xFF << 0 | 0xA4 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref_popi_popref << 24,
666                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
667
668                 public static readonly OpCode Ldelem = new OpCode (
669                         0xFF << 0 | 0xA3 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Popref_popi << 24,
670                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
671
672                 public static readonly OpCode Stelem = new OpCode (
673                         0xFF << 0 | 0xA4 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popref_popi_popref << 24,
674                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
675
676                 public static readonly OpCode Unbox_Any = new OpCode (
677                         0xFF << 0 | 0xA5 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Popref << 24,
678                         1 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
679 #endif
680                 public static readonly OpCode Conv_Ovf_I1 = new OpCode (
681                         0xFF << 0 | 0xB3 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
682                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
683
684                 public static readonly OpCode Conv_Ovf_U1 = new OpCode (
685                         0xFF << 0 | 0xB4 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
686                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
687
688                 public static readonly OpCode Conv_Ovf_I2 = new OpCode (
689                         0xFF << 0 | 0xB5 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
690                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
691
692                 public static readonly OpCode Conv_Ovf_U2 = new OpCode (
693                         0xFF << 0 | 0xB6 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
694                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
695
696                 public static readonly OpCode Conv_Ovf_I4 = new OpCode (
697                         0xFF << 0 | 0xB7 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
698                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
699
700                 public static readonly OpCode Conv_Ovf_U4 = new OpCode (
701                         0xFF << 0 | 0xB8 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
702                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
703
704                 public static readonly OpCode Conv_Ovf_I8 = new OpCode (
705                         0xFF << 0 | 0xB9 << 8 | (byte) StackBehaviour.Pushi8 << 16 | (byte) StackBehaviour.Pop1 << 24,
706                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
707
708                 public static readonly OpCode Conv_Ovf_U8 = new OpCode (
709                         0xFF << 0 | 0xBA << 8 | (byte) StackBehaviour.Pushi8 << 16 | (byte) StackBehaviour.Pop1 << 24,
710                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
711
712                 public static readonly OpCode Refanyval = new OpCode (
713                         0xFF << 0 | 0xC2 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
714                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
715
716                 public static readonly OpCode Ckfinite = new OpCode (
717                         0xFF << 0 | 0xC3 << 8 | (byte) StackBehaviour.Pushr8 << 16 | (byte) StackBehaviour.Pop1 << 24,
718                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
719
720                 public static readonly OpCode Mkrefany = new OpCode (
721                         0xFF << 0 | 0xC6 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Popi << 24,
722                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
723
724                 public static readonly OpCode Ldtoken = new OpCode (
725                         0xFF << 0 | 0xD0 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
726                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineTok << 16 | (byte) FlowControl.Next << 24);
727
728                 public static readonly OpCode Conv_U2 = new OpCode (
729                         0xFF << 0 | 0xD1 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
730                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
731
732                 public static readonly OpCode Conv_U1 = new OpCode (
733                         0xFF << 0 | 0xD2 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
734                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
735
736                 public static readonly OpCode Conv_I = new OpCode (
737                         0xFF << 0 | 0xD3 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
738                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
739
740                 public static readonly OpCode Conv_Ovf_I = new OpCode (
741                         0xFF << 0 | 0xD4 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
742                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
743
744                 public static readonly OpCode Conv_Ovf_U = new OpCode (
745                         0xFF << 0 | 0xD5 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
746                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
747
748                 public static readonly OpCode Add_Ovf = new OpCode (
749                         0xFF << 0 | 0xD6 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
750                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
751
752                 public static readonly OpCode Add_Ovf_Un = new OpCode (
753                         0xFF << 0 | 0xD7 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
754                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
755
756                 public static readonly OpCode Mul_Ovf = new OpCode (
757                         0xFF << 0 | 0xD8 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
758                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
759
760                 public static readonly OpCode Mul_Ovf_Un = new OpCode (
761                         0xFF << 0 | 0xD9 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
762                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
763
764                 public static readonly OpCode Sub_Ovf = new OpCode (
765                         0xFF << 0 | 0xDA << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
766                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
767
768                 public static readonly OpCode Sub_Ovf_Un = new OpCode (
769                         0xFF << 0 | 0xDB << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
770                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
771
772                 public static readonly OpCode Endfinally = new OpCode (
773                         0xFF << 0 | 0xDC << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
774                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Return << 24);
775
776                 public static readonly OpCode Leave = new OpCode (
777                         0xFF << 0 | 0xDD << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
778                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineBrTarget << 16 | (byte) FlowControl.Branch << 24);
779
780                 public static readonly OpCode Leave_S = new OpCode (
781                         0xFF << 0 | 0xDE << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
782                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.ShortInlineBrTarget << 16 | (byte) FlowControl.Branch << 24);
783
784                 public static readonly OpCode Stind_I = new OpCode (
785                         0xFF << 0 | 0xDF << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_popi << 24,
786                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
787
788                 public static readonly OpCode Conv_U = new OpCode (
789                         0xFF << 0 | 0xE0 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
790                         1 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
791
792                 public static readonly OpCode Prefix7 = new OpCode (
793                         0xFF << 0 | 0xF8 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
794                         1 << 0 | (byte) OpCodeType.Nternal << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Meta << 24);
795
796                 public static readonly OpCode Prefix6 = new OpCode (
797                         0xFF << 0 | 0xF9 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
798                         1 << 0 | (byte) OpCodeType.Nternal << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Meta << 24);
799
800                 public static readonly OpCode Prefix5 = new OpCode (
801                         0xFF << 0 | 0xFA << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
802                         1 << 0 | (byte) OpCodeType.Nternal << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Meta << 24);
803
804                 public static readonly OpCode Prefix4 = new OpCode (
805                         0xFF << 0 | 0xFB << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
806                         1 << 0 | (byte) OpCodeType.Nternal << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Meta << 24);
807
808                 public static readonly OpCode Prefix3 = new OpCode (
809                         0xFF << 0 | 0xFC << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
810                         1 << 0 | (byte) OpCodeType.Nternal << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Meta << 24);
811
812                 public static readonly OpCode Prefix2 = new OpCode (
813                         0xFF << 0 | 0xFD << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
814                         1 << 0 | (byte) OpCodeType.Nternal << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Meta << 24);
815
816                 public static readonly OpCode Prefix1 = new OpCode (
817                         0xFF << 0 | 0xFE << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
818                         1 << 0 | (byte) OpCodeType.Nternal << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Meta << 24);
819
820                 public static readonly OpCode Prefixref = new OpCode (
821                         0xFF << 0 | 0xFF << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
822                         1 << 0 | (byte) OpCodeType.Nternal << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Meta << 24);
823
824                 public static readonly OpCode Arglist = new OpCode (
825                         0xFE << 0 | 0x00 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
826                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
827
828                 public static readonly OpCode Ceq = new OpCode (
829                         0xFE << 0 | 0x01 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
830                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
831
832                 public static readonly OpCode Cgt = new OpCode (
833                         0xFE << 0 | 0x02 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
834                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
835
836                 public static readonly OpCode Cgt_Un = new OpCode (
837                         0xFE << 0 | 0x03 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
838                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
839
840                 public static readonly OpCode Clt = new OpCode (
841                         0xFE << 0 | 0x04 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
842                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
843
844                 public static readonly OpCode Clt_Un = new OpCode (
845                         0xFE << 0 | 0x05 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1_pop1 << 24,
846                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
847
848                 public static readonly OpCode Ldftn = new OpCode (
849                         0xFE << 0 | 0x06 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
850                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineMethod << 16 | (byte) FlowControl.Next << 24);
851
852                 public static readonly OpCode Ldvirtftn = new OpCode (
853                         0xFE << 0 | 0x07 << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popref << 24,
854                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineMethod << 16 | (byte) FlowControl.Next << 24);
855
856                 public static readonly OpCode Ldarg = new OpCode (
857                         0xFE << 0 | 0x09 << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
858                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineVar << 16 | (byte) FlowControl.Next << 24);
859
860                 public static readonly OpCode Ldarga = new OpCode (
861                         0xFE << 0 | 0x0A << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
862                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineVar << 16 | (byte) FlowControl.Next << 24);
863
864                 public static readonly OpCode Starg = new OpCode (
865                         0xFE << 0 | 0x0B << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1 << 24,
866                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineVar << 16 | (byte) FlowControl.Next << 24);
867
868                 public static readonly OpCode Ldloc = new OpCode (
869                         0xFE << 0 | 0x0C << 8 | (byte) StackBehaviour.Push1 << 16 | (byte) StackBehaviour.Pop0 << 24,
870                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineVar << 16 | (byte) FlowControl.Next << 24);
871
872                 public static readonly OpCode Ldloca = new OpCode (
873                         0xFE << 0 | 0x0D << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
874                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineVar << 16 | (byte) FlowControl.Next << 24);
875
876                 public static readonly OpCode Stloc = new OpCode (
877                         0xFE << 0 | 0x0E << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop1 << 24,
878                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineVar << 16 | (byte) FlowControl.Next << 24);
879
880                 public static readonly OpCode Localloc = new OpCode (
881                         0xFE << 0 | 0x0F << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Popi << 24,
882                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
883
884                 public static readonly OpCode Endfilter = new OpCode (
885                         0xFE << 0 | 0x11 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi << 24,
886                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Return << 24);
887
888                 public static readonly OpCode Unaligned = new OpCode (
889                         0xFE << 0 | 0x12 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
890                         2 << 0 | (byte) OpCodeType.Prefix << 8 | (byte) OperandType.ShortInlineI << 16 | (byte) FlowControl.Meta << 24);
891
892                 public static readonly OpCode Volatile = new OpCode (
893                         0xFE << 0 | 0x13 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
894                         2 << 0 | (byte) OpCodeType.Prefix << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Meta << 24);
895
896                 public static readonly OpCode Tailcall = new OpCode (
897                         0xFE << 0 | 0x14 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
898                         2 << 0 | (byte) OpCodeType.Prefix << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Meta << 24);
899
900                 public static readonly OpCode Initobj = new OpCode (
901                         0xFE << 0 | 0x15 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi << 24,
902                         2 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
903 #if NET_2_0 || BOOTSTRAP_NET_2_0
904                 public static readonly OpCode Constrained = new OpCode (
905                         0xFE << 0 | 0x16 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
906                         2 << 0 | (byte) OpCodeType.Prefix << 8 | (byte) OperandType.InlineTok << 16 | (byte) FlowControl.Next << 24);
907 #endif
908                 public static readonly OpCode Cpblk = new OpCode (
909                         0xFE << 0 | 0x17 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_popi_popi << 24,
910                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
911
912                 public static readonly OpCode Initblk = new OpCode (
913                         0xFE << 0 | 0x18 << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Popi_popi_popi << 24,
914                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
915
916                 public static readonly OpCode Rethrow = new OpCode (
917                         0xFE << 0 | 0x1A << 8 | (byte) StackBehaviour.Push0 << 16 | (byte) StackBehaviour.Pop0 << 24,
918                         2 << 0 | (byte) OpCodeType.Objmodel << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Throw << 24);
919
920                 public static readonly OpCode Sizeof = new OpCode (
921                         0xFE << 0 | 0x1C << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop0 << 24,
922                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineType << 16 | (byte) FlowControl.Next << 24);
923
924                 public static readonly OpCode Refanytype = new OpCode (
925                         0xFE << 0 | 0x1D << 8 | (byte) StackBehaviour.Pushi << 16 | (byte) StackBehaviour.Pop1 << 24,
926                         2 << 0 | (byte) OpCodeType.Primitive << 8 | (byte) OperandType.InlineNone << 16 | (byte) FlowControl.Next << 24);
927
928                 public static bool TakesSingleByteArgument (OpCode inst)
929                 {
930                        OperandType t = inst.OperandType;
931                        
932                        // check for short-inline instructions
933                        return t == OperandType.ShortInlineBrTarget
934                        || t == OperandType.ShortInlineI
935                            || t == OperandType.ShortInlineR
936                            || t == OperandType.ShortInlineVar;
937                }
938         }
939 }