do not check order sequence if option /order was not used
[mono.git] / mcs / class / IKVM.Reflection / Emit / OpCodes.cs
1 /*
2   Copyright (C) 2008 Jeroen Frijters
3
4   This software is provided 'as-is', without any express or implied
5   warranty.  In no event will the authors be held liable for any damages
6   arising from the use of this software.
7
8   Permission is granted to anyone to use this software for any purpose,
9   including commercial applications, and to alter it and redistribute it
10   freely, subject to the following restrictions:
11
12   1. The origin of this software must not be misrepresented; you must not
13      claim that you wrote the original software. If you use this software
14      in a product, an acknowledgment in the product documentation would be
15      appreciated but is not required.
16   2. Altered source versions must be plainly marked as such, and must not be
17      misrepresented as being the original software.
18   3. This notice may not be removed or altered from any source distribution.
19
20   Jeroen Frijters
21   jeroen@frijters.net
22   
23 */
24 using System;
25
26 namespace IKVM.Reflection.Emit
27 {
28         public sealed class OpCodes
29         {
30                 public static readonly OpCode Nop = new OpCode(4888);
31                 public static readonly OpCode Break = new OpCode(4199116);
32                 public static readonly OpCode Ldarg_0 = new OpCode(8492847);
33                 public static readonly OpCode Ldarg_1 = new OpCode(12687151);
34                 public static readonly OpCode Ldarg_2 = new OpCode(16881455);
35                 public static readonly OpCode Ldarg_3 = new OpCode(21075759);
36                 public static readonly OpCode Ldloc_0 = new OpCode(25270063);
37                 public static readonly OpCode Ldloc_1 = new OpCode(29464367);
38                 public static readonly OpCode Ldloc_2 = new OpCode(33658671);
39                 public static readonly OpCode Ldloc_3 = new OpCode(37852975);
40                 public static readonly OpCode Stloc_0 = new OpCode(41949467);
41                 public static readonly OpCode Stloc_1 = new OpCode(46143771);
42                 public static readonly OpCode Stloc_2 = new OpCode(50338075);
43                 public static readonly OpCode Stloc_3 = new OpCode(54532379);
44                 public static readonly OpCode Ldarg_S = new OpCode(58824508);
45                 public static readonly OpCode Ldarga_S = new OpCode(63224012);
46                 public static readonly OpCode Starg_S = new OpCode(67115304);
47                 public static readonly OpCode Ldloc_S = new OpCode(71407420);
48                 public static readonly OpCode Ldloca_S = new OpCode(75806924);
49                 public static readonly OpCode Stloc_S = new OpCode(79698216);
50                 public static readonly OpCode Ldnull = new OpCode(84609339);
51                 public static readonly OpCode Ldc_I4_M1 = new OpCode(88389823);
52                 public static readonly OpCode Ldc_I4_0 = new OpCode(92584127);
53                 public static readonly OpCode Ldc_I4_1 = new OpCode(96778431);
54                 public static readonly OpCode Ldc_I4_2 = new OpCode(100972735);
55                 public static readonly OpCode Ldc_I4_3 = new OpCode(105167039);
56                 public static readonly OpCode Ldc_I4_4 = new OpCode(109361343);
57                 public static readonly OpCode Ldc_I4_5 = new OpCode(113555647);
58                 public static readonly OpCode Ldc_I4_6 = new OpCode(117749951);
59                 public static readonly OpCode Ldc_I4_7 = new OpCode(121944255);
60                 public static readonly OpCode Ldc_I4_8 = new OpCode(126138559);
61                 public static readonly OpCode Ldc_I4_S = new OpCode(130332874);
62                 public static readonly OpCode Ldc_I4 = new OpCode(134530584);
63                 public static readonly OpCode Ldc_I8 = new OpCode(138827489);
64                 public static readonly OpCode Ldc_R4 = new OpCode(143124407);
65                 public static readonly OpCode Ldc_R8 = new OpCode(147421301);
66                 public static readonly OpCode Dup = new OpCode(155404637);
67                 public static readonly OpCode Pop = new OpCode(159393399);
68                 public static readonly OpCode Jmp = new OpCode(163582686);
69                 public static readonly OpCode Call = new OpCode(168690130);
70                 public static readonly OpCode Calli = new OpCode(172884439);
71                 public static readonly OpCode Ret = new OpCode(176258034);
72                 public static readonly OpCode Br_S = new OpCode(180356455);
73                 public static readonly OpCode Brfalse_S = new OpCode(184566035);
74                 public static readonly OpCode Brtrue_S = new OpCode(188760339);
75                 public static readonly OpCode Beq_S = new OpCode(192949342);
76                 public static readonly OpCode Bge_S = new OpCode(197143646);
77                 public static readonly OpCode Bgt_S = new OpCode(201337950);
78                 public static readonly OpCode Ble_S = new OpCode(205532254);
79                 public static readonly OpCode Blt_S = new OpCode(209726558);
80                 public static readonly OpCode Bne_Un_S = new OpCode(213920862);
81                 public static readonly OpCode Bge_Un_S = new OpCode(218115166);
82                 public static readonly OpCode Bgt_Un_S = new OpCode(222309470);
83                 public static readonly OpCode Ble_Un_S = new OpCode(226503774);
84                 public static readonly OpCode Blt_Un_S = new OpCode(230698078);
85                 public static readonly OpCode Br = new OpCode(234885812);
86                 public static readonly OpCode Brfalse = new OpCode(239095392);
87                 public static readonly OpCode Brtrue = new OpCode(243289696);
88                 public static readonly OpCode Beq = new OpCode(247475279);
89                 public static readonly OpCode Bge = new OpCode(251669583);
90                 public static readonly OpCode Bgt = new OpCode(255863887);
91                 public static readonly OpCode Ble = new OpCode(260058191);
92                 public static readonly OpCode Blt = new OpCode(264252495);
93                 public static readonly OpCode Bne_Un = new OpCode(268446799);
94                 public static readonly OpCode Bge_Un = new OpCode(272641103);
95                 public static readonly OpCode Bgt_Un = new OpCode(276835407);
96                 public static readonly OpCode Ble_Un = new OpCode(281029711);
97                 public static readonly OpCode Blt_Un = new OpCode(285224015);
98                 public static readonly OpCode Switch = new OpCode(289427051);
99                 public static readonly OpCode Ldind_I1 = new OpCode(293929358);
100                 public static readonly OpCode Ldind_U1 = new OpCode(298123662);
101                 public static readonly OpCode Ldind_I2 = new OpCode(302317966);
102                 public static readonly OpCode Ldind_U2 = new OpCode(306512270);
103                 public static readonly OpCode Ldind_I4 = new OpCode(310706574);
104                 public static readonly OpCode Ldind_U4 = new OpCode(314900878);
105                 public static readonly OpCode Ldind_I8 = new OpCode(319197782);
106                 public static readonly OpCode Ldind_I = new OpCode(323289486);
107                 public static readonly OpCode Ldind_R4 = new OpCode(327688990);
108                 public static readonly OpCode Ldind_R8 = new OpCode(331985894);
109                 public static readonly OpCode Ldind_Ref = new OpCode(336282798);
110                 public static readonly OpCode Stind_Ref = new OpCode(339768820);
111                 public static readonly OpCode Stind_I1 = new OpCode(343963124);
112                 public static readonly OpCode Stind_I2 = new OpCode(348157428);
113                 public static readonly OpCode Stind_I4 = new OpCode(352351732);
114                 public static readonly OpCode Stind_I8 = new OpCode(356551166);
115                 public static readonly OpCode Stind_R4 = new OpCode(360755730);
116                 public static readonly OpCode Stind_R8 = new OpCode(364955164);
117                 public static readonly OpCode Add = new OpCode(369216329);
118                 public static readonly OpCode Sub = new OpCode(373410633);
119                 public static readonly OpCode Mul = new OpCode(377604937);
120                 public static readonly OpCode Div = new OpCode(381799241);
121                 public static readonly OpCode Div_Un = new OpCode(385993545);
122                 public static readonly OpCode Rem = new OpCode(390187849);
123                 public static readonly OpCode Rem_Un = new OpCode(394382153);
124                 public static readonly OpCode And = new OpCode(398576457);
125                 public static readonly OpCode Or = new OpCode(402770761);
126                 public static readonly OpCode Xor = new OpCode(406965065);
127                 public static readonly OpCode Shl = new OpCode(411159369);
128                 public static readonly OpCode Shr = new OpCode(415353673);
129                 public static readonly OpCode Shr_Un = new OpCode(419547977);
130                 public static readonly OpCode Neg = new OpCode(423737322);
131                 public static readonly OpCode Not = new OpCode(427931626);
132                 public static readonly OpCode Conv_I1 = new OpCode(432331130);
133                 public static readonly OpCode Conv_I2 = new OpCode(436525434);
134                 public static readonly OpCode Conv_I4 = new OpCode(440719738);
135                 public static readonly OpCode Conv_I8 = new OpCode(445016642);
136                 public static readonly OpCode Conv_R4 = new OpCode(449313546);
137                 public static readonly OpCode Conv_R8 = new OpCode(453610450);
138                 public static readonly OpCode Conv_U4 = new OpCode(457496954);
139                 public static readonly OpCode Conv_U8 = new OpCode(461793858);
140                 public static readonly OpCode Callvirt = new OpCode(466484004);
141                 public static readonly OpCode Cpobj = new OpCode(469790542);
142                 public static readonly OpCode Ldobj = new OpCode(474077528);
143                 public static readonly OpCode Ldstr = new OpCode(478872210);
144                 public static readonly OpCode Newobj = new OpCode(483158791);
145                 public static readonly OpCode Castclass = new OpCode(487311950);
146                 public static readonly OpCode Isinst = new OpCode(491095854);
147                 public static readonly OpCode Conv_R_Un = new OpCode(495553490);
148                 public static readonly OpCode Unbox = new OpCode(507874780);
149                 public static readonly OpCode Throw = new OpCode(511759452);
150                 public static readonly OpCode Ldfld = new OpCode(516056466);
151                 public static readonly OpCode Ldflda = new OpCode(520455970);
152                 public static readonly OpCode Stfld = new OpCode(524347262);
153                 public static readonly OpCode Ldsfld = new OpCode(528588249);
154                 public static readonly OpCode Ldsflda = new OpCode(532987753);
155                 public static readonly OpCode Stsfld = new OpCode(536879045);
156                 public static readonly OpCode Stobj = new OpCode(541090290);
157                 public static readonly OpCode Conv_Ovf_I1_Un = new OpCode(545577338);
158                 public static readonly OpCode Conv_Ovf_I2_Un = new OpCode(549771642);
159                 public static readonly OpCode Conv_Ovf_I4_Un = new OpCode(553965946);
160                 public static readonly OpCode Conv_Ovf_I8_Un = new OpCode(558262850);
161                 public static readonly OpCode Conv_Ovf_U1_Un = new OpCode(562354554);
162                 public static readonly OpCode Conv_Ovf_U2_Un = new OpCode(566548858);
163                 public static readonly OpCode Conv_Ovf_U4_Un = new OpCode(570743162);
164                 public static readonly OpCode Conv_Ovf_U8_Un = new OpCode(575040066);
165                 public static readonly OpCode Conv_Ovf_I_Un = new OpCode(579131770);
166                 public static readonly OpCode Conv_Ovf_U_Un = new OpCode(583326074);
167                 public static readonly OpCode Box = new OpCode(587930786);
168                 public static readonly OpCode Newarr = new OpCode(592133640);
169                 public static readonly OpCode Ldlen = new OpCode(595953446);
170                 public static readonly OpCode Ldelema = new OpCode(600157847);
171                 public static readonly OpCode Ldelem_I1 = new OpCode(604352143);
172                 public static readonly OpCode Ldelem_U1 = new OpCode(608546447);
173                 public static readonly OpCode Ldelem_I2 = new OpCode(612740751);
174                 public static readonly OpCode Ldelem_U2 = new OpCode(616935055);
175                 public static readonly OpCode Ldelem_I4 = new OpCode(621129359);
176                 public static readonly OpCode Ldelem_U4 = new OpCode(625323663);
177                 public static readonly OpCode Ldelem_I8 = new OpCode(629620567);
178                 public static readonly OpCode Ldelem_I = new OpCode(633712271);
179                 public static readonly OpCode Ldelem_R4 = new OpCode(638111775);
180                 public static readonly OpCode Ldelem_R8 = new OpCode(642408679);
181                 public static readonly OpCode Ldelem_Ref = new OpCode(646705583);
182                 public static readonly OpCode Stelem_I = new OpCode(650186475);
183                 public static readonly OpCode Stelem_I1 = new OpCode(654380779);
184                 public static readonly OpCode Stelem_I2 = new OpCode(658575083);
185                 public static readonly OpCode Stelem_I4 = new OpCode(662769387);
186                 public static readonly OpCode Stelem_I8 = new OpCode(666968821);
187                 public static readonly OpCode Stelem_R4 = new OpCode(671168255);
188                 public static readonly OpCode Stelem_R8 = new OpCode(675367689);
189                 public static readonly OpCode Stelem_Ref = new OpCode(679567123);
190                 public static readonly OpCode Ldelem = new OpCode(683838727);
191                 public static readonly OpCode Stelem = new OpCode(687965999);
192                 public static readonly OpCode Unbox_Any = new OpCode(692217246);
193                 public static readonly OpCode Conv_Ovf_I1 = new OpCode(751098234);
194                 public static readonly OpCode Conv_Ovf_U1 = new OpCode(755292538);
195                 public static readonly OpCode Conv_Ovf_I2 = new OpCode(759486842);
196                 public static readonly OpCode Conv_Ovf_U2 = new OpCode(763681146);
197                 public static readonly OpCode Conv_Ovf_I4 = new OpCode(767875450);
198                 public static readonly OpCode Conv_Ovf_U4 = new OpCode(772069754);
199                 public static readonly OpCode Conv_Ovf_I8 = new OpCode(776366658);
200                 public static readonly OpCode Conv_Ovf_U8 = new OpCode(780560962);
201                 public static readonly OpCode Refanyval = new OpCode(814012802);
202                 public static readonly OpCode Ckfinite = new OpCode(818514898);
203                 public static readonly OpCode Mkrefany = new OpCode(830595078);
204                 public static readonly OpCode Ldtoken = new OpCode(872728098);
205                 public static readonly OpCode Conv_U2 = new OpCode(876927354);
206                 public static readonly OpCode Conv_U1 = new OpCode(881121658);
207                 public static readonly OpCode Conv_I = new OpCode(885315962);
208                 public static readonly OpCode Conv_Ovf_I = new OpCode(889510266);
209                 public static readonly OpCode Conv_Ovf_U = new OpCode(893704570);
210                 public static readonly OpCode Add_Ovf = new OpCode(897698633);
211                 public static readonly OpCode Add_Ovf_Un = new OpCode(901892937);
212                 public static readonly OpCode Mul_Ovf = new OpCode(906087241);
213                 public static readonly OpCode Mul_Ovf_Un = new OpCode(910281545);
214                 public static readonly OpCode Sub_Ovf = new OpCode(914475849);
215                 public static readonly OpCode Sub_Ovf_Un = new OpCode(918670153);
216                 public static readonly OpCode Endfinally = new OpCode(922751806);
217                 public static readonly OpCode Leave = new OpCode(926945972);
218                 public static readonly OpCode Leave_S = new OpCode(931140291);
219                 public static readonly OpCode Stind_I = new OpCode(935359988);
220                 public static readonly OpCode Conv_U = new OpCode(939841914);
221                 public static readonly OpCode Prefix7 = new OpCode(1040189696);
222                 public static readonly OpCode Prefix6 = new OpCode(1044384000);
223                 public static readonly OpCode Prefix5 = new OpCode(1048578304);
224                 public static readonly OpCode Prefix4 = new OpCode(1052772608);
225                 public static readonly OpCode Prefix3 = new OpCode(1056966912);
226                 public static readonly OpCode Prefix2 = new OpCode(1061161216);
227                 public static readonly OpCode Prefix1 = new OpCode(1065355520);
228                 public static readonly OpCode Prefixref = new OpCode(1069549824);
229                 public static readonly OpCode Arglist = new OpCode(-2147170789);
230                 public static readonly OpCode Ceq = new OpCode(-2142966567);
231                 public static readonly OpCode Cgt = new OpCode(-2138772263);
232                 public static readonly OpCode Cgt_Un = new OpCode(-2134577959);
233                 public static readonly OpCode Clt = new OpCode(-2130383655);
234                 public static readonly OpCode Clt_Un = new OpCode(-2126189351);
235                 public static readonly OpCode Ldftn = new OpCode(-2122004966);
236                 public static readonly OpCode Ldvirtftn = new OpCode(-2117759533);
237                 public static readonly OpCode Ldarg = new OpCode(-2109627244);
238                 public static readonly OpCode Ldarga = new OpCode(-2105227740);
239                 public static readonly OpCode Starg = new OpCode(-2101336448);
240                 public static readonly OpCode Ldloc = new OpCode(-2097044332);
241                 public static readonly OpCode Ldloca = new OpCode(-2092644828);
242                 public static readonly OpCode Stloc = new OpCode(-2088753536);
243                 public static readonly OpCode Localloc = new OpCode(-2084241010);
244                 public static readonly OpCode Endfilter = new OpCode(-2076160335);
245                 public static readonly OpCode Unaligned = new OpCode(-2071982151);
246                 public static readonly OpCode Volatile = new OpCode(-2067787858);
247                 public static readonly OpCode Tailcall = new OpCode(-2063593554);
248                 public static readonly OpCode Initobj = new OpCode(-2059384859);
249                 public static readonly OpCode Constrained = new OpCode(-2055204938);
250                 public static readonly OpCode Cpblk = new OpCode(-2050974371);
251                 public static readonly OpCode Initblk = new OpCode(-2046780067);
252                 public static readonly OpCode Rethrow = new OpCode(-2038428509);
253                 public static readonly OpCode Sizeof = new OpCode(-2029730269);
254                 public static readonly OpCode Refanytype = new OpCode(-2025531014);
255                 public static readonly OpCode Readonly = new OpCode(-2021650514);
256
257                 internal static string GetName(int value)
258                 {
259                         switch (value)
260                         {
261                                 case 0:
262                                         return "nop";
263                                 case 1:
264                                         return "break";
265                                 case 2:
266                                         return "ldarg.0";
267                                 case 3:
268                                         return "ldarg.1";
269                                 case 4:
270                                         return "ldarg.2";
271                                 case 5:
272                                         return "ldarg.3";
273                                 case 6:
274                                         return "ldloc.0";
275                                 case 7:
276                                         return "ldloc.1";
277                                 case 8:
278                                         return "ldloc.2";
279                                 case 9:
280                                         return "ldloc.3";
281                                 case 10:
282                                         return "stloc.0";
283                                 case 11:
284                                         return "stloc.1";
285                                 case 12:
286                                         return "stloc.2";
287                                 case 13:
288                                         return "stloc.3";
289                                 case 14:
290                                         return "ldarg.s";
291                                 case 15:
292                                         return "ldarga.s";
293                                 case 16:
294                                         return "starg.s";
295                                 case 17:
296                                         return "ldloc.s";
297                                 case 18:
298                                         return "ldloca.s";
299                                 case 19:
300                                         return "stloc.s";
301                                 case 20:
302                                         return "ldnull";
303                                 case 21:
304                                         return "ldc.i4.m1";
305                                 case 22:
306                                         return "ldc.i4.0";
307                                 case 23:
308                                         return "ldc.i4.1";
309                                 case 24:
310                                         return "ldc.i4.2";
311                                 case 25:
312                                         return "ldc.i4.3";
313                                 case 26:
314                                         return "ldc.i4.4";
315                                 case 27:
316                                         return "ldc.i4.5";
317                                 case 28:
318                                         return "ldc.i4.6";
319                                 case 29:
320                                         return "ldc.i4.7";
321                                 case 30:
322                                         return "ldc.i4.8";
323                                 case 31:
324                                         return "ldc.i4.s";
325                                 case 32:
326                                         return "ldc.i4";
327                                 case 33:
328                                         return "ldc.i8";
329                                 case 34:
330                                         return "ldc.r4";
331                                 case 35:
332                                         return "ldc.r8";
333                                 case 37:
334                                         return "dup";
335                                 case 38:
336                                         return "pop";
337                                 case 39:
338                                         return "jmp";
339                                 case 40:
340                                         return "call";
341                                 case 41:
342                                         return "calli";
343                                 case 42:
344                                         return "ret";
345                                 case 43:
346                                         return "br.s";
347                                 case 44:
348                                         return "brfalse.s";
349                                 case 45:
350                                         return "brtrue.s";
351                                 case 46:
352                                         return "beq.s";
353                                 case 47:
354                                         return "bge.s";
355                                 case 48:
356                                         return "bgt.s";
357                                 case 49:
358                                         return "ble.s";
359                                 case 50:
360                                         return "blt.s";
361                                 case 51:
362                                         return "bne.un.s";
363                                 case 52:
364                                         return "bge.un.s";
365                                 case 53:
366                                         return "bgt.un.s";
367                                 case 54:
368                                         return "ble.un.s";
369                                 case 55:
370                                         return "blt.un.s";
371                                 case 56:
372                                         return "br";
373                                 case 57:
374                                         return "brfalse";
375                                 case 58:
376                                         return "brtrue";
377                                 case 59:
378                                         return "beq";
379                                 case 60:
380                                         return "bge";
381                                 case 61:
382                                         return "bgt";
383                                 case 62:
384                                         return "ble";
385                                 case 63:
386                                         return "blt";
387                                 case 64:
388                                         return "bne.un";
389                                 case 65:
390                                         return "bge.un";
391                                 case 66:
392                                         return "bgt.un";
393                                 case 67:
394                                         return "ble.un";
395                                 case 68:
396                                         return "blt.un";
397                                 case 69:
398                                         return "switch";
399                                 case 70:
400                                         return "ldind.i1";
401                                 case 71:
402                                         return "ldind.u1";
403                                 case 72:
404                                         return "ldind.i2";
405                                 case 73:
406                                         return "ldind.u2";
407                                 case 74:
408                                         return "ldind.i4";
409                                 case 75:
410                                         return "ldind.u4";
411                                 case 76:
412                                         return "ldind.i8";
413                                 case 77:
414                                         return "ldind.i";
415                                 case 78:
416                                         return "ldind.r4";
417                                 case 79:
418                                         return "ldind.r8";
419                                 case 80:
420                                         return "ldind.ref";
421                                 case 81:
422                                         return "stind.ref";
423                                 case 82:
424                                         return "stind.i1";
425                                 case 83:
426                                         return "stind.i2";
427                                 case 84:
428                                         return "stind.i4";
429                                 case 85:
430                                         return "stind.i8";
431                                 case 86:
432                                         return "stind.r4";
433                                 case 87:
434                                         return "stind.r8";
435                                 case 88:
436                                         return "add";
437                                 case 89:
438                                         return "sub";
439                                 case 90:
440                                         return "mul";
441                                 case 91:
442                                         return "div";
443                                 case 92:
444                                         return "div.un";
445                                 case 93:
446                                         return "rem";
447                                 case 94:
448                                         return "rem.un";
449                                 case 95:
450                                         return "and";
451                                 case 96:
452                                         return "or";
453                                 case 97:
454                                         return "xor";
455                                 case 98:
456                                         return "shl";
457                                 case 99:
458                                         return "shr";
459                                 case 100:
460                                         return "shr.un";
461                                 case 101:
462                                         return "neg";
463                                 case 102:
464                                         return "not";
465                                 case 103:
466                                         return "conv.i1";
467                                 case 104:
468                                         return "conv.i2";
469                                 case 105:
470                                         return "conv.i4";
471                                 case 106:
472                                         return "conv.i8";
473                                 case 107:
474                                         return "conv.r4";
475                                 case 108:
476                                         return "conv.r8";
477                                 case 109:
478                                         return "conv.u4";
479                                 case 110:
480                                         return "conv.u8";
481                                 case 111:
482                                         return "callvirt";
483                                 case 112:
484                                         return "cpobj";
485                                 case 113:
486                                         return "ldobj";
487                                 case 114:
488                                         return "ldstr";
489                                 case 115:
490                                         return "newobj";
491                                 case 116:
492                                         return "castclass";
493                                 case 117:
494                                         return "isinst";
495                                 case 118:
496                                         return "conv.r.un";
497                                 case 121:
498                                         return "unbox";
499                                 case 122:
500                                         return "throw";
501                                 case 123:
502                                         return "ldfld";
503                                 case 124:
504                                         return "ldflda";
505                                 case 125:
506                                         return "stfld";
507                                 case 126:
508                                         return "ldsfld";
509                                 case 127:
510                                         return "ldsflda";
511                                 case 128:
512                                         return "stsfld";
513                                 case 129:
514                                         return "stobj";
515                                 case 130:
516                                         return "conv.ovf.i1.un";
517                                 case 131:
518                                         return "conv.ovf.i2.un";
519                                 case 132:
520                                         return "conv.ovf.i4.un";
521                                 case 133:
522                                         return "conv.ovf.i8.un";
523                                 case 134:
524                                         return "conv.ovf.u1.un";
525                                 case 135:
526                                         return "conv.ovf.u2.un";
527                                 case 136:
528                                         return "conv.ovf.u4.un";
529                                 case 137:
530                                         return "conv.ovf.u8.un";
531                                 case 138:
532                                         return "conv.ovf.i.un";
533                                 case 139:
534                                         return "conv.ovf.u.un";
535                                 case 140:
536                                         return "box";
537                                 case 141:
538                                         return "newarr";
539                                 case 142:
540                                         return "ldlen";
541                                 case 143:
542                                         return "ldelema";
543                                 case 144:
544                                         return "ldelem.i1";
545                                 case 145:
546                                         return "ldelem.u1";
547                                 case 146:
548                                         return "ldelem.i2";
549                                 case 147:
550                                         return "ldelem.u2";
551                                 case 148:
552                                         return "ldelem.i4";
553                                 case 149:
554                                         return "ldelem.u4";
555                                 case 150:
556                                         return "ldelem.i8";
557                                 case 151:
558                                         return "ldelem.i";
559                                 case 152:
560                                         return "ldelem.r4";
561                                 case 153:
562                                         return "ldelem.r8";
563                                 case 154:
564                                         return "ldelem.ref";
565                                 case 155:
566                                         return "stelem.i";
567                                 case 156:
568                                         return "stelem.i1";
569                                 case 157:
570                                         return "stelem.i2";
571                                 case 158:
572                                         return "stelem.i4";
573                                 case 159:
574                                         return "stelem.i8";
575                                 case 160:
576                                         return "stelem.r4";
577                                 case 161:
578                                         return "stelem.r8";
579                                 case 162:
580                                         return "stelem.ref";
581                                 case 163:
582                                         return "ldelem";
583                                 case 164:
584                                         return "stelem";
585                                 case 165:
586                                         return "unbox.any";
587                                 case 179:
588                                         return "conv.ovf.i1";
589                                 case 180:
590                                         return "conv.ovf.u1";
591                                 case 181:
592                                         return "conv.ovf.i2";
593                                 case 182:
594                                         return "conv.ovf.u2";
595                                 case 183:
596                                         return "conv.ovf.i4";
597                                 case 184:
598                                         return "conv.ovf.u4";
599                                 case 185:
600                                         return "conv.ovf.i8";
601                                 case 186:
602                                         return "conv.ovf.u8";
603                                 case 194:
604                                         return "refanyval";
605                                 case 195:
606                                         return "ckfinite";
607                                 case 198:
608                                         return "mkrefany";
609                                 case 208:
610                                         return "ldtoken";
611                                 case 209:
612                                         return "conv.u2";
613                                 case 210:
614                                         return "conv.u1";
615                                 case 211:
616                                         return "conv.i";
617                                 case 212:
618                                         return "conv.ovf.i";
619                                 case 213:
620                                         return "conv.ovf.u";
621                                 case 214:
622                                         return "add.ovf";
623                                 case 215:
624                                         return "add.ovf.un";
625                                 case 216:
626                                         return "mul.ovf";
627                                 case 217:
628                                         return "mul.ovf.un";
629                                 case 218:
630                                         return "sub.ovf";
631                                 case 219:
632                                         return "sub.ovf.un";
633                                 case 220:
634                                         return "endfinally";
635                                 case 221:
636                                         return "leave";
637                                 case 222:
638                                         return "leave.s";
639                                 case 223:
640                                         return "stind.i";
641                                 case 224:
642                                         return "conv.u";
643                                 case 248:
644                                         return "prefix7";
645                                 case 249:
646                                         return "prefix6";
647                                 case 250:
648                                         return "prefix5";
649                                 case 251:
650                                         return "prefix4";
651                                 case 252:
652                                         return "prefix3";
653                                 case 253:
654                                         return "prefix2";
655                                 case 254:
656                                         return "prefix1";
657                                 case 255:
658                                         return "prefixref";
659                                 case -512:
660                                         return "arglist";
661                                 case -511:
662                                         return "ceq";
663                                 case -510:
664                                         return "cgt";
665                                 case -509:
666                                         return "cgt.un";
667                                 case -508:
668                                         return "clt";
669                                 case -507:
670                                         return "clt.un";
671                                 case -506:
672                                         return "ldftn";
673                                 case -505:
674                                         return "ldvirtftn";
675                                 case -503:
676                                         return "ldarg";
677                                 case -502:
678                                         return "ldarga";
679                                 case -501:
680                                         return "starg";
681                                 case -500:
682                                         return "ldloc";
683                                 case -499:
684                                         return "ldloca";
685                                 case -498:
686                                         return "stloc";
687                                 case -497:
688                                         return "localloc";
689                                 case -495:
690                                         return "endfilter";
691                                 case -494:
692                                         return "unaligned.";
693                                 case -493:
694                                         return "volatile.";
695                                 case -492:
696                                         return "tail.";
697                                 case -491:
698                                         return "initobj";
699                                 case -490:
700                                         return "constrained.";
701                                 case -489:
702                                         return "cpblk";
703                                 case -488:
704                                         return "initblk";
705                                 case -486:
706                                         return "rethrow";
707                                 case -484:
708                                         return "sizeof";
709                                 case -483:
710                                         return "refanytype";
711                                 case -482:
712                                         return "readonly.";
713                         }
714                         throw new ArgumentOutOfRangeException();
715                 }
716
717                 public static bool TakesSingleByteArgument(OpCode inst)
718                 {
719                         switch (inst.Value)
720                         {
721                                 case 14:
722                                 case 15:
723                                 case 16:
724                                 case 17:
725                                 case 18:
726                                 case 19:
727                                 case 31:
728                                 case 43:
729                                 case 44:
730                                 case 45:
731                                 case 46:
732                                 case 47:
733                                 case 48:
734                                 case 49:
735                                 case 50:
736                                 case 51:
737                                 case 52:
738                                 case 53:
739                                 case 54:
740                                 case 55:
741                                 case 222:
742                                 case -494:
743                                         return true;
744                                 default:
745                                         return false;
746                         }
747                 }
748         }
749 }