a54e3265bb238f1e1f3cb2094d3d974d39f4b2ce
[mono.git] / mcs / tools / cil-strip / Mono.Cecil.Cil / OpCodes.cs
1 //
2 // OpCodes.cs
3 //
4 // Author:
5 //   Jb Evain (jbevain@gmail.com)
6 //
7 // Generated by /CodeGen/cecil-gen.rb do not edit
8 // Fri Jun 06 13:04:02 +0200 2008
9 //
10 // (C) 2005 Jb Evain
11 //
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
19 //
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
22 //
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 //
31
32 namespace Mono.Cecil.Cil {
33
34         internal sealed class OpCodes {
35
36                 internal static readonly OpCode [] OneByteOpCode = new OpCode [0xe0 + 1];
37                 internal static readonly OpCode [] TwoBytesOpCode = new OpCode [0x1e + 1];
38
39                 public static readonly OpCode Nop = new OpCode (
40                         0xff, 0x00,
41                         Code.Nop, FlowControl.Next,
42                         OpCodeType.Primitive, OperandType.InlineNone,
43                         StackBehaviour.Pop0, StackBehaviour.Push0);
44
45                 public static readonly OpCode Break = new OpCode (
46                         0xff, 0x01,
47                         Code.Break, FlowControl.Break,
48                         OpCodeType.Primitive, OperandType.InlineNone,
49                         StackBehaviour.Pop0, StackBehaviour.Push0);
50
51                 public static readonly OpCode Ldarg_0 = new OpCode (
52                         0xff, 0x02,
53                         Code.Ldarg_0, FlowControl.Next,
54                         OpCodeType.Macro, OperandType.InlineNone,
55                         StackBehaviour.Pop0, StackBehaviour.Push1);
56
57                 public static readonly OpCode Ldarg_1 = new OpCode (
58                         0xff, 0x03,
59                         Code.Ldarg_1, FlowControl.Next,
60                         OpCodeType.Macro, OperandType.InlineNone,
61                         StackBehaviour.Pop0, StackBehaviour.Push1);
62
63                 public static readonly OpCode Ldarg_2 = new OpCode (
64                         0xff, 0x04,
65                         Code.Ldarg_2, FlowControl.Next,
66                         OpCodeType.Macro, OperandType.InlineNone,
67                         StackBehaviour.Pop0, StackBehaviour.Push1);
68
69                 public static readonly OpCode Ldarg_3 = new OpCode (
70                         0xff, 0x05,
71                         Code.Ldarg_3, FlowControl.Next,
72                         OpCodeType.Macro, OperandType.InlineNone,
73                         StackBehaviour.Pop0, StackBehaviour.Push1);
74
75                 public static readonly OpCode Ldloc_0 = new OpCode (
76                         0xff, 0x06,
77                         Code.Ldloc_0, FlowControl.Next,
78                         OpCodeType.Macro, OperandType.InlineNone,
79                         StackBehaviour.Pop0, StackBehaviour.Push1);
80
81                 public static readonly OpCode Ldloc_1 = new OpCode (
82                         0xff, 0x07,
83                         Code.Ldloc_1, FlowControl.Next,
84                         OpCodeType.Macro, OperandType.InlineNone,
85                         StackBehaviour.Pop0, StackBehaviour.Push1);
86
87                 public static readonly OpCode Ldloc_2 = new OpCode (
88                         0xff, 0x08,
89                         Code.Ldloc_2, FlowControl.Next,
90                         OpCodeType.Macro, OperandType.InlineNone,
91                         StackBehaviour.Pop0, StackBehaviour.Push1);
92
93                 public static readonly OpCode Ldloc_3 = new OpCode (
94                         0xff, 0x09,
95                         Code.Ldloc_3, FlowControl.Next,
96                         OpCodeType.Macro, OperandType.InlineNone,
97                         StackBehaviour.Pop0, StackBehaviour.Push1);
98
99                 public static readonly OpCode Stloc_0 = new OpCode (
100                         0xff, 0x0a,
101                         Code.Stloc_0, FlowControl.Next,
102                         OpCodeType.Macro, OperandType.InlineNone,
103                         StackBehaviour.Pop1, StackBehaviour.Push0);
104
105                 public static readonly OpCode Stloc_1 = new OpCode (
106                         0xff, 0x0b,
107                         Code.Stloc_1, FlowControl.Next,
108                         OpCodeType.Macro, OperandType.InlineNone,
109                         StackBehaviour.Pop1, StackBehaviour.Push0);
110
111                 public static readonly OpCode Stloc_2 = new OpCode (
112                         0xff, 0x0c,
113                         Code.Stloc_2, FlowControl.Next,
114                         OpCodeType.Macro, OperandType.InlineNone,
115                         StackBehaviour.Pop1, StackBehaviour.Push0);
116
117                 public static readonly OpCode Stloc_3 = new OpCode (
118                         0xff, 0x0d,
119                         Code.Stloc_3, FlowControl.Next,
120                         OpCodeType.Macro, OperandType.InlineNone,
121                         StackBehaviour.Pop1, StackBehaviour.Push0);
122
123                 public static readonly OpCode Ldarg_S = new OpCode (
124                         0xff, 0x0e,
125                         Code.Ldarg_S, FlowControl.Next,
126                         OpCodeType.Macro, OperandType.ShortInlineParam,
127                         StackBehaviour.Pop0, StackBehaviour.Push1);
128
129                 public static readonly OpCode Ldarga_S = new OpCode (
130                         0xff, 0x0f,
131                         Code.Ldarga_S, FlowControl.Next,
132                         OpCodeType.Macro, OperandType.ShortInlineParam,
133                         StackBehaviour.Pop0, StackBehaviour.Pushi);
134
135                 public static readonly OpCode Starg_S = new OpCode (
136                         0xff, 0x10,
137                         Code.Starg_S, FlowControl.Next,
138                         OpCodeType.Macro, OperandType.ShortInlineParam,
139                         StackBehaviour.Pop1, StackBehaviour.Push0);
140
141                 public static readonly OpCode Ldloc_S = new OpCode (
142                         0xff, 0x11,
143                         Code.Ldloc_S, FlowControl.Next,
144                         OpCodeType.Macro, OperandType.ShortInlineVar,
145                         StackBehaviour.Pop0, StackBehaviour.Push1);
146
147                 public static readonly OpCode Ldloca_S = new OpCode (
148                         0xff, 0x12,
149                         Code.Ldloca_S, FlowControl.Next,
150                         OpCodeType.Macro, OperandType.ShortInlineVar,
151                         StackBehaviour.Pop0, StackBehaviour.Pushi);
152
153                 public static readonly OpCode Stloc_S = new OpCode (
154                         0xff, 0x13,
155                         Code.Stloc_S, FlowControl.Next,
156                         OpCodeType.Macro, OperandType.ShortInlineVar,
157                         StackBehaviour.Pop1, StackBehaviour.Push0);
158
159                 public static readonly OpCode Ldnull = new OpCode (
160                         0xff, 0x14,
161                         Code.Ldnull, FlowControl.Next,
162                         OpCodeType.Primitive, OperandType.InlineNone,
163                         StackBehaviour.Pop0, StackBehaviour.Pushref);
164
165                 public static readonly OpCode Ldc_I4_M1 = new OpCode (
166                         0xff, 0x15,
167                         Code.Ldc_I4_M1, FlowControl.Next,
168                         OpCodeType.Macro, OperandType.InlineNone,
169                         StackBehaviour.Pop0, StackBehaviour.Pushi);
170
171                 public static readonly OpCode Ldc_I4_0 = new OpCode (
172                         0xff, 0x16,
173                         Code.Ldc_I4_0, FlowControl.Next,
174                         OpCodeType.Macro, OperandType.InlineNone,
175                         StackBehaviour.Pop0, StackBehaviour.Pushi);
176
177                 public static readonly OpCode Ldc_I4_1 = new OpCode (
178                         0xff, 0x17,
179                         Code.Ldc_I4_1, FlowControl.Next,
180                         OpCodeType.Macro, OperandType.InlineNone,
181                         StackBehaviour.Pop0, StackBehaviour.Pushi);
182
183                 public static readonly OpCode Ldc_I4_2 = new OpCode (
184                         0xff, 0x18,
185                         Code.Ldc_I4_2, FlowControl.Next,
186                         OpCodeType.Macro, OperandType.InlineNone,
187                         StackBehaviour.Pop0, StackBehaviour.Pushi);
188
189                 public static readonly OpCode Ldc_I4_3 = new OpCode (
190                         0xff, 0x19,
191                         Code.Ldc_I4_3, FlowControl.Next,
192                         OpCodeType.Macro, OperandType.InlineNone,
193                         StackBehaviour.Pop0, StackBehaviour.Pushi);
194
195                 public static readonly OpCode Ldc_I4_4 = new OpCode (
196                         0xff, 0x1a,
197                         Code.Ldc_I4_4, FlowControl.Next,
198                         OpCodeType.Macro, OperandType.InlineNone,
199                         StackBehaviour.Pop0, StackBehaviour.Pushi);
200
201                 public static readonly OpCode Ldc_I4_5 = new OpCode (
202                         0xff, 0x1b,
203                         Code.Ldc_I4_5, FlowControl.Next,
204                         OpCodeType.Macro, OperandType.InlineNone,
205                         StackBehaviour.Pop0, StackBehaviour.Pushi);
206
207                 public static readonly OpCode Ldc_I4_6 = new OpCode (
208                         0xff, 0x1c,
209                         Code.Ldc_I4_6, FlowControl.Next,
210                         OpCodeType.Macro, OperandType.InlineNone,
211                         StackBehaviour.Pop0, StackBehaviour.Pushi);
212
213                 public static readonly OpCode Ldc_I4_7 = new OpCode (
214                         0xff, 0x1d,
215                         Code.Ldc_I4_7, FlowControl.Next,
216                         OpCodeType.Macro, OperandType.InlineNone,
217                         StackBehaviour.Pop0, StackBehaviour.Pushi);
218
219                 public static readonly OpCode Ldc_I4_8 = new OpCode (
220                         0xff, 0x1e,
221                         Code.Ldc_I4_8, FlowControl.Next,
222                         OpCodeType.Macro, OperandType.InlineNone,
223                         StackBehaviour.Pop0, StackBehaviour.Pushi);
224
225                 public static readonly OpCode Ldc_I4_S = new OpCode (
226                         0xff, 0x1f,
227                         Code.Ldc_I4_S, FlowControl.Next,
228                         OpCodeType.Macro, OperandType.ShortInlineI,
229                         StackBehaviour.Pop0, StackBehaviour.Pushi);
230
231                 public static readonly OpCode Ldc_I4 = new OpCode (
232                         0xff, 0x20,
233                         Code.Ldc_I4, FlowControl.Next,
234                         OpCodeType.Primitive, OperandType.InlineI,
235                         StackBehaviour.Pop0, StackBehaviour.Pushi);
236
237                 public static readonly OpCode Ldc_I8 = new OpCode (
238                         0xff, 0x21,
239                         Code.Ldc_I8, FlowControl.Next,
240                         OpCodeType.Primitive, OperandType.InlineI8,
241                         StackBehaviour.Pop0, StackBehaviour.Pushi8);
242
243                 public static readonly OpCode Ldc_R4 = new OpCode (
244                         0xff, 0x22,
245                         Code.Ldc_R4, FlowControl.Next,
246                         OpCodeType.Primitive, OperandType.ShortInlineR,
247                         StackBehaviour.Pop0, StackBehaviour.Pushr4);
248
249                 public static readonly OpCode Ldc_R8 = new OpCode (
250                         0xff, 0x23,
251                         Code.Ldc_R8, FlowControl.Next,
252                         OpCodeType.Primitive, OperandType.InlineR,
253                         StackBehaviour.Pop0, StackBehaviour.Pushr8);
254
255                 public static readonly OpCode Dup = new OpCode (
256                         0xff, 0x25,
257                         Code.Dup, FlowControl.Next,
258                         OpCodeType.Primitive, OperandType.InlineNone,
259                         StackBehaviour.Pop1, StackBehaviour.Push1_push1);
260
261                 public static readonly OpCode Pop = new OpCode (
262                         0xff, 0x26,
263                         Code.Pop, FlowControl.Next,
264                         OpCodeType.Primitive, OperandType.InlineNone,
265                         StackBehaviour.Pop1, StackBehaviour.Push0);
266
267                 public static readonly OpCode Jmp = new OpCode (
268                         0xff, 0x27,
269                         Code.Jmp, FlowControl.Call,
270                         OpCodeType.Primitive, OperandType.InlineMethod,
271                         StackBehaviour.Pop0, StackBehaviour.Push0);
272
273                 public static readonly OpCode Call = new OpCode (
274                         0xff, 0x28,
275                         Code.Call, FlowControl.Call,
276                         OpCodeType.Primitive, OperandType.InlineMethod,
277                         StackBehaviour.Varpop, StackBehaviour.Varpush);
278
279                 public static readonly OpCode Calli = new OpCode (
280                         0xff, 0x29,
281                         Code.Calli, FlowControl.Call,
282                         OpCodeType.Primitive, OperandType.InlineSig,
283                         StackBehaviour.Varpop, StackBehaviour.Varpush);
284
285                 public static readonly OpCode Ret = new OpCode (
286                         0xff, 0x2a,
287                         Code.Ret, FlowControl.Return,
288                         OpCodeType.Primitive, OperandType.InlineNone,
289                         StackBehaviour.Varpop, StackBehaviour.Push0);
290
291                 public static readonly OpCode Br_S = new OpCode (
292                         0xff, 0x2b,
293                         Code.Br_S, FlowControl.Branch,
294                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
295                         StackBehaviour.Pop0, StackBehaviour.Push0);
296
297                 public static readonly OpCode Brfalse_S = new OpCode (
298                         0xff, 0x2c,
299                         Code.Brfalse_S, FlowControl.Cond_Branch,
300                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
301                         StackBehaviour.Popi, StackBehaviour.Push0);
302
303                 public static readonly OpCode Brtrue_S = new OpCode (
304                         0xff, 0x2d,
305                         Code.Brtrue_S, FlowControl.Cond_Branch,
306                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
307                         StackBehaviour.Popi, StackBehaviour.Push0);
308
309                 public static readonly OpCode Beq_S = new OpCode (
310                         0xff, 0x2e,
311                         Code.Beq_S, FlowControl.Cond_Branch,
312                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
313                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
314
315                 public static readonly OpCode Bge_S = new OpCode (
316                         0xff, 0x2f,
317                         Code.Bge_S, FlowControl.Cond_Branch,
318                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
319                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
320
321                 public static readonly OpCode Bgt_S = new OpCode (
322                         0xff, 0x30,
323                         Code.Bgt_S, FlowControl.Cond_Branch,
324                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
325                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
326
327                 public static readonly OpCode Ble_S = new OpCode (
328                         0xff, 0x31,
329                         Code.Ble_S, FlowControl.Cond_Branch,
330                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
331                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
332
333                 public static readonly OpCode Blt_S = new OpCode (
334                         0xff, 0x32,
335                         Code.Blt_S, FlowControl.Cond_Branch,
336                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
337                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
338
339                 public static readonly OpCode Bne_Un_S = new OpCode (
340                         0xff, 0x33,
341                         Code.Bne_Un_S, FlowControl.Cond_Branch,
342                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
343                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
344
345                 public static readonly OpCode Bge_Un_S = new OpCode (
346                         0xff, 0x34,
347                         Code.Bge_Un_S, FlowControl.Cond_Branch,
348                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
349                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
350
351                 public static readonly OpCode Bgt_Un_S = new OpCode (
352                         0xff, 0x35,
353                         Code.Bgt_Un_S, FlowControl.Cond_Branch,
354                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
355                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
356
357                 public static readonly OpCode Ble_Un_S = new OpCode (
358                         0xff, 0x36,
359                         Code.Ble_Un_S, FlowControl.Cond_Branch,
360                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
361                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
362
363                 public static readonly OpCode Blt_Un_S = new OpCode (
364                         0xff, 0x37,
365                         Code.Blt_Un_S, FlowControl.Cond_Branch,
366                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
367                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
368
369                 public static readonly OpCode Br = new OpCode (
370                         0xff, 0x38,
371                         Code.Br, FlowControl.Branch,
372                         OpCodeType.Primitive, OperandType.InlineBrTarget,
373                         StackBehaviour.Pop0, StackBehaviour.Push0);
374
375                 public static readonly OpCode Brfalse = new OpCode (
376                         0xff, 0x39,
377                         Code.Brfalse, FlowControl.Cond_Branch,
378                         OpCodeType.Primitive, OperandType.InlineBrTarget,
379                         StackBehaviour.Popi, StackBehaviour.Push0);
380
381                 public static readonly OpCode Brtrue = new OpCode (
382                         0xff, 0x3a,
383                         Code.Brtrue, FlowControl.Cond_Branch,
384                         OpCodeType.Primitive, OperandType.InlineBrTarget,
385                         StackBehaviour.Popi, StackBehaviour.Push0);
386
387                 public static readonly OpCode Beq = new OpCode (
388                         0xff, 0x3b,
389                         Code.Beq, FlowControl.Cond_Branch,
390                         OpCodeType.Macro, OperandType.InlineBrTarget,
391                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
392
393                 public static readonly OpCode Bge = new OpCode (
394                         0xff, 0x3c,
395                         Code.Bge, FlowControl.Cond_Branch,
396                         OpCodeType.Macro, OperandType.InlineBrTarget,
397                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
398
399                 public static readonly OpCode Bgt = new OpCode (
400                         0xff, 0x3d,
401                         Code.Bgt, FlowControl.Cond_Branch,
402                         OpCodeType.Macro, OperandType.InlineBrTarget,
403                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
404
405                 public static readonly OpCode Ble = new OpCode (
406                         0xff, 0x3e,
407                         Code.Ble, FlowControl.Cond_Branch,
408                         OpCodeType.Macro, OperandType.InlineBrTarget,
409                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
410
411                 public static readonly OpCode Blt = new OpCode (
412                         0xff, 0x3f,
413                         Code.Blt, FlowControl.Cond_Branch,
414                         OpCodeType.Macro, OperandType.InlineBrTarget,
415                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
416
417                 public static readonly OpCode Bne_Un = new OpCode (
418                         0xff, 0x40,
419                         Code.Bne_Un, FlowControl.Cond_Branch,
420                         OpCodeType.Macro, OperandType.InlineBrTarget,
421                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
422
423                 public static readonly OpCode Bge_Un = new OpCode (
424                         0xff, 0x41,
425                         Code.Bge_Un, FlowControl.Cond_Branch,
426                         OpCodeType.Macro, OperandType.InlineBrTarget,
427                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
428
429                 public static readonly OpCode Bgt_Un = new OpCode (
430                         0xff, 0x42,
431                         Code.Bgt_Un, FlowControl.Cond_Branch,
432                         OpCodeType.Macro, OperandType.InlineBrTarget,
433                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
434
435                 public static readonly OpCode Ble_Un = new OpCode (
436                         0xff, 0x43,
437                         Code.Ble_Un, FlowControl.Cond_Branch,
438                         OpCodeType.Macro, OperandType.InlineBrTarget,
439                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
440
441                 public static readonly OpCode Blt_Un = new OpCode (
442                         0xff, 0x44,
443                         Code.Blt_Un, FlowControl.Cond_Branch,
444                         OpCodeType.Macro, OperandType.InlineBrTarget,
445                         StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
446
447                 public static readonly OpCode Switch = new OpCode (
448                         0xff, 0x45,
449                         Code.Switch, FlowControl.Cond_Branch,
450                         OpCodeType.Primitive, OperandType.InlineSwitch,
451                         StackBehaviour.Popi, StackBehaviour.Push0);
452
453                 public static readonly OpCode Ldind_I1 = new OpCode (
454                         0xff, 0x46,
455                         Code.Ldind_I1, FlowControl.Next,
456                         OpCodeType.Primitive, OperandType.InlineNone,
457                         StackBehaviour.Popi, StackBehaviour.Pushi);
458
459                 public static readonly OpCode Ldind_U1 = new OpCode (
460                         0xff, 0x47,
461                         Code.Ldind_U1, FlowControl.Next,
462                         OpCodeType.Primitive, OperandType.InlineNone,
463                         StackBehaviour.Popi, StackBehaviour.Pushi);
464
465                 public static readonly OpCode Ldind_I2 = new OpCode (
466                         0xff, 0x48,
467                         Code.Ldind_I2, FlowControl.Next,
468                         OpCodeType.Primitive, OperandType.InlineNone,
469                         StackBehaviour.Popi, StackBehaviour.Pushi);
470
471                 public static readonly OpCode Ldind_U2 = new OpCode (
472                         0xff, 0x49,
473                         Code.Ldind_U2, FlowControl.Next,
474                         OpCodeType.Primitive, OperandType.InlineNone,
475                         StackBehaviour.Popi, StackBehaviour.Pushi);
476
477                 public static readonly OpCode Ldind_I4 = new OpCode (
478                         0xff, 0x4a,
479                         Code.Ldind_I4, FlowControl.Next,
480                         OpCodeType.Primitive, OperandType.InlineNone,
481                         StackBehaviour.Popi, StackBehaviour.Pushi);
482
483                 public static readonly OpCode Ldind_U4 = new OpCode (
484                         0xff, 0x4b,
485                         Code.Ldind_U4, FlowControl.Next,
486                         OpCodeType.Primitive, OperandType.InlineNone,
487                         StackBehaviour.Popi, StackBehaviour.Pushi);
488
489                 public static readonly OpCode Ldind_I8 = new OpCode (
490                         0xff, 0x4c,
491                         Code.Ldind_I8, FlowControl.Next,
492                         OpCodeType.Primitive, OperandType.InlineNone,
493                         StackBehaviour.Popi, StackBehaviour.Pushi8);
494
495                 public static readonly OpCode Ldind_I = new OpCode (
496                         0xff, 0x4d,
497                         Code.Ldind_I, FlowControl.Next,
498                         OpCodeType.Primitive, OperandType.InlineNone,
499                         StackBehaviour.Popi, StackBehaviour.Pushi);
500
501                 public static readonly OpCode Ldind_R4 = new OpCode (
502                         0xff, 0x4e,
503                         Code.Ldind_R4, FlowControl.Next,
504                         OpCodeType.Primitive, OperandType.InlineNone,
505                         StackBehaviour.Popi, StackBehaviour.Pushr4);
506
507                 public static readonly OpCode Ldind_R8 = new OpCode (
508                         0xff, 0x4f,
509                         Code.Ldind_R8, FlowControl.Next,
510                         OpCodeType.Primitive, OperandType.InlineNone,
511                         StackBehaviour.Popi, StackBehaviour.Pushr8);
512
513                 public static readonly OpCode Ldind_Ref = new OpCode (
514                         0xff, 0x50,
515                         Code.Ldind_Ref, FlowControl.Next,
516                         OpCodeType.Primitive, OperandType.InlineNone,
517                         StackBehaviour.Popi, StackBehaviour.Pushref);
518
519                 public static readonly OpCode Stind_Ref = new OpCode (
520                         0xff, 0x51,
521                         Code.Stind_Ref, FlowControl.Next,
522                         OpCodeType.Primitive, OperandType.InlineNone,
523                         StackBehaviour.Popi_popi, StackBehaviour.Push0);
524
525                 public static readonly OpCode Stind_I1 = new OpCode (
526                         0xff, 0x52,
527                         Code.Stind_I1, FlowControl.Next,
528                         OpCodeType.Primitive, OperandType.InlineNone,
529                         StackBehaviour.Popi_popi, StackBehaviour.Push0);
530
531                 public static readonly OpCode Stind_I2 = new OpCode (
532                         0xff, 0x53,
533                         Code.Stind_I2, FlowControl.Next,
534                         OpCodeType.Primitive, OperandType.InlineNone,
535                         StackBehaviour.Popi_popi, StackBehaviour.Push0);
536
537                 public static readonly OpCode Stind_I4 = new OpCode (
538                         0xff, 0x54,
539                         Code.Stind_I4, FlowControl.Next,
540                         OpCodeType.Primitive, OperandType.InlineNone,
541                         StackBehaviour.Popi_popi, StackBehaviour.Push0);
542
543                 public static readonly OpCode Stind_I8 = new OpCode (
544                         0xff, 0x55,
545                         Code.Stind_I8, FlowControl.Next,
546                         OpCodeType.Primitive, OperandType.InlineNone,
547                         StackBehaviour.Popi_popi8, StackBehaviour.Push0);
548
549                 public static readonly OpCode Stind_R4 = new OpCode (
550                         0xff, 0x56,
551                         Code.Stind_R4, FlowControl.Next,
552                         OpCodeType.Primitive, OperandType.InlineNone,
553                         StackBehaviour.Popi_popr4, StackBehaviour.Push0);
554
555                 public static readonly OpCode Stind_R8 = new OpCode (
556                         0xff, 0x57,
557                         Code.Stind_R8, FlowControl.Next,
558                         OpCodeType.Primitive, OperandType.InlineNone,
559                         StackBehaviour.Popi_popr8, StackBehaviour.Push0);
560
561                 public static readonly OpCode Add = new OpCode (
562                         0xff, 0x58,
563                         Code.Add, FlowControl.Next,
564                         OpCodeType.Primitive, OperandType.InlineNone,
565                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
566
567                 public static readonly OpCode Sub = new OpCode (
568                         0xff, 0x59,
569                         Code.Sub, FlowControl.Next,
570                         OpCodeType.Primitive, OperandType.InlineNone,
571                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
572
573                 public static readonly OpCode Mul = new OpCode (
574                         0xff, 0x5a,
575                         Code.Mul, FlowControl.Next,
576                         OpCodeType.Primitive, OperandType.InlineNone,
577                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
578
579                 public static readonly OpCode Div = new OpCode (
580                         0xff, 0x5b,
581                         Code.Div, FlowControl.Next,
582                         OpCodeType.Primitive, OperandType.InlineNone,
583                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
584
585                 public static readonly OpCode Div_Un = new OpCode (
586                         0xff, 0x5c,
587                         Code.Div_Un, FlowControl.Next,
588                         OpCodeType.Primitive, OperandType.InlineNone,
589                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
590
591                 public static readonly OpCode Rem = new OpCode (
592                         0xff, 0x5d,
593                         Code.Rem, FlowControl.Next,
594                         OpCodeType.Primitive, OperandType.InlineNone,
595                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
596
597                 public static readonly OpCode Rem_Un = new OpCode (
598                         0xff, 0x5e,
599                         Code.Rem_Un, FlowControl.Next,
600                         OpCodeType.Primitive, OperandType.InlineNone,
601                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
602
603                 public static readonly OpCode And = new OpCode (
604                         0xff, 0x5f,
605                         Code.And, FlowControl.Next,
606                         OpCodeType.Primitive, OperandType.InlineNone,
607                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
608
609                 public static readonly OpCode Or = new OpCode (
610                         0xff, 0x60,
611                         Code.Or, FlowControl.Next,
612                         OpCodeType.Primitive, OperandType.InlineNone,
613                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
614
615                 public static readonly OpCode Xor = new OpCode (
616                         0xff, 0x61,
617                         Code.Xor, FlowControl.Next,
618                         OpCodeType.Primitive, OperandType.InlineNone,
619                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
620
621                 public static readonly OpCode Shl = new OpCode (
622                         0xff, 0x62,
623                         Code.Shl, FlowControl.Next,
624                         OpCodeType.Primitive, OperandType.InlineNone,
625                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
626
627                 public static readonly OpCode Shr = new OpCode (
628                         0xff, 0x63,
629                         Code.Shr, FlowControl.Next,
630                         OpCodeType.Primitive, OperandType.InlineNone,
631                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
632
633                 public static readonly OpCode Shr_Un = new OpCode (
634                         0xff, 0x64,
635                         Code.Shr_Un, FlowControl.Next,
636                         OpCodeType.Primitive, OperandType.InlineNone,
637                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
638
639                 public static readonly OpCode Neg = new OpCode (
640                         0xff, 0x65,
641                         Code.Neg, FlowControl.Next,
642                         OpCodeType.Primitive, OperandType.InlineNone,
643                         StackBehaviour.Pop1, StackBehaviour.Push1);
644
645                 public static readonly OpCode Not = new OpCode (
646                         0xff, 0x66,
647                         Code.Not, FlowControl.Next,
648                         OpCodeType.Primitive, OperandType.InlineNone,
649                         StackBehaviour.Pop1, StackBehaviour.Push1);
650
651                 public static readonly OpCode Conv_I1 = new OpCode (
652                         0xff, 0x67,
653                         Code.Conv_I1, FlowControl.Next,
654                         OpCodeType.Primitive, OperandType.InlineNone,
655                         StackBehaviour.Pop1, StackBehaviour.Pushi);
656
657                 public static readonly OpCode Conv_I2 = new OpCode (
658                         0xff, 0x68,
659                         Code.Conv_I2, FlowControl.Next,
660                         OpCodeType.Primitive, OperandType.InlineNone,
661                         StackBehaviour.Pop1, StackBehaviour.Pushi);
662
663                 public static readonly OpCode Conv_I4 = new OpCode (
664                         0xff, 0x69,
665                         Code.Conv_I4, FlowControl.Next,
666                         OpCodeType.Primitive, OperandType.InlineNone,
667                         StackBehaviour.Pop1, StackBehaviour.Pushi);
668
669                 public static readonly OpCode Conv_I8 = new OpCode (
670                         0xff, 0x6a,
671                         Code.Conv_I8, FlowControl.Next,
672                         OpCodeType.Primitive, OperandType.InlineNone,
673                         StackBehaviour.Pop1, StackBehaviour.Pushi8);
674
675                 public static readonly OpCode Conv_R4 = new OpCode (
676                         0xff, 0x6b,
677                         Code.Conv_R4, FlowControl.Next,
678                         OpCodeType.Primitive, OperandType.InlineNone,
679                         StackBehaviour.Pop1, StackBehaviour.Pushr4);
680
681                 public static readonly OpCode Conv_R8 = new OpCode (
682                         0xff, 0x6c,
683                         Code.Conv_R8, FlowControl.Next,
684                         OpCodeType.Primitive, OperandType.InlineNone,
685                         StackBehaviour.Pop1, StackBehaviour.Pushr8);
686
687                 public static readonly OpCode Conv_U4 = new OpCode (
688                         0xff, 0x6d,
689                         Code.Conv_U4, FlowControl.Next,
690                         OpCodeType.Primitive, OperandType.InlineNone,
691                         StackBehaviour.Pop1, StackBehaviour.Pushi);
692
693                 public static readonly OpCode Conv_U8 = new OpCode (
694                         0xff, 0x6e,
695                         Code.Conv_U8, FlowControl.Next,
696                         OpCodeType.Primitive, OperandType.InlineNone,
697                         StackBehaviour.Pop1, StackBehaviour.Pushi8);
698
699                 public static readonly OpCode Callvirt = new OpCode (
700                         0xff, 0x6f,
701                         Code.Callvirt, FlowControl.Call,
702                         OpCodeType.Objmodel, OperandType.InlineMethod,
703                         StackBehaviour.Varpop, StackBehaviour.Varpush);
704
705                 public static readonly OpCode Cpobj = new OpCode (
706                         0xff, 0x70,
707                         Code.Cpobj, FlowControl.Next,
708                         OpCodeType.Objmodel, OperandType.InlineType,
709                         StackBehaviour.Popi_popi, StackBehaviour.Push0);
710
711                 public static readonly OpCode Ldobj = new OpCode (
712                         0xff, 0x71,
713                         Code.Ldobj, FlowControl.Next,
714                         OpCodeType.Objmodel, OperandType.InlineType,
715                         StackBehaviour.Popi, StackBehaviour.Push1);
716
717                 public static readonly OpCode Ldstr = new OpCode (
718                         0xff, 0x72,
719                         Code.Ldstr, FlowControl.Next,
720                         OpCodeType.Objmodel, OperandType.InlineString,
721                         StackBehaviour.Pop0, StackBehaviour.Pushref);
722
723                 public static readonly OpCode Newobj = new OpCode (
724                         0xff, 0x73,
725                         Code.Newobj, FlowControl.Call,
726                         OpCodeType.Objmodel, OperandType.InlineMethod,
727                         StackBehaviour.Varpop, StackBehaviour.Pushref);
728
729                 public static readonly OpCode Castclass = new OpCode (
730                         0xff, 0x74,
731                         Code.Castclass, FlowControl.Next,
732                         OpCodeType.Objmodel, OperandType.InlineType,
733                         StackBehaviour.Popref, StackBehaviour.Pushref);
734
735                 public static readonly OpCode Isinst = new OpCode (
736                         0xff, 0x75,
737                         Code.Isinst, FlowControl.Next,
738                         OpCodeType.Objmodel, OperandType.InlineType,
739                         StackBehaviour.Popref, StackBehaviour.Pushi);
740
741                 public static readonly OpCode Conv_R_Un = new OpCode (
742                         0xff, 0x76,
743                         Code.Conv_R_Un, FlowControl.Next,
744                         OpCodeType.Primitive, OperandType.InlineNone,
745                         StackBehaviour.Pop1, StackBehaviour.Pushr8);
746
747                 public static readonly OpCode Unbox = new OpCode (
748                         0xff, 0x79,
749                         Code.Unbox, FlowControl.Next,
750                         OpCodeType.Primitive, OperandType.InlineType,
751                         StackBehaviour.Popref, StackBehaviour.Pushi);
752
753                 public static readonly OpCode Throw = new OpCode (
754                         0xff, 0x7a,
755                         Code.Throw, FlowControl.Throw,
756                         OpCodeType.Objmodel, OperandType.InlineNone,
757                         StackBehaviour.Popref, StackBehaviour.Push0);
758
759                 public static readonly OpCode Ldfld = new OpCode (
760                         0xff, 0x7b,
761                         Code.Ldfld, FlowControl.Next,
762                         OpCodeType.Objmodel, OperandType.InlineField,
763                         StackBehaviour.Popref, StackBehaviour.Push1);
764
765                 public static readonly OpCode Ldflda = new OpCode (
766                         0xff, 0x7c,
767                         Code.Ldflda, FlowControl.Next,
768                         OpCodeType.Objmodel, OperandType.InlineField,
769                         StackBehaviour.Popref, StackBehaviour.Pushi);
770
771                 public static readonly OpCode Stfld = new OpCode (
772                         0xff, 0x7d,
773                         Code.Stfld, FlowControl.Next,
774                         OpCodeType.Objmodel, OperandType.InlineField,
775                         StackBehaviour.Popref_pop1, StackBehaviour.Push0);
776
777                 public static readonly OpCode Ldsfld = new OpCode (
778                         0xff, 0x7e,
779                         Code.Ldsfld, FlowControl.Next,
780                         OpCodeType.Objmodel, OperandType.InlineField,
781                         StackBehaviour.Pop0, StackBehaviour.Push1);
782
783                 public static readonly OpCode Ldsflda = new OpCode (
784                         0xff, 0x7f,
785                         Code.Ldsflda, FlowControl.Next,
786                         OpCodeType.Objmodel, OperandType.InlineField,
787                         StackBehaviour.Pop0, StackBehaviour.Pushi);
788
789                 public static readonly OpCode Stsfld = new OpCode (
790                         0xff, 0x80,
791                         Code.Stsfld, FlowControl.Next,
792                         OpCodeType.Objmodel, OperandType.InlineField,
793                         StackBehaviour.Pop1, StackBehaviour.Push0);
794
795                 public static readonly OpCode Stobj = new OpCode (
796                         0xff, 0x81,
797                         Code.Stobj, FlowControl.Next,
798                         OpCodeType.Objmodel, OperandType.InlineType,
799                         StackBehaviour.Popi_pop1, StackBehaviour.Push0);
800
801                 public static readonly OpCode Conv_Ovf_I1_Un = new OpCode (
802                         0xff, 0x82,
803                         Code.Conv_Ovf_I1_Un, FlowControl.Next,
804                         OpCodeType.Primitive, OperandType.InlineNone,
805                         StackBehaviour.Pop1, StackBehaviour.Pushi);
806
807                 public static readonly OpCode Conv_Ovf_I2_Un = new OpCode (
808                         0xff, 0x83,
809                         Code.Conv_Ovf_I2_Un, FlowControl.Next,
810                         OpCodeType.Primitive, OperandType.InlineNone,
811                         StackBehaviour.Pop1, StackBehaviour.Pushi);
812
813                 public static readonly OpCode Conv_Ovf_I4_Un = new OpCode (
814                         0xff, 0x84,
815                         Code.Conv_Ovf_I4_Un, FlowControl.Next,
816                         OpCodeType.Primitive, OperandType.InlineNone,
817                         StackBehaviour.Pop1, StackBehaviour.Pushi);
818
819                 public static readonly OpCode Conv_Ovf_I8_Un = new OpCode (
820                         0xff, 0x85,
821                         Code.Conv_Ovf_I8_Un, FlowControl.Next,
822                         OpCodeType.Primitive, OperandType.InlineNone,
823                         StackBehaviour.Pop1, StackBehaviour.Pushi8);
824
825                 public static readonly OpCode Conv_Ovf_U1_Un = new OpCode (
826                         0xff, 0x86,
827                         Code.Conv_Ovf_U1_Un, FlowControl.Next,
828                         OpCodeType.Primitive, OperandType.InlineNone,
829                         StackBehaviour.Pop1, StackBehaviour.Pushi);
830
831                 public static readonly OpCode Conv_Ovf_U2_Un = new OpCode (
832                         0xff, 0x87,
833                         Code.Conv_Ovf_U2_Un, FlowControl.Next,
834                         OpCodeType.Primitive, OperandType.InlineNone,
835                         StackBehaviour.Pop1, StackBehaviour.Pushi);
836
837                 public static readonly OpCode Conv_Ovf_U4_Un = new OpCode (
838                         0xff, 0x88,
839                         Code.Conv_Ovf_U4_Un, FlowControl.Next,
840                         OpCodeType.Primitive, OperandType.InlineNone,
841                         StackBehaviour.Pop1, StackBehaviour.Pushi);
842
843                 public static readonly OpCode Conv_Ovf_U8_Un = new OpCode (
844                         0xff, 0x89,
845                         Code.Conv_Ovf_U8_Un, FlowControl.Next,
846                         OpCodeType.Primitive, OperandType.InlineNone,
847                         StackBehaviour.Pop1, StackBehaviour.Pushi8);
848
849                 public static readonly OpCode Conv_Ovf_I_Un = new OpCode (
850                         0xff, 0x8a,
851                         Code.Conv_Ovf_I_Un, FlowControl.Next,
852                         OpCodeType.Primitive, OperandType.InlineNone,
853                         StackBehaviour.Pop1, StackBehaviour.Pushi);
854
855                 public static readonly OpCode Conv_Ovf_U_Un = new OpCode (
856                         0xff, 0x8b,
857                         Code.Conv_Ovf_U_Un, FlowControl.Next,
858                         OpCodeType.Primitive, OperandType.InlineNone,
859                         StackBehaviour.Pop1, StackBehaviour.Pushi);
860
861                 public static readonly OpCode Box = new OpCode (
862                         0xff, 0x8c,
863                         Code.Box, FlowControl.Next,
864                         OpCodeType.Primitive, OperandType.InlineType,
865                         StackBehaviour.Pop1, StackBehaviour.Pushref);
866
867                 public static readonly OpCode Newarr = new OpCode (
868                         0xff, 0x8d,
869                         Code.Newarr, FlowControl.Next,
870                         OpCodeType.Objmodel, OperandType.InlineType,
871                         StackBehaviour.Popi, StackBehaviour.Pushref);
872
873                 public static readonly OpCode Ldlen = new OpCode (
874                         0xff, 0x8e,
875                         Code.Ldlen, FlowControl.Next,
876                         OpCodeType.Objmodel, OperandType.InlineNone,
877                         StackBehaviour.Popref, StackBehaviour.Pushi);
878
879                 public static readonly OpCode Ldelema = new OpCode (
880                         0xff, 0x8f,
881                         Code.Ldelema, FlowControl.Next,
882                         OpCodeType.Objmodel, OperandType.InlineType,
883                         StackBehaviour.Popref_popi, StackBehaviour.Pushi);
884
885                 public static readonly OpCode Ldelem_I1 = new OpCode (
886                         0xff, 0x90,
887                         Code.Ldelem_I1, FlowControl.Next,
888                         OpCodeType.Objmodel, OperandType.InlineNone,
889                         StackBehaviour.Popref_popi, StackBehaviour.Pushi);
890
891                 public static readonly OpCode Ldelem_U1 = new OpCode (
892                         0xff, 0x91,
893                         Code.Ldelem_U1, FlowControl.Next,
894                         OpCodeType.Objmodel, OperandType.InlineNone,
895                         StackBehaviour.Popref_popi, StackBehaviour.Pushi);
896
897                 public static readonly OpCode Ldelem_I2 = new OpCode (
898                         0xff, 0x92,
899                         Code.Ldelem_I2, FlowControl.Next,
900                         OpCodeType.Objmodel, OperandType.InlineNone,
901                         StackBehaviour.Popref_popi, StackBehaviour.Pushi);
902
903                 public static readonly OpCode Ldelem_U2 = new OpCode (
904                         0xff, 0x93,
905                         Code.Ldelem_U2, FlowControl.Next,
906                         OpCodeType.Objmodel, OperandType.InlineNone,
907                         StackBehaviour.Popref_popi, StackBehaviour.Pushi);
908
909                 public static readonly OpCode Ldelem_I4 = new OpCode (
910                         0xff, 0x94,
911                         Code.Ldelem_I4, FlowControl.Next,
912                         OpCodeType.Objmodel, OperandType.InlineNone,
913                         StackBehaviour.Popref_popi, StackBehaviour.Pushi);
914
915                 public static readonly OpCode Ldelem_U4 = new OpCode (
916                         0xff, 0x95,
917                         Code.Ldelem_U4, FlowControl.Next,
918                         OpCodeType.Objmodel, OperandType.InlineNone,
919                         StackBehaviour.Popref_popi, StackBehaviour.Pushi);
920
921                 public static readonly OpCode Ldelem_I8 = new OpCode (
922                         0xff, 0x96,
923                         Code.Ldelem_I8, FlowControl.Next,
924                         OpCodeType.Objmodel, OperandType.InlineNone,
925                         StackBehaviour.Popref_popi, StackBehaviour.Pushi8);
926
927                 public static readonly OpCode Ldelem_I = new OpCode (
928                         0xff, 0x97,
929                         Code.Ldelem_I, FlowControl.Next,
930                         OpCodeType.Objmodel, OperandType.InlineNone,
931                         StackBehaviour.Popref_popi, StackBehaviour.Pushi);
932
933                 public static readonly OpCode Ldelem_R4 = new OpCode (
934                         0xff, 0x98,
935                         Code.Ldelem_R4, FlowControl.Next,
936                         OpCodeType.Objmodel, OperandType.InlineNone,
937                         StackBehaviour.Popref_popi, StackBehaviour.Pushr4);
938
939                 public static readonly OpCode Ldelem_R8 = new OpCode (
940                         0xff, 0x99,
941                         Code.Ldelem_R8, FlowControl.Next,
942                         OpCodeType.Objmodel, OperandType.InlineNone,
943                         StackBehaviour.Popref_popi, StackBehaviour.Pushr8);
944
945                 public static readonly OpCode Ldelem_Ref = new OpCode (
946                         0xff, 0x9a,
947                         Code.Ldelem_Ref, FlowControl.Next,
948                         OpCodeType.Objmodel, OperandType.InlineNone,
949                         StackBehaviour.Popref_popi, StackBehaviour.Pushref);
950
951                 public static readonly OpCode Stelem_I = new OpCode (
952                         0xff, 0x9b,
953                         Code.Stelem_I, FlowControl.Next,
954                         OpCodeType.Objmodel, OperandType.InlineNone,
955                         StackBehaviour.Popref_popi_popi, StackBehaviour.Push0);
956
957                 public static readonly OpCode Stelem_I1 = new OpCode (
958                         0xff, 0x9c,
959                         Code.Stelem_I1, FlowControl.Next,
960                         OpCodeType.Objmodel, OperandType.InlineNone,
961                         StackBehaviour.Popref_popi_popi, StackBehaviour.Push0);
962
963                 public static readonly OpCode Stelem_I2 = new OpCode (
964                         0xff, 0x9d,
965                         Code.Stelem_I2, FlowControl.Next,
966                         OpCodeType.Objmodel, OperandType.InlineNone,
967                         StackBehaviour.Popref_popi_popi, StackBehaviour.Push0);
968
969                 public static readonly OpCode Stelem_I4 = new OpCode (
970                         0xff, 0x9e,
971                         Code.Stelem_I4, FlowControl.Next,
972                         OpCodeType.Objmodel, OperandType.InlineNone,
973                         StackBehaviour.Popref_popi_popi, StackBehaviour.Push0);
974
975                 public static readonly OpCode Stelem_I8 = new OpCode (
976                         0xff, 0x9f,
977                         Code.Stelem_I8, FlowControl.Next,
978                         OpCodeType.Objmodel, OperandType.InlineNone,
979                         StackBehaviour.Popref_popi_popi8, StackBehaviour.Push0);
980
981                 public static readonly OpCode Stelem_R4 = new OpCode (
982                         0xff, 0xa0,
983                         Code.Stelem_R4, FlowControl.Next,
984                         OpCodeType.Objmodel, OperandType.InlineNone,
985                         StackBehaviour.Popref_popi_popr4, StackBehaviour.Push0);
986
987                 public static readonly OpCode Stelem_R8 = new OpCode (
988                         0xff, 0xa1,
989                         Code.Stelem_R8, FlowControl.Next,
990                         OpCodeType.Objmodel, OperandType.InlineNone,
991                         StackBehaviour.Popref_popi_popr8, StackBehaviour.Push0);
992
993                 public static readonly OpCode Stelem_Ref = new OpCode (
994                         0xff, 0xa2,
995                         Code.Stelem_Ref, FlowControl.Next,
996                         OpCodeType.Objmodel, OperandType.InlineNone,
997                         StackBehaviour.Popref_popi_popref, StackBehaviour.Push0);
998
999                 public static readonly OpCode Ldelem_Any = new OpCode (
1000                         0xff, 0xa3,
1001                         Code.Ldelem_Any, FlowControl.Next,
1002                         OpCodeType.Objmodel, OperandType.InlineType,
1003                         StackBehaviour.Popref_popi, StackBehaviour.Push1);
1004
1005                 public static readonly OpCode Stelem_Any = new OpCode (
1006                         0xff, 0xa4,
1007                         Code.Stelem_Any, FlowControl.Next,
1008                         OpCodeType.Objmodel, OperandType.InlineType,
1009                         StackBehaviour.Popref_popi_popref, StackBehaviour.Push0);
1010
1011                 public static readonly OpCode Unbox_Any = new OpCode (
1012                         0xff, 0xa5,
1013                         Code.Unbox_Any, FlowControl.Next,
1014                         OpCodeType.Objmodel, OperandType.InlineType,
1015                         StackBehaviour.Popref, StackBehaviour.Push1);
1016
1017                 public static readonly OpCode Conv_Ovf_I1 = new OpCode (
1018                         0xff, 0xb3,
1019                         Code.Conv_Ovf_I1, FlowControl.Next,
1020                         OpCodeType.Primitive, OperandType.InlineNone,
1021                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1022
1023                 public static readonly OpCode Conv_Ovf_U1 = new OpCode (
1024                         0xff, 0xb4,
1025                         Code.Conv_Ovf_U1, FlowControl.Next,
1026                         OpCodeType.Primitive, OperandType.InlineNone,
1027                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1028
1029                 public static readonly OpCode Conv_Ovf_I2 = new OpCode (
1030                         0xff, 0xb5,
1031                         Code.Conv_Ovf_I2, FlowControl.Next,
1032                         OpCodeType.Primitive, OperandType.InlineNone,
1033                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1034
1035                 public static readonly OpCode Conv_Ovf_U2 = new OpCode (
1036                         0xff, 0xb6,
1037                         Code.Conv_Ovf_U2, FlowControl.Next,
1038                         OpCodeType.Primitive, OperandType.InlineNone,
1039                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1040
1041                 public static readonly OpCode Conv_Ovf_I4 = new OpCode (
1042                         0xff, 0xb7,
1043                         Code.Conv_Ovf_I4, FlowControl.Next,
1044                         OpCodeType.Primitive, OperandType.InlineNone,
1045                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1046
1047                 public static readonly OpCode Conv_Ovf_U4 = new OpCode (
1048                         0xff, 0xb8,
1049                         Code.Conv_Ovf_U4, FlowControl.Next,
1050                         OpCodeType.Primitive, OperandType.InlineNone,
1051                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1052
1053                 public static readonly OpCode Conv_Ovf_I8 = new OpCode (
1054                         0xff, 0xb9,
1055                         Code.Conv_Ovf_I8, FlowControl.Next,
1056                         OpCodeType.Primitive, OperandType.InlineNone,
1057                         StackBehaviour.Pop1, StackBehaviour.Pushi8);
1058
1059                 public static readonly OpCode Conv_Ovf_U8 = new OpCode (
1060                         0xff, 0xba,
1061                         Code.Conv_Ovf_U8, FlowControl.Next,
1062                         OpCodeType.Primitive, OperandType.InlineNone,
1063                         StackBehaviour.Pop1, StackBehaviour.Pushi8);
1064
1065                 public static readonly OpCode Refanyval = new OpCode (
1066                         0xff, 0xc2,
1067                         Code.Refanyval, FlowControl.Next,
1068                         OpCodeType.Primitive, OperandType.InlineType,
1069                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1070
1071                 public static readonly OpCode Ckfinite = new OpCode (
1072                         0xff, 0xc3,
1073                         Code.Ckfinite, FlowControl.Next,
1074                         OpCodeType.Primitive, OperandType.InlineNone,
1075                         StackBehaviour.Pop1, StackBehaviour.Pushr8);
1076
1077                 public static readonly OpCode Mkrefany = new OpCode (
1078                         0xff, 0xc6,
1079                         Code.Mkrefany, FlowControl.Next,
1080                         OpCodeType.Primitive, OperandType.InlineType,
1081                         StackBehaviour.Popi, StackBehaviour.Push1);
1082
1083                 public static readonly OpCode Ldtoken = new OpCode (
1084                         0xff, 0xd0,
1085                         Code.Ldtoken, FlowControl.Next,
1086                         OpCodeType.Primitive, OperandType.InlineTok,
1087                         StackBehaviour.Pop0, StackBehaviour.Pushi);
1088
1089                 public static readonly OpCode Conv_U2 = new OpCode (
1090                         0xff, 0xd1,
1091                         Code.Conv_U2, FlowControl.Next,
1092                         OpCodeType.Primitive, OperandType.InlineNone,
1093                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1094
1095                 public static readonly OpCode Conv_U1 = new OpCode (
1096                         0xff, 0xd2,
1097                         Code.Conv_U1, FlowControl.Next,
1098                         OpCodeType.Primitive, OperandType.InlineNone,
1099                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1100
1101                 public static readonly OpCode Conv_I = new OpCode (
1102                         0xff, 0xd3,
1103                         Code.Conv_I, FlowControl.Next,
1104                         OpCodeType.Primitive, OperandType.InlineNone,
1105                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1106
1107                 public static readonly OpCode Conv_Ovf_I = new OpCode (
1108                         0xff, 0xd4,
1109                         Code.Conv_Ovf_I, FlowControl.Next,
1110                         OpCodeType.Primitive, OperandType.InlineNone,
1111                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1112
1113                 public static readonly OpCode Conv_Ovf_U = new OpCode (
1114                         0xff, 0xd5,
1115                         Code.Conv_Ovf_U, FlowControl.Next,
1116                         OpCodeType.Primitive, OperandType.InlineNone,
1117                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1118
1119                 public static readonly OpCode Add_Ovf = new OpCode (
1120                         0xff, 0xd6,
1121                         Code.Add_Ovf, FlowControl.Next,
1122                         OpCodeType.Primitive, OperandType.InlineNone,
1123                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
1124
1125                 public static readonly OpCode Add_Ovf_Un = new OpCode (
1126                         0xff, 0xd7,
1127                         Code.Add_Ovf_Un, FlowControl.Next,
1128                         OpCodeType.Primitive, OperandType.InlineNone,
1129                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
1130
1131                 public static readonly OpCode Mul_Ovf = new OpCode (
1132                         0xff, 0xd8,
1133                         Code.Mul_Ovf, FlowControl.Next,
1134                         OpCodeType.Primitive, OperandType.InlineNone,
1135                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
1136
1137                 public static readonly OpCode Mul_Ovf_Un = new OpCode (
1138                         0xff, 0xd9,
1139                         Code.Mul_Ovf_Un, FlowControl.Next,
1140                         OpCodeType.Primitive, OperandType.InlineNone,
1141                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
1142
1143                 public static readonly OpCode Sub_Ovf = new OpCode (
1144                         0xff, 0xda,
1145                         Code.Sub_Ovf, FlowControl.Next,
1146                         OpCodeType.Primitive, OperandType.InlineNone,
1147                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
1148
1149                 public static readonly OpCode Sub_Ovf_Un = new OpCode (
1150                         0xff, 0xdb,
1151                         Code.Sub_Ovf_Un, FlowControl.Next,
1152                         OpCodeType.Primitive, OperandType.InlineNone,
1153                         StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
1154
1155                 public static readonly OpCode Endfinally = new OpCode (
1156                         0xff, 0xdc,
1157                         Code.Endfinally, FlowControl.Return,
1158                         OpCodeType.Primitive, OperandType.InlineNone,
1159                         StackBehaviour.Pop0, StackBehaviour.Push0);
1160
1161                 public static readonly OpCode Leave = new OpCode (
1162                         0xff, 0xdd,
1163                         Code.Leave, FlowControl.Branch,
1164                         OpCodeType.Primitive, OperandType.InlineBrTarget,
1165                         StackBehaviour.PopAll, StackBehaviour.Push0);
1166
1167                 public static readonly OpCode Leave_S = new OpCode (
1168                         0xff, 0xde,
1169                         Code.Leave_S, FlowControl.Branch,
1170                         OpCodeType.Macro, OperandType.ShortInlineBrTarget,
1171                         StackBehaviour.PopAll, StackBehaviour.Push0);
1172
1173                 public static readonly OpCode Stind_I = new OpCode (
1174                         0xff, 0xdf,
1175                         Code.Stind_I, FlowControl.Next,
1176                         OpCodeType.Primitive, OperandType.InlineNone,
1177                         StackBehaviour.Popi_popi, StackBehaviour.Push0);
1178
1179                 public static readonly OpCode Conv_U = new OpCode (
1180                         0xff, 0xe0,
1181                         Code.Conv_U, FlowControl.Next,
1182                         OpCodeType.Primitive, OperandType.InlineNone,
1183                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1184
1185                 public static readonly OpCode Arglist = new OpCode (
1186                         0xfe, 0x00,
1187                         Code.Arglist, FlowControl.Next,
1188                         OpCodeType.Primitive, OperandType.InlineNone,
1189                         StackBehaviour.Pop0, StackBehaviour.Pushi);
1190
1191                 public static readonly OpCode Ceq = new OpCode (
1192                         0xfe, 0x01,
1193                         Code.Ceq, FlowControl.Next,
1194                         OpCodeType.Primitive, OperandType.InlineNone,
1195                         StackBehaviour.Pop1_pop1, StackBehaviour.Pushi);
1196
1197                 public static readonly OpCode Cgt = new OpCode (
1198                         0xfe, 0x02,
1199                         Code.Cgt, FlowControl.Next,
1200                         OpCodeType.Primitive, OperandType.InlineNone,
1201                         StackBehaviour.Pop1_pop1, StackBehaviour.Pushi);
1202
1203                 public static readonly OpCode Cgt_Un = new OpCode (
1204                         0xfe, 0x03,
1205                         Code.Cgt_Un, FlowControl.Next,
1206                         OpCodeType.Primitive, OperandType.InlineNone,
1207                         StackBehaviour.Pop1_pop1, StackBehaviour.Pushi);
1208
1209                 public static readonly OpCode Clt = new OpCode (
1210                         0xfe, 0x04,
1211                         Code.Clt, FlowControl.Next,
1212                         OpCodeType.Primitive, OperandType.InlineNone,
1213                         StackBehaviour.Pop1_pop1, StackBehaviour.Pushi);
1214
1215                 public static readonly OpCode Clt_Un = new OpCode (
1216                         0xfe, 0x05,
1217                         Code.Clt_Un, FlowControl.Next,
1218                         OpCodeType.Primitive, OperandType.InlineNone,
1219                         StackBehaviour.Pop1_pop1, StackBehaviour.Pushi);
1220
1221                 public static readonly OpCode Ldftn = new OpCode (
1222                         0xfe, 0x06,
1223                         Code.Ldftn, FlowControl.Next,
1224                         OpCodeType.Primitive, OperandType.InlineMethod,
1225                         StackBehaviour.Pop0, StackBehaviour.Pushi);
1226
1227                 public static readonly OpCode Ldvirtftn = new OpCode (
1228                         0xfe, 0x07,
1229                         Code.Ldvirtftn, FlowControl.Next,
1230                         OpCodeType.Primitive, OperandType.InlineMethod,
1231                         StackBehaviour.Popref, StackBehaviour.Pushi);
1232
1233                 public static readonly OpCode Ldarg = new OpCode (
1234                         0xfe, 0x09,
1235                         Code.Ldarg, FlowControl.Next,
1236                         OpCodeType.Primitive, OperandType.InlineParam,
1237                         StackBehaviour.Pop0, StackBehaviour.Push1);
1238
1239                 public static readonly OpCode Ldarga = new OpCode (
1240                         0xfe, 0x0a,
1241                         Code.Ldarga, FlowControl.Next,
1242                         OpCodeType.Primitive, OperandType.InlineParam,
1243                         StackBehaviour.Pop0, StackBehaviour.Pushi);
1244
1245                 public static readonly OpCode Starg = new OpCode (
1246                         0xfe, 0x0b,
1247                         Code.Starg, FlowControl.Next,
1248                         OpCodeType.Primitive, OperandType.InlineParam,
1249                         StackBehaviour.Pop1, StackBehaviour.Push0);
1250
1251                 public static readonly OpCode Ldloc = new OpCode (
1252                         0xfe, 0x0c,
1253                         Code.Ldloc, FlowControl.Next,
1254                         OpCodeType.Primitive, OperandType.InlineVar,
1255                         StackBehaviour.Pop0, StackBehaviour.Push1);
1256
1257                 public static readonly OpCode Ldloca = new OpCode (
1258                         0xfe, 0x0d,
1259                         Code.Ldloca, FlowControl.Next,
1260                         OpCodeType.Primitive, OperandType.InlineVar,
1261                         StackBehaviour.Pop0, StackBehaviour.Pushi);
1262
1263                 public static readonly OpCode Stloc = new OpCode (
1264                         0xfe, 0x0e,
1265                         Code.Stloc, FlowControl.Next,
1266                         OpCodeType.Primitive, OperandType.InlineVar,
1267                         StackBehaviour.Pop1, StackBehaviour.Push0);
1268
1269                 public static readonly OpCode Localloc = new OpCode (
1270                         0xfe, 0x0f,
1271                         Code.Localloc, FlowControl.Next,
1272                         OpCodeType.Primitive, OperandType.InlineNone,
1273                         StackBehaviour.Popi, StackBehaviour.Pushi);
1274
1275                 public static readonly OpCode Endfilter = new OpCode (
1276                         0xfe, 0x11,
1277                         Code.Endfilter, FlowControl.Return,
1278                         OpCodeType.Primitive, OperandType.InlineNone,
1279                         StackBehaviour.Popi, StackBehaviour.Push0);
1280
1281                 public static readonly OpCode Unaligned = new OpCode (
1282                         0xfe, 0x12,
1283                         Code.Unaligned, FlowControl.Meta,
1284                         OpCodeType.Prefix, OperandType.ShortInlineI,
1285                         StackBehaviour.Pop0, StackBehaviour.Push0);
1286
1287                 public static readonly OpCode Volatile = new OpCode (
1288                         0xfe, 0x13,
1289                         Code.Volatile, FlowControl.Meta,
1290                         OpCodeType.Prefix, OperandType.InlineNone,
1291                         StackBehaviour.Pop0, StackBehaviour.Push0);
1292
1293                 public static readonly OpCode Tail = new OpCode (
1294                         0xfe, 0x14,
1295                         Code.Tail, FlowControl.Meta,
1296                         OpCodeType.Prefix, OperandType.InlineNone,
1297                         StackBehaviour.Pop0, StackBehaviour.Push0);
1298
1299                 public static readonly OpCode Initobj = new OpCode (
1300                         0xfe, 0x15,
1301                         Code.Initobj, FlowControl.Next,
1302                         OpCodeType.Objmodel, OperandType.InlineType,
1303                         StackBehaviour.Popi, StackBehaviour.Push0);
1304
1305                 public static readonly OpCode Constrained = new OpCode (
1306                         0xfe, 0x16,
1307                         Code.Constrained, FlowControl.Next,
1308                         OpCodeType.Prefix, OperandType.InlineType,
1309                         StackBehaviour.Pop0, StackBehaviour.Push0);
1310
1311                 public static readonly OpCode Cpblk = new OpCode (
1312                         0xfe, 0x17,
1313                         Code.Cpblk, FlowControl.Next,
1314                         OpCodeType.Primitive, OperandType.InlineNone,
1315                         StackBehaviour.Popi_popi_popi, StackBehaviour.Push0);
1316
1317                 public static readonly OpCode Initblk = new OpCode (
1318                         0xfe, 0x18,
1319                         Code.Initblk, FlowControl.Next,
1320                         OpCodeType.Primitive, OperandType.InlineNone,
1321                         StackBehaviour.Popi_popi_popi, StackBehaviour.Push0);
1322
1323                 public static readonly OpCode No = new OpCode (
1324                         0xfe, 0x19,
1325                         Code.No, FlowControl.Next,
1326                         OpCodeType.Prefix, OperandType.ShortInlineI,
1327                         StackBehaviour.Pop0, StackBehaviour.Push0);
1328
1329                 public static readonly OpCode Rethrow = new OpCode (
1330                         0xfe, 0x1a,
1331                         Code.Rethrow, FlowControl.Throw,
1332                         OpCodeType.Objmodel, OperandType.InlineNone,
1333                         StackBehaviour.Pop0, StackBehaviour.Push0);
1334
1335                 public static readonly OpCode Sizeof = new OpCode (
1336                         0xfe, 0x1c,
1337                         Code.Sizeof, FlowControl.Next,
1338                         OpCodeType.Primitive, OperandType.InlineType,
1339                         StackBehaviour.Pop0, StackBehaviour.Pushi);
1340
1341                 public static readonly OpCode Refanytype = new OpCode (
1342                         0xfe, 0x1d,
1343                         Code.Refanytype, FlowControl.Next,
1344                         OpCodeType.Primitive, OperandType.InlineNone,
1345                         StackBehaviour.Pop1, StackBehaviour.Pushi);
1346
1347                 public static readonly OpCode Readonly = new OpCode (
1348                         0xfe, 0x1e,
1349                         Code.Readonly, FlowControl.Next,
1350                         OpCodeType.Prefix, OperandType.InlineNone,
1351                         StackBehaviour.Pop0, StackBehaviour.Push0);
1352
1353                 OpCodes ()
1354                 {
1355                 }
1356
1357                 public static OpCode GetOpCode (Code code)
1358                 {
1359                         switch (code) {
1360                         case Code.Nop : return OpCodes.Nop;
1361                         case Code.Break : return OpCodes.Break;
1362                         case Code.Ldarg_0 : return OpCodes.Ldarg_0;
1363                         case Code.Ldarg_1 : return OpCodes.Ldarg_1;
1364                         case Code.Ldarg_2 : return OpCodes.Ldarg_2;
1365                         case Code.Ldarg_3 : return OpCodes.Ldarg_3;
1366                         case Code.Ldloc_0 : return OpCodes.Ldloc_0;
1367                         case Code.Ldloc_1 : return OpCodes.Ldloc_1;
1368                         case Code.Ldloc_2 : return OpCodes.Ldloc_2;
1369                         case Code.Ldloc_3 : return OpCodes.Ldloc_3;
1370                         case Code.Stloc_0 : return OpCodes.Stloc_0;
1371                         case Code.Stloc_1 : return OpCodes.Stloc_1;
1372                         case Code.Stloc_2 : return OpCodes.Stloc_2;
1373                         case Code.Stloc_3 : return OpCodes.Stloc_3;
1374                         case Code.Ldarg_S : return OpCodes.Ldarg_S;
1375                         case Code.Ldarga_S : return OpCodes.Ldarga_S;
1376                         case Code.Starg_S : return OpCodes.Starg_S;
1377                         case Code.Ldloc_S : return OpCodes.Ldloc_S;
1378                         case Code.Ldloca_S : return OpCodes.Ldloca_S;
1379                         case Code.Stloc_S : return OpCodes.Stloc_S;
1380                         case Code.Ldnull : return OpCodes.Ldnull;
1381                         case Code.Ldc_I4_M1 : return OpCodes.Ldc_I4_M1;
1382                         case Code.Ldc_I4_0 : return OpCodes.Ldc_I4_0;
1383                         case Code.Ldc_I4_1 : return OpCodes.Ldc_I4_1;
1384                         case Code.Ldc_I4_2 : return OpCodes.Ldc_I4_2;
1385                         case Code.Ldc_I4_3 : return OpCodes.Ldc_I4_3;
1386                         case Code.Ldc_I4_4 : return OpCodes.Ldc_I4_4;
1387                         case Code.Ldc_I4_5 : return OpCodes.Ldc_I4_5;
1388                         case Code.Ldc_I4_6 : return OpCodes.Ldc_I4_6;
1389                         case Code.Ldc_I4_7 : return OpCodes.Ldc_I4_7;
1390                         case Code.Ldc_I4_8 : return OpCodes.Ldc_I4_8;
1391                         case Code.Ldc_I4_S : return OpCodes.Ldc_I4_S;
1392                         case Code.Ldc_I4 : return OpCodes.Ldc_I4;
1393                         case Code.Ldc_I8 : return OpCodes.Ldc_I8;
1394                         case Code.Ldc_R4 : return OpCodes.Ldc_R4;
1395                         case Code.Ldc_R8 : return OpCodes.Ldc_R8;
1396                         case Code.Dup : return OpCodes.Dup;
1397                         case Code.Pop : return OpCodes.Pop;
1398                         case Code.Jmp : return OpCodes.Jmp;
1399                         case Code.Call : return OpCodes.Call;
1400                         case Code.Calli : return OpCodes.Calli;
1401                         case Code.Ret : return OpCodes.Ret;
1402                         case Code.Br_S : return OpCodes.Br_S;
1403                         case Code.Brfalse_S : return OpCodes.Brfalse_S;
1404                         case Code.Brtrue_S : return OpCodes.Brtrue_S;
1405                         case Code.Beq_S : return OpCodes.Beq_S;
1406                         case Code.Bge_S : return OpCodes.Bge_S;
1407                         case Code.Bgt_S : return OpCodes.Bgt_S;
1408                         case Code.Ble_S : return OpCodes.Ble_S;
1409                         case Code.Blt_S : return OpCodes.Blt_S;
1410                         case Code.Bne_Un_S : return OpCodes.Bne_Un_S;
1411                         case Code.Bge_Un_S : return OpCodes.Bge_Un_S;
1412                         case Code.Bgt_Un_S : return OpCodes.Bgt_Un_S;
1413                         case Code.Ble_Un_S : return OpCodes.Ble_Un_S;
1414                         case Code.Blt_Un_S : return OpCodes.Blt_Un_S;
1415                         case Code.Br : return OpCodes.Br;
1416                         case Code.Brfalse : return OpCodes.Brfalse;
1417                         case Code.Brtrue : return OpCodes.Brtrue;
1418                         case Code.Beq : return OpCodes.Beq;
1419                         case Code.Bge : return OpCodes.Bge;
1420                         case Code.Bgt : return OpCodes.Bgt;
1421                         case Code.Ble : return OpCodes.Ble;
1422                         case Code.Blt : return OpCodes.Blt;
1423                         case Code.Bne_Un : return OpCodes.Bne_Un;
1424                         case Code.Bge_Un : return OpCodes.Bge_Un;
1425                         case Code.Bgt_Un : return OpCodes.Bgt_Un;
1426                         case Code.Ble_Un : return OpCodes.Ble_Un;
1427                         case Code.Blt_Un : return OpCodes.Blt_Un;
1428                         case Code.Switch : return OpCodes.Switch;
1429                         case Code.Ldind_I1 : return OpCodes.Ldind_I1;
1430                         case Code.Ldind_U1 : return OpCodes.Ldind_U1;
1431                         case Code.Ldind_I2 : return OpCodes.Ldind_I2;
1432                         case Code.Ldind_U2 : return OpCodes.Ldind_U2;
1433                         case Code.Ldind_I4 : return OpCodes.Ldind_I4;
1434                         case Code.Ldind_U4 : return OpCodes.Ldind_U4;
1435                         case Code.Ldind_I8 : return OpCodes.Ldind_I8;
1436                         case Code.Ldind_I : return OpCodes.Ldind_I;
1437                         case Code.Ldind_R4 : return OpCodes.Ldind_R4;
1438                         case Code.Ldind_R8 : return OpCodes.Ldind_R8;
1439                         case Code.Ldind_Ref : return OpCodes.Ldind_Ref;
1440                         case Code.Stind_Ref : return OpCodes.Stind_Ref;
1441                         case Code.Stind_I1 : return OpCodes.Stind_I1;
1442                         case Code.Stind_I2 : return OpCodes.Stind_I2;
1443                         case Code.Stind_I4 : return OpCodes.Stind_I4;
1444                         case Code.Stind_I8 : return OpCodes.Stind_I8;
1445                         case Code.Stind_R4 : return OpCodes.Stind_R4;
1446                         case Code.Stind_R8 : return OpCodes.Stind_R8;
1447                         case Code.Add : return OpCodes.Add;
1448                         case Code.Sub : return OpCodes.Sub;
1449                         case Code.Mul : return OpCodes.Mul;
1450                         case Code.Div : return OpCodes.Div;
1451                         case Code.Div_Un : return OpCodes.Div_Un;
1452                         case Code.Rem : return OpCodes.Rem;
1453                         case Code.Rem_Un : return OpCodes.Rem_Un;
1454                         case Code.And : return OpCodes.And;
1455                         case Code.Or : return OpCodes.Or;
1456                         case Code.Xor : return OpCodes.Xor;
1457                         case Code.Shl : return OpCodes.Shl;
1458                         case Code.Shr : return OpCodes.Shr;
1459                         case Code.Shr_Un : return OpCodes.Shr_Un;
1460                         case Code.Neg : return OpCodes.Neg;
1461                         case Code.Not : return OpCodes.Not;
1462                         case Code.Conv_I1 : return OpCodes.Conv_I1;
1463                         case Code.Conv_I2 : return OpCodes.Conv_I2;
1464                         case Code.Conv_I4 : return OpCodes.Conv_I4;
1465                         case Code.Conv_I8 : return OpCodes.Conv_I8;
1466                         case Code.Conv_R4 : return OpCodes.Conv_R4;
1467                         case Code.Conv_R8 : return OpCodes.Conv_R8;
1468                         case Code.Conv_U4 : return OpCodes.Conv_U4;
1469                         case Code.Conv_U8 : return OpCodes.Conv_U8;
1470                         case Code.Callvirt : return OpCodes.Callvirt;
1471                         case Code.Cpobj : return OpCodes.Cpobj;
1472                         case Code.Ldobj : return OpCodes.Ldobj;
1473                         case Code.Ldstr : return OpCodes.Ldstr;
1474                         case Code.Newobj : return OpCodes.Newobj;
1475                         case Code.Castclass : return OpCodes.Castclass;
1476                         case Code.Isinst : return OpCodes.Isinst;
1477                         case Code.Conv_R_Un : return OpCodes.Conv_R_Un;
1478                         case Code.Unbox : return OpCodes.Unbox;
1479                         case Code.Throw : return OpCodes.Throw;
1480                         case Code.Ldfld : return OpCodes.Ldfld;
1481                         case Code.Ldflda : return OpCodes.Ldflda;
1482                         case Code.Stfld : return OpCodes.Stfld;
1483                         case Code.Ldsfld : return OpCodes.Ldsfld;
1484                         case Code.Ldsflda : return OpCodes.Ldsflda;
1485                         case Code.Stsfld : return OpCodes.Stsfld;
1486                         case Code.Stobj : return OpCodes.Stobj;
1487                         case Code.Conv_Ovf_I1_Un : return OpCodes.Conv_Ovf_I1_Un;
1488                         case Code.Conv_Ovf_I2_Un : return OpCodes.Conv_Ovf_I2_Un;
1489                         case Code.Conv_Ovf_I4_Un : return OpCodes.Conv_Ovf_I4_Un;
1490                         case Code.Conv_Ovf_I8_Un : return OpCodes.Conv_Ovf_I8_Un;
1491                         case Code.Conv_Ovf_U1_Un : return OpCodes.Conv_Ovf_U1_Un;
1492                         case Code.Conv_Ovf_U2_Un : return OpCodes.Conv_Ovf_U2_Un;
1493                         case Code.Conv_Ovf_U4_Un : return OpCodes.Conv_Ovf_U4_Un;
1494                         case Code.Conv_Ovf_U8_Un : return OpCodes.Conv_Ovf_U8_Un;
1495                         case Code.Conv_Ovf_I_Un : return OpCodes.Conv_Ovf_I_Un;
1496                         case Code.Conv_Ovf_U_Un : return OpCodes.Conv_Ovf_U_Un;
1497                         case Code.Box : return OpCodes.Box;
1498                         case Code.Newarr : return OpCodes.Newarr;
1499                         case Code.Ldlen : return OpCodes.Ldlen;
1500                         case Code.Ldelema : return OpCodes.Ldelema;
1501                         case Code.Ldelem_I1 : return OpCodes.Ldelem_I1;
1502                         case Code.Ldelem_U1 : return OpCodes.Ldelem_U1;
1503                         case Code.Ldelem_I2 : return OpCodes.Ldelem_I2;
1504                         case Code.Ldelem_U2 : return OpCodes.Ldelem_U2;
1505                         case Code.Ldelem_I4 : return OpCodes.Ldelem_I4;
1506                         case Code.Ldelem_U4 : return OpCodes.Ldelem_U4;
1507                         case Code.Ldelem_I8 : return OpCodes.Ldelem_I8;
1508                         case Code.Ldelem_I : return OpCodes.Ldelem_I;
1509                         case Code.Ldelem_R4 : return OpCodes.Ldelem_R4;
1510                         case Code.Ldelem_R8 : return OpCodes.Ldelem_R8;
1511                         case Code.Ldelem_Ref : return OpCodes.Ldelem_Ref;
1512                         case Code.Stelem_I : return OpCodes.Stelem_I;
1513                         case Code.Stelem_I1 : return OpCodes.Stelem_I1;
1514                         case Code.Stelem_I2 : return OpCodes.Stelem_I2;
1515                         case Code.Stelem_I4 : return OpCodes.Stelem_I4;
1516                         case Code.Stelem_I8 : return OpCodes.Stelem_I8;
1517                         case Code.Stelem_R4 : return OpCodes.Stelem_R4;
1518                         case Code.Stelem_R8 : return OpCodes.Stelem_R8;
1519                         case Code.Stelem_Ref : return OpCodes.Stelem_Ref;
1520                         case Code.Ldelem_Any : return OpCodes.Ldelem_Any;
1521                         case Code.Stelem_Any : return OpCodes.Stelem_Any;
1522                         case Code.Unbox_Any : return OpCodes.Unbox_Any;
1523                         case Code.Conv_Ovf_I1 : return OpCodes.Conv_Ovf_I1;
1524                         case Code.Conv_Ovf_U1 : return OpCodes.Conv_Ovf_U1;
1525                         case Code.Conv_Ovf_I2 : return OpCodes.Conv_Ovf_I2;
1526                         case Code.Conv_Ovf_U2 : return OpCodes.Conv_Ovf_U2;
1527                         case Code.Conv_Ovf_I4 : return OpCodes.Conv_Ovf_I4;
1528                         case Code.Conv_Ovf_U4 : return OpCodes.Conv_Ovf_U4;
1529                         case Code.Conv_Ovf_I8 : return OpCodes.Conv_Ovf_I8;
1530                         case Code.Conv_Ovf_U8 : return OpCodes.Conv_Ovf_U8;
1531                         case Code.Refanyval : return OpCodes.Refanyval;
1532                         case Code.Ckfinite : return OpCodes.Ckfinite;
1533                         case Code.Mkrefany : return OpCodes.Mkrefany;
1534                         case Code.Ldtoken : return OpCodes.Ldtoken;
1535                         case Code.Conv_U2 : return OpCodes.Conv_U2;
1536                         case Code.Conv_U1 : return OpCodes.Conv_U1;
1537                         case Code.Conv_I : return OpCodes.Conv_I;
1538                         case Code.Conv_Ovf_I : return OpCodes.Conv_Ovf_I;
1539                         case Code.Conv_Ovf_U : return OpCodes.Conv_Ovf_U;
1540                         case Code.Add_Ovf : return OpCodes.Add_Ovf;
1541                         case Code.Add_Ovf_Un : return OpCodes.Add_Ovf_Un;
1542                         case Code.Mul_Ovf : return OpCodes.Mul_Ovf;
1543                         case Code.Mul_Ovf_Un : return OpCodes.Mul_Ovf_Un;
1544                         case Code.Sub_Ovf : return OpCodes.Sub_Ovf;
1545                         case Code.Sub_Ovf_Un : return OpCodes.Sub_Ovf_Un;
1546                         case Code.Endfinally : return OpCodes.Endfinally;
1547                         case Code.Leave : return OpCodes.Leave;
1548                         case Code.Leave_S : return OpCodes.Leave_S;
1549                         case Code.Stind_I : return OpCodes.Stind_I;
1550                         case Code.Conv_U : return OpCodes.Conv_U;
1551                         case Code.Arglist : return OpCodes.Arglist;
1552                         case Code.Ceq : return OpCodes.Ceq;
1553                         case Code.Cgt : return OpCodes.Cgt;
1554                         case Code.Cgt_Un : return OpCodes.Cgt_Un;
1555                         case Code.Clt : return OpCodes.Clt;
1556                         case Code.Clt_Un : return OpCodes.Clt_Un;
1557                         case Code.Ldftn : return OpCodes.Ldftn;
1558                         case Code.Ldvirtftn : return OpCodes.Ldvirtftn;
1559                         case Code.Ldarg : return OpCodes.Ldarg;
1560                         case Code.Ldarga : return OpCodes.Ldarga;
1561                         case Code.Starg : return OpCodes.Starg;
1562                         case Code.Ldloc : return OpCodes.Ldloc;
1563                         case Code.Ldloca : return OpCodes.Ldloca;
1564                         case Code.Stloc : return OpCodes.Stloc;
1565                         case Code.Localloc : return OpCodes.Localloc;
1566                         case Code.Endfilter : return OpCodes.Endfilter;
1567                         case Code.Unaligned : return OpCodes.Unaligned;
1568                         case Code.Volatile : return OpCodes.Volatile;
1569                         case Code.Tail : return OpCodes.Tail;
1570                         case Code.Initobj : return OpCodes.Initobj;
1571                         case Code.Constrained : return OpCodes.Constrained;
1572                         case Code.Cpblk : return OpCodes.Cpblk;
1573                         case Code.Initblk : return OpCodes.Initblk;
1574                         case Code.No : return OpCodes.No;
1575                         case Code.Rethrow : return OpCodes.Rethrow;
1576                         case Code.Sizeof : return OpCodes.Sizeof;
1577                         case Code.Refanytype : return OpCodes.Refanytype;
1578                         case Code.Readonly : return OpCodes.Readonly;
1579                         default : return OpCodes.Nop;
1580                         }
1581                 }
1582         }
1583 }