2 // Mono.ILASM.InstrTable
5 // Jackson Harper (Jackson@LatitudeGeo.com)
7 // (C) 2003 Jackson Harper, All rights reserved
12 using System
.Collections
;
14 namespace Mono
.ILASM
{
16 public class InstrTable
{
18 private static Hashtable inst_table
;
25 public static ILToken
GetToken (string str
)
27 return inst_table
[str
] as ILToken
;
30 public static bool IsInstr (string str
)
32 return inst_table
.Contains (str
);
35 private static void CreateInstTable ()
37 inst_table
= new Hashtable ();
39 inst_table
["nop"] = new ILToken (Token
.INSTR_NONE
, Op
.nop
);
40 inst_table
["break"] = new ILToken (Token
.INSTR_NONE
, Op
.breakOp
);
41 inst_table
["ldarg.0"] = new ILToken (Token
.INSTR_NONE
, Op
.ldarg_0
);
42 inst_table
["ldarg.1"] = new ILToken (Token
.INSTR_NONE
, Op
.ldarg_1
);
43 inst_table
["ldarg.2"] = new ILToken (Token
.INSTR_NONE
, Op
.ldarg_2
);
44 inst_table
["ldarg.3"] = new ILToken (Token
.INSTR_NONE
, Op
.ldarg_3
);
45 inst_table
["ldloc.0"] = new ILToken (Token
.INSTR_NONE
, Op
.ldloc_0
);
46 inst_table
["ldloc.1"] = new ILToken (Token
.INSTR_NONE
, Op
.ldloc_1
);
47 inst_table
["ldloc.2"] = new ILToken (Token
.INSTR_NONE
, Op
.ldloc_2
);
48 inst_table
["ldloc.3"] = new ILToken (Token
.INSTR_NONE
, Op
.ldloc_3
);
49 inst_table
["stloc.0"] = new ILToken (Token
.INSTR_NONE
, Op
.stloc_0
);
50 inst_table
["stloc.1"] = new ILToken (Token
.INSTR_NONE
, Op
.stloc_1
);
51 inst_table
["stloc.2"] = new ILToken (Token
.INSTR_NONE
, Op
.stloc_2
);
52 inst_table
["stloc.3"] = new ILToken (Token
.INSTR_NONE
, Op
.stloc_3
);
53 inst_table
["ldnull"] = new ILToken (Token
.INSTR_NONE
, Op
.ldnull
);
54 inst_table
["ldc.i4.m1"] = new ILToken (Token
.INSTR_NONE
, Op
.ldc_i4_m1
);
55 inst_table
["ldc.i4.M1"] = new ILToken (Token
.INSTR_NONE
, Op
.ldc_i4_m1
);
56 inst_table
["ldc.i4.0"] = new ILToken (Token
.INSTR_NONE
, Op
.ldc_i4_0
);
57 inst_table
["ldc.i4.1"] = new ILToken (Token
.INSTR_NONE
, Op
.ldc_i4_1
);
58 inst_table
["ldc.i4.2"] = new ILToken (Token
.INSTR_NONE
, Op
.ldc_i4_2
);
59 inst_table
["ldc.i4.3"] = new ILToken (Token
.INSTR_NONE
, Op
.ldc_i4_3
);
60 inst_table
["ldc.i4.4"] = new ILToken (Token
.INSTR_NONE
, Op
.ldc_i4_4
);
61 inst_table
["ldc.i4.5"] = new ILToken (Token
.INSTR_NONE
, Op
.ldc_i4_5
);
62 inst_table
["ldc.i4.6"] = new ILToken (Token
.INSTR_NONE
, Op
.ldc_i4_6
);
63 inst_table
["ldc.i4.7"] = new ILToken (Token
.INSTR_NONE
, Op
.ldc_i4_7
);
64 inst_table
["ldc.i4.8"] = new ILToken (Token
.INSTR_NONE
, Op
.ldc_i4_8
);
65 inst_table
["dup"] = new ILToken (Token
.INSTR_NONE
, Op
.dup
);
66 inst_table
["pop"] = new ILToken (Token
.INSTR_NONE
, Op
.pop
);
67 inst_table
["ret"] = new ILToken (Token
.INSTR_NONE
, Op
.ret
);
68 inst_table
["ldind.i1"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_i1
);
69 inst_table
["ldind.u1"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_u1
);
70 inst_table
["ldind.i2"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_i2
);
71 inst_table
["ldind.u2"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_u2
);
72 inst_table
["ldind.i4"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_i4
);
73 inst_table
["ldind.u4"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_u4
);
74 inst_table
["ldind.i8"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_i8
);
75 inst_table
["ldind.u8"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_i8
);
76 inst_table
["ldind.i"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_i
);
77 inst_table
["ldind.r4"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_r4
);
78 inst_table
["ldind.r8"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_r8
);
79 inst_table
["ldind.ref"] = new ILToken (Token
.INSTR_NONE
, Op
.ldind_ref
);
80 inst_table
["stind.ref"] = new ILToken (Token
.INSTR_NONE
, Op
.stind_ref
);
81 inst_table
["stind.i1"] = new ILToken (Token
.INSTR_NONE
, Op
.stind_i1
);
82 inst_table
["stind.i2"] = new ILToken (Token
.INSTR_NONE
, Op
.stind_i2
);
83 inst_table
["stind.i4"] = new ILToken (Token
.INSTR_NONE
, Op
.stind_i4
);
84 inst_table
["stind.i8"] = new ILToken (Token
.INSTR_NONE
, Op
.stind_i8
);
85 inst_table
["stind.r4"] = new ILToken (Token
.INSTR_NONE
, Op
.stind_r4
);
86 inst_table
["stind.r8"] = new ILToken (Token
.INSTR_NONE
, Op
.stind_r8
);
87 inst_table
["add"] = new ILToken (Token
.INSTR_NONE
, Op
.add);
88 inst_table
["sub"] = new ILToken (Token
.INSTR_NONE
, Op
.sub
);
89 inst_table
["mul"] = new ILToken (Token
.INSTR_NONE
, Op
.mul
);
90 inst_table
["div"] = new ILToken (Token
.INSTR_NONE
, Op
.div
);
91 inst_table
["div.un"] = new ILToken (Token
.INSTR_NONE
, Op
.div_un
);
92 inst_table
["rem"] = new ILToken (Token
.INSTR_NONE
, Op
.rem
);
93 inst_table
["rem.un"] = new ILToken (Token
.INSTR_NONE
, Op
.rem_un
);
94 inst_table
["and"] = new ILToken (Token
.INSTR_NONE
, Op
.and
);
95 inst_table
["or"] = new ILToken (Token
.INSTR_NONE
, Op
.or
);
96 inst_table
["xor"] = new ILToken (Token
.INSTR_NONE
, Op
.xor
);
97 inst_table
["shl"] = new ILToken (Token
.INSTR_NONE
, Op
.shl
);
98 inst_table
["shr"] = new ILToken (Token
.INSTR_NONE
, Op
.shr
);
99 inst_table
["shr.un"] = new ILToken (Token
.INSTR_NONE
, Op
.shr_un
);
100 inst_table
["neg"] = new ILToken (Token
.INSTR_NONE
, Op
.neg
);
101 inst_table
["not"] = new ILToken (Token
.INSTR_NONE
, Op
.not
);
102 inst_table
["conv.i1"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_i1
);
103 inst_table
["conv.i2"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_i2
);
104 inst_table
["conv.i4"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_i4
);
105 inst_table
["conv.i8"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_i8
);
106 inst_table
["conv.r4"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_r4
);
107 inst_table
["conv.r8"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_r8
);
108 inst_table
["conv.u4"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_u4
);
109 inst_table
["conv.u8"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_u8
);
110 inst_table
["conv.r.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_r_un
);
111 inst_table
["throw"] = new ILToken (Token
.INSTR_NONE
, Op
.throwOp
);
112 inst_table
["conv.ovf.i1.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i1_un
);
113 inst_table
["conv.ovf.i2.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i2_un
);
114 inst_table
["conv.ovf.i4.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i4_un
);
115 inst_table
["conv.ovf.i8.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i8_un
);
116 inst_table
["conf.ovf.u1.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conf_ovf_u1_un
);
117 inst_table
["conv.ovf.u2.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u2_un
);
118 inst_table
["conv.ovf.u4.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u4_un
);
119 inst_table
["conv.ovf.u8.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u8_un
);
120 inst_table
["conv.ovf.i.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i_un
);
121 inst_table
["conv.ovf.u.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u_un
);
122 inst_table
["ldlen"] = new ILToken (Token
.INSTR_NONE
, Op
.ldlen
);
123 inst_table
["ldelem.i1"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_i1
);
124 inst_table
["ldelem.u1"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_u1
);
125 inst_table
["ldelem.i2"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_i2
);
126 inst_table
["ldelem.u2"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_u2
);
127 inst_table
["ldelem.i4"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_i4
);
128 inst_table
["ldelem.u4"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_u4
);
129 inst_table
["ldelem.i8"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_i8
);
130 inst_table
["ldelem.u8"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_i8
);
131 inst_table
["ldelem.i"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_i
);
132 inst_table
["ldelem.r4"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_r4
);
133 inst_table
["ldelem.r8"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_r8
);
134 inst_table
["ldelem.ref"] = new ILToken (Token
.INSTR_NONE
, Op
.ldelem_ref
);
135 inst_table
["stelem.i"] = new ILToken (Token
.INSTR_NONE
, Op
.stelem_i
);
136 inst_table
["stelem.i1"] = new ILToken (Token
.INSTR_NONE
, Op
.stelem_i1
);
137 inst_table
["stelem.i2"] = new ILToken (Token
.INSTR_NONE
, Op
.stelem_i2
);
138 inst_table
["stelem.i4"] = new ILToken (Token
.INSTR_NONE
, Op
.stelem_i4
);
139 inst_table
["stelem.i8"] = new ILToken (Token
.INSTR_NONE
, Op
.stelem_i8
);
140 inst_table
["stelem.r4"] = new ILToken (Token
.INSTR_NONE
, Op
.stelem_r4
);
141 inst_table
["stelem.r8"] = new ILToken (Token
.INSTR_NONE
, Op
.stelem_r8
);
142 inst_table
["stelem.ref"] = new ILToken (Token
.INSTR_NONE
, Op
.stelem_ref
);
143 inst_table
["conv.ovf.i1"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i1
);
144 inst_table
["conv.ovf.u1"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u1
);
145 inst_table
["conv.ovf.i2"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i2
);
146 inst_table
["conv.ovf.u2"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u2
);
147 inst_table
["conv.ovf.i4"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i4
);
148 inst_table
["conv.ovf.u4"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u4
);
149 inst_table
["conv.ovf.i8"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i8
);
150 inst_table
["conv.ovf.u8"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u8
);
151 inst_table
["conv.ovf.u1.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conf_ovf_u1_un
);
152 inst_table
["conv.ovf.u2.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u2_un
);
153 inst_table
["conv.ovf.u4.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u4_un
);
154 inst_table
["conv.ovf.u8.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u8_un
);
155 inst_table
["conv.ovf.i1.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i1_un
);
156 inst_table
["conv.ovf.i2.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i2_un
);
157 inst_table
["conv.ovf.i4.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i4_un
);
158 inst_table
["conv.ovf.i8.un"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i8_un
);
159 inst_table
["ckfinite"] = new ILToken (Token
.INSTR_NONE
, Op
.ckfinite
);
160 inst_table
["conv.u2"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_u2
);
161 inst_table
["conv.u1"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_u1
);
162 inst_table
["conv.i"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_i
);
163 inst_table
["conv.ovf.i"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_i
);
164 inst_table
["conv.ovf.u"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_ovf_u
);
165 inst_table
["add.ovf"] = new ILToken (Token
.INSTR_NONE
, Op
.add_ovf
);
166 inst_table
["add.ovf.un"] = new ILToken (Token
.INSTR_NONE
, Op
.add_ovf_un
);
167 inst_table
["mul.ovf"] = new ILToken (Token
.INSTR_NONE
, Op
.mul_ovf
);
168 inst_table
["mul.ovf.un"] = new ILToken (Token
.INSTR_NONE
, Op
.mul_ovf_un
);
169 inst_table
["sub.ovf"] = new ILToken (Token
.INSTR_NONE
, Op
.sub_ovf
);
170 inst_table
["sub.ovf.un"] = new ILToken (Token
.INSTR_NONE
, Op
.sub_ovf_un
);
171 inst_table
["endfinally"] = new ILToken (Token
.INSTR_NONE
, Op
.endfinally
);
172 // endfault is really just an alias for endfinally
173 inst_table
["endfault"] = new ILToken (Token
.INSTR_NONE
, Op
.endfinally
);
174 inst_table
["stind.i"] = new ILToken (Token
.INSTR_NONE
, Op
.stind_i
);
175 inst_table
["conv.u"] = new ILToken (Token
.INSTR_NONE
, Op
.conv_u
);
176 inst_table
["arglist"] = new ILToken (Token
.INSTR_NONE
, Op
.arglist
);
177 inst_table
["ceq"] = new ILToken (Token
.INSTR_NONE
, Op
.ceq
);
178 inst_table
["cgt"] = new ILToken (Token
.INSTR_NONE
, Op
.cgt
);
179 inst_table
["cgt.un"] = new ILToken (Token
.INSTR_NONE
, Op
.cgt_un
);
180 inst_table
["clt"] = new ILToken (Token
.INSTR_NONE
, Op
.clt
);
181 inst_table
["clt.un"] = new ILToken (Token
.INSTR_NONE
, Op
.clt_un
);
182 inst_table
["localloc"] = new ILToken (Token
.INSTR_NONE
, Op
.localloc
);
183 inst_table
["endfilter"] = new ILToken (Token
.INSTR_NONE
, Op
.endfilter
);
184 inst_table
["volatile."] = new ILToken (Token
.INSTR_NONE
, Op
.volatile_
);
185 inst_table
["tail."] = new ILToken (Token
.INSTR_NONE
, Op
.tail_
);
186 inst_table
["cpblk"] = new ILToken (Token
.INSTR_NONE
, Op
.cpblk
);
187 inst_table
["initblk"] = new ILToken (Token
.INSTR_NONE
, Op
.initblk
);
188 inst_table
["rethrow"] = new ILToken (Token
.INSTR_NONE
, Op
.rethrow
);
189 inst_table
["refanytype"] = new ILToken (Token
.INSTR_NONE
, Op
.refanytype
);
190 inst_table
["readonly."] = new ILToken (Token
.INSTR_NONE
, Op
.readonly_
);
197 inst_table
["ldarg"] = new ILToken (Token
.INSTR_PARAM
, IntOp
.ldarg
);
198 inst_table
["ldarga"] = new ILToken (Token
.INSTR_PARAM
, IntOp
.ldarga
);
199 inst_table
["starg"] = new ILToken (Token
.INSTR_PARAM
, IntOp
.starg
);
200 inst_table
["ldarg.s"] = new ILToken (Token
.INSTR_PARAM
, IntOp
.ldarg_s
);
201 inst_table
["ldarga.s"] = new ILToken (Token
.INSTR_PARAM
, IntOp
.ldarga_s
);
202 inst_table
["starg.s"] = new ILToken (Token
.INSTR_PARAM
, IntOp
.starg_s
);
205 inst_table
["ldloc"] = new ILToken (Token
.INSTR_LOCAL
, IntOp
.ldloc
);
206 inst_table
["ldloca"] = new ILToken (Token
.INSTR_LOCAL
, IntOp
.ldloca
);
207 inst_table
["stloc"] = new ILToken (Token
.INSTR_LOCAL
, IntOp
.stloc
);
208 inst_table
["ldloc.s"] = new ILToken (Token
.INSTR_LOCAL
, IntOp
.ldloc_s
);
209 inst_table
["ldloca.s"] = new ILToken (Token
.INSTR_LOCAL
, IntOp
.ldloca_s
);
210 inst_table
["stloc.s"] = new ILToken (Token
.INSTR_LOCAL
, IntOp
.stloc_s
);
212 inst_table
["ldc.i4.s"] = new ILToken (Token
.INSTR_I
, IntOp
.ldc_i4_s
);
213 inst_table
["ldc.i4"] = new ILToken (Token
.INSTR_I
, IntOp
.ldc_i4
);
214 inst_table
["unaligned."] = new ILToken (Token
.INSTR_I
, IntOp
.unaligned
);
220 inst_table
["cpobj"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.cpobj
);
221 inst_table
["ldobj"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.ldobj
);
222 inst_table
["castclass"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.castclass
);
223 inst_table
["isinst"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.isinst
);
224 inst_table
["unbox"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.unbox
);
225 inst_table
["unbox.any"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.unbox_any
);
226 inst_table
["stobj"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.stobj
);
227 inst_table
["box"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.box
);
228 inst_table
["newarr"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.newarr
);
229 inst_table
["ldelema"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.ldelema
);
230 inst_table
["refanyval"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.refanyval
);
231 inst_table
["mkrefany"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.mkrefany
);
232 inst_table
["initobj"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.initobj
);
233 inst_table
["sizeof"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.sizeOf
);
234 inst_table
["stelem"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.stelem
);
235 inst_table
["ldelem"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.ldelem
);
236 inst_table
["stelem.any"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.stelem
);
237 inst_table
["ldelem.any"] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.ldelem
);
238 inst_table
["constrained."] = new ILToken (Token
.INSTR_TYPE
, TypeOp
.constrained
);
241 // MethodRef operations
244 inst_table
["jmp"] = new ILToken (Token
.INSTR_METHOD
, MethodOp
.jmp
);
245 inst_table
["call"] = new ILToken (Token
.INSTR_METHOD
, MethodOp
.call
);
246 inst_table
["callvirt"] = new ILToken (Token
.INSTR_METHOD
, MethodOp
.callvirt
);
247 inst_table
["newobj"] = new ILToken (Token
.INSTR_METHOD
, MethodOp
.newobj
);
248 inst_table
["ldftn"] = new ILToken (Token
.INSTR_METHOD
, MethodOp
.ldftn
);
249 inst_table
["ldvirtftn"] = new ILToken (Token
.INSTR_METHOD
, MethodOp
.ldvirtfn
);
252 // FieldRef instructions
255 inst_table
["ldfld"] = new ILToken (Token
.INSTR_FIELD
, FieldOp
.ldfld
);
256 inst_table
["ldflda"] = new ILToken (Token
.INSTR_FIELD
, FieldOp
.ldflda
);
257 inst_table
["stfld"] = new ILToken (Token
.INSTR_FIELD
, FieldOp
.stfld
);
258 inst_table
["ldsfld"] = new ILToken (Token
.INSTR_FIELD
, FieldOp
.ldsfld
);
259 inst_table
["ldsflda"] = new ILToken (Token
.INSTR_FIELD
, FieldOp
.ldsflda
);
260 inst_table
["stsfld"] = new ILToken (Token
.INSTR_FIELD
, FieldOp
.stsfld
);
263 // Branch Instructions
266 inst_table
["br"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.br
);
267 inst_table
["brfalse"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.brfalse
);
268 inst_table
["brzero"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.brfalse
);
269 inst_table
["brnull"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.brfalse
);
270 inst_table
["brtrue"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.brtrue
);
271 inst_table
["beq"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.beq
);
272 inst_table
["bge"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.bge
);
273 inst_table
["bgt"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.bgt
);
274 inst_table
["ble"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.ble
);
275 inst_table
["blt"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.blt
);
276 inst_table
["bne.un"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.bne_un
);
277 inst_table
["bge.un"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.bge_un
);
278 inst_table
["bgt.un"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.bgt_un
);
279 inst_table
["ble.un"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.ble_un
);
280 inst_table
["blt.un"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.blt_un
);
281 inst_table
["leave"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.leave
);
283 inst_table
["br.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.br_s
);
284 inst_table
["brfalse.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.brfalse_s
);
285 inst_table
["brtrue.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.brtrue_s
);
286 inst_table
["beq.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.beq_s
);
287 inst_table
["bge.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.bge_s
);
288 inst_table
["bgt.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.bgt_s
);
289 inst_table
["ble.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.ble_s
);
290 inst_table
["blt.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.blt_s
);
291 inst_table
["bne.un.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.bne_un_s
);
292 inst_table
["bge.un.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.bge_un_s
);
293 inst_table
["bgt.un.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.bgt_un_s
);
294 inst_table
["ble.un.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.ble_un_s
);
295 inst_table
["blt.un.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.blt_un_s
);
296 inst_table
["leave.s"] = new ILToken (Token
.INSTR_BRTARGET
, BranchOp
.leave_s
);
299 // Misc other instructions
302 inst_table
["ldstr"] = new ILToken (Token
.INSTR_STRING
, MiscInstr
.ldstr
);
303 inst_table
["ldc.r4"] = new ILToken (Token
.INSTR_R
, MiscInstr
.ldc_r4
);
304 inst_table
["ldc.r8"] = new ILToken (Token
.INSTR_R
, MiscInstr
.ldc_r8
);
305 inst_table
["ldc.i8"] = new ILToken (Token
.INSTR_I8
, MiscInstr
.ldc_i8
);
306 inst_table
["switch"] = new ILToken (Token
.INSTR_SWITCH
, MiscInstr
._switch
);
307 inst_table
["calli"] = new ILToken (Token
.INSTR_SIG
, MiscInstr
.calli
);
308 inst_table
["ldtoken"] = new ILToken (Token
.INSTR_TOK
, MiscInstr
.ldtoken
);