001/*
002 *  This file is part of the Jikes RVM project (http://jikesrvm.org).
003 *
004 *  This file is licensed to You under the Eclipse Public License (EPL);
005 *  You may not use this file except in compliance with the License. You
006 *  may obtain a copy of the License at
007 *
008 *      http://www.opensource.org/licenses/eclipse-1.0.php
009 *
010 *  See the COPYRIGHT.txt file distributed with this work for information
011 *  regarding copyright ownership.
012 */
013/*
014 * NOTE: ArchOperator.java is mechanically generated from
015 * ArchOperator.template using the operator definitions in
016 * OperatorList.dat and ia32OperatorList.dat
017 *
018 * DO NOT MANUALLY EDIT THE JAVA FILE.
019 */
020
021package org.jikesrvm.compilers.opt.ir.ia32;
022
023import org.jikesrvm.*;
024import org.jikesrvm.compilers.opt.ir.InstructionFormat;
025import org.jikesrvm.compilers.opt.ir.Operator;
026import org.jikesrvm.compilers.opt.ir.Operators;
027import org.jikesrvm.compilers.opt.*;
028import org.jikesrvm.util.Bits;
029import org.vmmagic.pragma.Pure;
030
031/**
032 * The implementation of operator that is specific to a particular
033 * architecture.
034 */
035public final class ArchOperator extends Operator {
036
037  /** Array holding all singleton operators */
038  private static final Operator[] OperatorArray = {
039     new ArchOperator((char)0, ArchInstructionFormat.Nullary_format,  //GET_CAUGHT_EXCEPTION
040                      (none | ArchInstructionFormat.Nullary_traits),
041                      1, 0, 0,
042                      PhysicalDefUse.mask,
043                      PhysicalDefUse.mask),
044     new ArchOperator((char)1, ArchInstructionFormat.CacheOp_format,  //SET_CAUGHT_EXCEPTION
045                      (none | ArchInstructionFormat.CacheOp_traits),
046                      0, 0, 1,
047                      PhysicalDefUse.mask,
048                      PhysicalDefUse.mask),
049     new ArchOperator((char)2, ArchInstructionFormat.New_format,  //NEW
050                      (alloc | immedPEI | ArchInstructionFormat.New_traits),
051                      1, 0, 1,
052                      PhysicalDefUse.mask,
053                      PhysicalDefUse.mask),
054     new ArchOperator((char)3, ArchInstructionFormat.New_format,  //NEW_UNRESOLVED
055                      (alloc | immedPEI | dynLink | ArchInstructionFormat.New_traits),
056                      1, 0, 1,
057                      PhysicalDefUse.mask,
058                      PhysicalDefUse.mask),
059     new ArchOperator((char)4, ArchInstructionFormat.NewArray_format,  //NEWARRAY
060                      (alloc | immedPEI | ArchInstructionFormat.NewArray_traits),
061                      1, 0, 2,
062                      PhysicalDefUse.mask,
063                      PhysicalDefUse.mask),
064     new ArchOperator((char)5, ArchInstructionFormat.NewArray_format,  //NEWARRAY_UNRESOLVED
065                      (alloc | immedPEI | dynLink | ArchInstructionFormat.NewArray_traits),
066                      1, 0, 2,
067                      PhysicalDefUse.mask,
068                      PhysicalDefUse.mask),
069     new ArchOperator((char)6, ArchInstructionFormat.Athrow_format,  //ATHROW
070                      (ethrow | ArchInstructionFormat.Athrow_traits),
071                      0, 0, 1,
072                      PhysicalDefUse.mask,
073                      PhysicalDefUse.mask),
074     new ArchOperator((char)7, ArchInstructionFormat.TypeCheck_format,  //CHECKCAST
075                      (immedPEI | ArchInstructionFormat.TypeCheck_traits),
076                      1, 0, 3,
077                      PhysicalDefUse.mask,
078                      PhysicalDefUse.mask),
079     new ArchOperator((char)8, ArchInstructionFormat.TypeCheck_format,  //CHECKCAST_NOTNULL
080                      (immedPEI | ArchInstructionFormat.TypeCheck_traits),
081                      1, 0, 3,
082                      PhysicalDefUse.mask,
083                      PhysicalDefUse.mask),
084     new ArchOperator((char)9, ArchInstructionFormat.TypeCheck_format,  //CHECKCAST_UNRESOLVED
085                      (immedPEI | dynLink | ArchInstructionFormat.TypeCheck_traits),
086                      1, 0, 3,
087                      PhysicalDefUse.mask,
088                      PhysicalDefUse.mask),
089     new ArchOperator((char)10, ArchInstructionFormat.TypeCheck_format,  //MUST_IMPLEMENT_INTERFACE
090                      (immedPEI | ArchInstructionFormat.TypeCheck_traits),
091                      1, 0, 3,
092                      PhysicalDefUse.mask,
093                      PhysicalDefUse.mask),
094     new ArchOperator((char)11, ArchInstructionFormat.InstanceOf_format,  //INSTANCEOF
095                      (none | ArchInstructionFormat.InstanceOf_traits),
096                      1, 0, 3,
097                      PhysicalDefUse.mask,
098                      PhysicalDefUse.mask),
099     new ArchOperator((char)12, ArchInstructionFormat.InstanceOf_format,  //INSTANCEOF_NOTNULL
100                      (none | ArchInstructionFormat.InstanceOf_traits),
101                      1, 0, 3,
102                      PhysicalDefUse.mask,
103                      PhysicalDefUse.mask),
104     new ArchOperator((char)13, ArchInstructionFormat.InstanceOf_format,  //INSTANCEOF_UNRESOLVED
105                      (immedPEI | dynLink | ArchInstructionFormat.InstanceOf_traits),
106                      1, 0, 3,
107                      PhysicalDefUse.mask,
108                      PhysicalDefUse.mask),
109     new ArchOperator((char)14, ArchInstructionFormat.MonitorOp_format,  //MONITORENTER
110                      (memAsLoad | memAsStore | acquire | tsp | ArchInstructionFormat.MonitorOp_traits),
111                      0, 0, 2,
112                      PhysicalDefUse.mask,
113                      PhysicalDefUse.mask),
114     new ArchOperator((char)15, ArchInstructionFormat.MonitorOp_format,  //MONITOREXIT
115                      (memAsLoad | memAsStore | release | tsp | immedPEI | ArchInstructionFormat.MonitorOp_traits),
116                      0, 0, 2,
117                      PhysicalDefUse.mask,
118                      PhysicalDefUse.mask),
119     new ArchOperator((char)16, ArchInstructionFormat.Multianewarray_format,  //NEWOBJMULTIARRAY
120                      (alloc | immedPEI | dynLink | ArchInstructionFormat.Multianewarray_traits),
121                      1, 0, 1,
122                      PhysicalDefUse.mask,
123                      PhysicalDefUse.mask),
124     new ArchOperator((char)17, ArchInstructionFormat.GetStatic_format,  //GETSTATIC
125                      (load | ArchInstructionFormat.GetStatic_traits),
126                      1, 0, 2,
127                      PhysicalDefUse.mask,
128                      PhysicalDefUse.mask),
129     new ArchOperator((char)18, ArchInstructionFormat.PutStatic_format,  //PUTSTATIC
130                      (store | ArchInstructionFormat.PutStatic_traits),
131                      0, 0, 3,
132                      PhysicalDefUse.mask,
133                      PhysicalDefUse.mask),
134     new ArchOperator((char)19, ArchInstructionFormat.GetField_format,  //GETFIELD
135                      (load | ArchInstructionFormat.GetField_traits),
136                      1, 0, 4,
137                      PhysicalDefUse.mask,
138                      PhysicalDefUse.mask),
139     new ArchOperator((char)20, ArchInstructionFormat.PutField_format,  //PUTFIELD
140                      (store | ArchInstructionFormat.PutField_traits),
141                      0, 0, 5,
142                      PhysicalDefUse.mask,
143                      PhysicalDefUse.mask),
144     new ArchOperator((char)21, ArchInstructionFormat.ZeroCheck_format,  //INT_ZERO_CHECK
145                      (immedPEI | ArchInstructionFormat.ZeroCheck_traits),
146                      1, 0, 1,
147                      PhysicalDefUse.mask,
148                      PhysicalDefUse.mask),
149     new ArchOperator((char)22, ArchInstructionFormat.ZeroCheck_format,  //LONG_ZERO_CHECK
150                      (immedPEI | ArchInstructionFormat.ZeroCheck_traits),
151                      1, 0, 1,
152                      PhysicalDefUse.mask,
153                      PhysicalDefUse.mask),
154     new ArchOperator((char)23, ArchInstructionFormat.BoundsCheck_format,  //BOUNDS_CHECK
155                      (immedPEI | ArchInstructionFormat.BoundsCheck_traits),
156                      1, 0, 3,
157                      PhysicalDefUse.mask,
158                      PhysicalDefUse.mask),
159     new ArchOperator((char)24, ArchInstructionFormat.StoreCheck_format,  //OBJARRAY_STORE_CHECK
160                      (immedPEI | ArchInstructionFormat.StoreCheck_traits),
161                      1, 0, 3,
162                      PhysicalDefUse.mask,
163                      PhysicalDefUse.mask),
164     new ArchOperator((char)25, ArchInstructionFormat.StoreCheck_format,  //OBJARRAY_STORE_CHECK_NOTNULL
165                      (immedPEI | ArchInstructionFormat.StoreCheck_traits),
166                      1, 0, 3,
167                      PhysicalDefUse.mask,
168                      PhysicalDefUse.mask),
169     new ArchOperator((char)26, ArchInstructionFormat.InlineGuard_format,  //IG_PATCH_POINT
170                      (branch | conditional | ArchInstructionFormat.InlineGuard_traits),
171                      0, 0, 5,
172                      PhysicalDefUse.mask,
173                      PhysicalDefUse.mask),
174     new ArchOperator((char)27, ArchInstructionFormat.InlineGuard_format,  //IG_CLASS_TEST
175                      (branch | conditional | ArchInstructionFormat.InlineGuard_traits),
176                      0, 0, 5,
177                      PhysicalDefUse.mask,
178                      PhysicalDefUse.mask),
179     new ArchOperator((char)28, ArchInstructionFormat.InlineGuard_format,  //IG_METHOD_TEST
180                      (branch | conditional | ArchInstructionFormat.InlineGuard_traits),
181                      0, 0, 5,
182                      PhysicalDefUse.mask,
183                      PhysicalDefUse.mask),
184     new ArchOperator((char)29, ArchInstructionFormat.TableSwitch_format,  //TABLESWITCH
185                      (branch | ArchInstructionFormat.TableSwitch_traits),
186                      0, 0, 7,
187                      PhysicalDefUse.mask,
188                      PhysicalDefUse.mask),
189     new ArchOperator((char)30, ArchInstructionFormat.LookupSwitch_format,  //LOOKUPSWITCH
190                      (branch | ArchInstructionFormat.LookupSwitch_traits),
191                      0, 0, 5,
192                      PhysicalDefUse.mask,
193                      PhysicalDefUse.mask),
194     new ArchOperator((char)31, ArchInstructionFormat.ALoad_format,  //INT_ALOAD
195                      (load | ArchInstructionFormat.ALoad_traits),
196                      1, 0, 4,
197                      PhysicalDefUse.mask,
198                      PhysicalDefUse.mask),
199     new ArchOperator((char)32, ArchInstructionFormat.ALoad_format,  //LONG_ALOAD
200                      (load | ArchInstructionFormat.ALoad_traits),
201                      1, 0, 4,
202                      PhysicalDefUse.mask,
203                      PhysicalDefUse.mask),
204     new ArchOperator((char)33, ArchInstructionFormat.ALoad_format,  //FLOAT_ALOAD
205                      (load | ArchInstructionFormat.ALoad_traits),
206                      1, 0, 4,
207                      PhysicalDefUse.mask,
208                      PhysicalDefUse.mask),
209     new ArchOperator((char)34, ArchInstructionFormat.ALoad_format,  //DOUBLE_ALOAD
210                      (load | ArchInstructionFormat.ALoad_traits),
211                      1, 0, 4,
212                      PhysicalDefUse.mask,
213                      PhysicalDefUse.mask),
214     new ArchOperator((char)35, ArchInstructionFormat.ALoad_format,  //REF_ALOAD
215                      (load | ArchInstructionFormat.ALoad_traits),
216                      1, 0, 4,
217                      PhysicalDefUse.mask,
218                      PhysicalDefUse.mask),
219     new ArchOperator((char)36, ArchInstructionFormat.ALoad_format,  //UBYTE_ALOAD
220                      (load | ArchInstructionFormat.ALoad_traits),
221                      1, 0, 4,
222                      PhysicalDefUse.mask,
223                      PhysicalDefUse.mask),
224     new ArchOperator((char)37, ArchInstructionFormat.ALoad_format,  //BYTE_ALOAD
225                      (load | ArchInstructionFormat.ALoad_traits),
226                      1, 0, 4,
227                      PhysicalDefUse.mask,
228                      PhysicalDefUse.mask),
229     new ArchOperator((char)38, ArchInstructionFormat.ALoad_format,  //USHORT_ALOAD
230                      (load | ArchInstructionFormat.ALoad_traits),
231                      1, 0, 4,
232                      PhysicalDefUse.mask,
233                      PhysicalDefUse.mask),
234     new ArchOperator((char)39, ArchInstructionFormat.ALoad_format,  //SHORT_ALOAD
235                      (load | ArchInstructionFormat.ALoad_traits),
236                      1, 0, 4,
237                      PhysicalDefUse.mask,
238                      PhysicalDefUse.mask),
239     new ArchOperator((char)40, ArchInstructionFormat.AStore_format,  //INT_ASTORE
240                      (store | ArchInstructionFormat.AStore_traits),
241                      0, 0, 5,
242                      PhysicalDefUse.mask,
243                      PhysicalDefUse.mask),
244     new ArchOperator((char)41, ArchInstructionFormat.AStore_format,  //LONG_ASTORE
245                      (store | ArchInstructionFormat.AStore_traits),
246                      0, 0, 5,
247                      PhysicalDefUse.mask,
248                      PhysicalDefUse.mask),
249     new ArchOperator((char)42, ArchInstructionFormat.AStore_format,  //FLOAT_ASTORE
250                      (store | ArchInstructionFormat.AStore_traits),
251                      0, 0, 5,
252                      PhysicalDefUse.mask,
253                      PhysicalDefUse.mask),
254     new ArchOperator((char)43, ArchInstructionFormat.AStore_format,  //DOUBLE_ASTORE
255                      (store | ArchInstructionFormat.AStore_traits),
256                      0, 0, 5,
257                      PhysicalDefUse.mask,
258                      PhysicalDefUse.mask),
259     new ArchOperator((char)44, ArchInstructionFormat.AStore_format,  //REF_ASTORE
260                      (store | ArchInstructionFormat.AStore_traits),
261                      0, 0, 5,
262                      PhysicalDefUse.mask,
263                      PhysicalDefUse.mask),
264     new ArchOperator((char)45, ArchInstructionFormat.AStore_format,  //BYTE_ASTORE
265                      (store | ArchInstructionFormat.AStore_traits),
266                      0, 0, 5,
267                      PhysicalDefUse.mask,
268                      PhysicalDefUse.mask),
269     new ArchOperator((char)46, ArchInstructionFormat.AStore_format,  //SHORT_ASTORE
270                      (store | ArchInstructionFormat.AStore_traits),
271                      0, 0, 5,
272                      PhysicalDefUse.mask,
273                      PhysicalDefUse.mask),
274     new ArchOperator((char)47, ArchInstructionFormat.IfCmp_format,  //INT_IFCMP
275                      (branch | conditional | ArchInstructionFormat.IfCmp_traits),
276                      1, 0, 5,
277                      PhysicalDefUse.mask,
278                      PhysicalDefUse.mask),
279     new ArchOperator((char)48, ArchInstructionFormat.IfCmp2_format,  //INT_IFCMP2
280                      (branch | conditional | ArchInstructionFormat.IfCmp2_traits),
281                      1, 0, 8,
282                      PhysicalDefUse.mask,
283                      PhysicalDefUse.mask),
284     new ArchOperator((char)49, ArchInstructionFormat.IfCmp_format,  //LONG_IFCMP
285                      (branch | conditional | ArchInstructionFormat.IfCmp_traits),
286                      1, 0, 5,
287                      PhysicalDefUse.mask,
288                      PhysicalDefUse.mask),
289     new ArchOperator((char)50, ArchInstructionFormat.IfCmp_format,  //FLOAT_IFCMP
290                      (branch | conditional | ArchInstructionFormat.IfCmp_traits),
291                      1, 0, 5,
292                      PhysicalDefUse.mask,
293                      PhysicalDefUse.mask),
294     new ArchOperator((char)51, ArchInstructionFormat.IfCmp_format,  //DOUBLE_IFCMP
295                      (branch | conditional | ArchInstructionFormat.IfCmp_traits),
296                      1, 0, 5,
297                      PhysicalDefUse.mask,
298                      PhysicalDefUse.mask),
299     new ArchOperator((char)52, ArchInstructionFormat.IfCmp_format,  //REF_IFCMP
300                      (branch | conditional | ArchInstructionFormat.IfCmp_traits),
301                      1, 0, 5,
302                      PhysicalDefUse.mask,
303                      PhysicalDefUse.mask),
304     new ArchOperator((char)53, ArchInstructionFormat.Label_format,  //LABEL
305                      (none | ArchInstructionFormat.Label_traits),
306                      0, 0, 1,
307                      PhysicalDefUse.mask,
308                      PhysicalDefUse.mask),
309     new ArchOperator((char)54, ArchInstructionFormat.BBend_format,  //BBEND
310                      (none | ArchInstructionFormat.BBend_traits),
311                      0, 0, 1,
312                      PhysicalDefUse.mask,
313                      PhysicalDefUse.mask),
314     new ArchOperator((char)55, ArchInstructionFormat.Empty_format,  //UNINT_BEGIN
315                      (none | ArchInstructionFormat.Empty_traits),
316                      0, 0, 0,
317                      PhysicalDefUse.mask,
318                      PhysicalDefUse.mask),
319     new ArchOperator((char)56, ArchInstructionFormat.Empty_format,  //UNINT_END
320                      (none | ArchInstructionFormat.Empty_traits),
321                      0, 0, 0,
322                      PhysicalDefUse.mask,
323                      PhysicalDefUse.mask),
324     new ArchOperator((char)57, ArchInstructionFormat.Empty_format,  //FENCE
325                      (memAsLoad | memAsStore | release | acquire | ArchInstructionFormat.Empty_traits),
326                      0, 0, 0,
327                      PhysicalDefUse.mask,
328                      PhysicalDefUse.mask),
329     new ArchOperator((char)58, ArchInstructionFormat.Empty_format,  //READ_CEILING
330                      (memAsLoad | memAsStore | acquire | ArchInstructionFormat.Empty_traits),
331                      0, 0, 0,
332                      PhysicalDefUse.mask,
333                      PhysicalDefUse.mask),
334     new ArchOperator((char)59, ArchInstructionFormat.Empty_format,  //WRITE_FLOOR
335                      (memAsLoad | memAsStore | release | ArchInstructionFormat.Empty_traits),
336                      0, 0, 0,
337                      PhysicalDefUse.mask,
338                      PhysicalDefUse.mask),
339     new ArchOperator((char)60, ArchInstructionFormat.Phi_format,  //PHI
340                      (none | ArchInstructionFormat.Phi_traits),
341                      1, 0, 0,
342                      PhysicalDefUse.mask,
343                      PhysicalDefUse.mask),
344     new ArchOperator((char)61, ArchInstructionFormat.Unary_format,  //SPLIT
345                      (none | ArchInstructionFormat.Unary_traits),
346                      1, 0, 1,
347                      PhysicalDefUse.mask,
348                      PhysicalDefUse.mask),
349     new ArchOperator((char)62, ArchInstructionFormat.GuardedUnary_format,  //PI
350                      (none | ArchInstructionFormat.GuardedUnary_traits),
351                      1, 0, 2,
352                      PhysicalDefUse.mask,
353                      PhysicalDefUse.mask),
354     new ArchOperator((char)63, ArchInstructionFormat.Empty_format,  //NOP
355                      (none | ArchInstructionFormat.Empty_traits),
356                      0, 0, 0,
357                      PhysicalDefUse.mask,
358                      PhysicalDefUse.mask),
359     new ArchOperator((char)64, ArchInstructionFormat.Move_format,  //INT_MOVE
360                      (move | ArchInstructionFormat.Move_traits),
361                      1, 0, 1,
362                      PhysicalDefUse.mask,
363                      PhysicalDefUse.mask),
364     new ArchOperator((char)65, ArchInstructionFormat.Move_format,  //LONG_MOVE
365                      (move | ArchInstructionFormat.Move_traits),
366                      1, 0, 1,
367                      PhysicalDefUse.mask,
368                      PhysicalDefUse.mask),
369     new ArchOperator((char)66, ArchInstructionFormat.Move_format,  //FLOAT_MOVE
370                      (move | ArchInstructionFormat.Move_traits),
371                      1, 0, 1,
372                      PhysicalDefUse.mask,
373                      PhysicalDefUse.mask),
374     new ArchOperator((char)67, ArchInstructionFormat.Move_format,  //DOUBLE_MOVE
375                      (move | ArchInstructionFormat.Move_traits),
376                      1, 0, 1,
377                      PhysicalDefUse.mask,
378                      PhysicalDefUse.mask),
379     new ArchOperator((char)68, ArchInstructionFormat.Move_format,  //REF_MOVE
380                      (move | ArchInstructionFormat.Move_traits),
381                      1, 0, 1,
382                      PhysicalDefUse.mask,
383                      PhysicalDefUse.mask),
384     new ArchOperator((char)69, ArchInstructionFormat.Move_format,  //GUARD_MOVE
385                      (move | ArchInstructionFormat.Move_traits),
386                      1, 0, 1,
387                      PhysicalDefUse.mask,
388                      PhysicalDefUse.mask),
389     new ArchOperator((char)70, ArchInstructionFormat.CondMove_format,  //INT_COND_MOVE
390                      (compare | ArchInstructionFormat.CondMove_traits),
391                      1, 0, 5,
392                      PhysicalDefUse.mask,
393                      PhysicalDefUse.mask),
394     new ArchOperator((char)71, ArchInstructionFormat.CondMove_format,  //LONG_COND_MOVE
395                      (compare | ArchInstructionFormat.CondMove_traits),
396                      1, 0, 5,
397                      PhysicalDefUse.mask,
398                      PhysicalDefUse.mask),
399     new ArchOperator((char)72, ArchInstructionFormat.CondMove_format,  //FLOAT_COND_MOVE
400                      (compare | ArchInstructionFormat.CondMove_traits),
401                      1, 0, 5,
402                      PhysicalDefUse.mask,
403                      PhysicalDefUse.mask),
404     new ArchOperator((char)73, ArchInstructionFormat.CondMove_format,  //DOUBLE_COND_MOVE
405                      (compare | ArchInstructionFormat.CondMove_traits),
406                      1, 0, 5,
407                      PhysicalDefUse.mask,
408                      PhysicalDefUse.mask),
409     new ArchOperator((char)74, ArchInstructionFormat.CondMove_format,  //REF_COND_MOVE
410                      (compare | ArchInstructionFormat.CondMove_traits),
411                      1, 0, 5,
412                      PhysicalDefUse.mask,
413                      PhysicalDefUse.mask),
414     new ArchOperator((char)75, ArchInstructionFormat.CondMove_format,  //GUARD_COND_MOVE
415                      (compare | ArchInstructionFormat.CondMove_traits),
416                      1, 0, 5,
417                      PhysicalDefUse.mask,
418                      PhysicalDefUse.mask),
419     new ArchOperator((char)76, ArchInstructionFormat.Binary_format,  //GUARD_COMBINE
420                      (none | ArchInstructionFormat.Binary_traits),
421                      1, 0, 2,
422                      PhysicalDefUse.mask,
423                      PhysicalDefUse.mask),
424     new ArchOperator((char)77, ArchInstructionFormat.Binary_format,  //REF_ADD
425                      (commutative | ArchInstructionFormat.Binary_traits),
426                      1, 0, 2,
427                      PhysicalDefUse.mask,
428                      PhysicalDefUse.mask),
429     new ArchOperator((char)78, ArchInstructionFormat.Binary_format,  //INT_ADD
430                      (commutative | ArchInstructionFormat.Binary_traits),
431                      1, 0, 2,
432                      PhysicalDefUse.mask,
433                      PhysicalDefUse.mask),
434     new ArchOperator((char)79, ArchInstructionFormat.Binary_format,  //LONG_ADD
435                      (commutative | ArchInstructionFormat.Binary_traits),
436                      1, 0, 2,
437                      PhysicalDefUse.mask,
438                      PhysicalDefUse.mask),
439     new ArchOperator((char)80, ArchInstructionFormat.Binary_format,  //FLOAT_ADD
440                      (commutative | ArchInstructionFormat.Binary_traits),
441                      1, 0, 2,
442                      PhysicalDefUse.mask,
443                      PhysicalDefUse.mask),
444     new ArchOperator((char)81, ArchInstructionFormat.Binary_format,  //DOUBLE_ADD
445                      (commutative | ArchInstructionFormat.Binary_traits),
446                      1, 0, 2,
447                      PhysicalDefUse.mask,
448                      PhysicalDefUse.mask),
449     new ArchOperator((char)82, ArchInstructionFormat.Binary_format,  //REF_SUB
450                      (none | ArchInstructionFormat.Binary_traits),
451                      1, 0, 2,
452                      PhysicalDefUse.mask,
453                      PhysicalDefUse.mask),
454     new ArchOperator((char)83, ArchInstructionFormat.Binary_format,  //INT_SUB
455                      (none | ArchInstructionFormat.Binary_traits),
456                      1, 0, 2,
457                      PhysicalDefUse.mask,
458                      PhysicalDefUse.mask),
459     new ArchOperator((char)84, ArchInstructionFormat.Binary_format,  //LONG_SUB
460                      (none | ArchInstructionFormat.Binary_traits),
461                      1, 0, 2,
462                      PhysicalDefUse.mask,
463                      PhysicalDefUse.mask),
464     new ArchOperator((char)85, ArchInstructionFormat.Binary_format,  //FLOAT_SUB
465                      (none | ArchInstructionFormat.Binary_traits),
466                      1, 0, 2,
467                      PhysicalDefUse.mask,
468                      PhysicalDefUse.mask),
469     new ArchOperator((char)86, ArchInstructionFormat.Binary_format,  //DOUBLE_SUB
470                      (none | ArchInstructionFormat.Binary_traits),
471                      1, 0, 2,
472                      PhysicalDefUse.mask,
473                      PhysicalDefUse.mask),
474     new ArchOperator((char)87, ArchInstructionFormat.Binary_format,  //INT_MUL
475                      (commutative | ArchInstructionFormat.Binary_traits),
476                      1, 0, 2,
477                      PhysicalDefUse.mask,
478                      PhysicalDefUse.mask),
479     new ArchOperator((char)88, ArchInstructionFormat.Binary_format,  //LONG_MUL
480                      (commutative | ArchInstructionFormat.Binary_traits),
481                      1, 0, 2,
482                      PhysicalDefUse.mask,
483                      PhysicalDefUse.mask),
484     new ArchOperator((char)89, ArchInstructionFormat.Binary_format,  //FLOAT_MUL
485                      (commutative | ArchInstructionFormat.Binary_traits),
486                      1, 0, 2,
487                      PhysicalDefUse.mask,
488                      PhysicalDefUse.mask),
489     new ArchOperator((char)90, ArchInstructionFormat.Binary_format,  //DOUBLE_MUL
490                      (commutative | ArchInstructionFormat.Binary_traits),
491                      1, 0, 2,
492                      PhysicalDefUse.mask,
493                      PhysicalDefUse.mask),
494     new ArchOperator((char)91, ArchInstructionFormat.GuardedBinary_format,  //INT_DIV
495                      (none | ArchInstructionFormat.GuardedBinary_traits),
496                      1, 0, 3,
497                      PhysicalDefUse.mask,
498                      PhysicalDefUse.mask),
499     new ArchOperator((char)92, ArchInstructionFormat.GuardedBinary_format,  //LONG_DIV
500                      (none | ArchInstructionFormat.GuardedBinary_traits),
501                      1, 0, 3,
502                      PhysicalDefUse.mask,
503                      PhysicalDefUse.mask),
504     new ArchOperator((char)93, ArchInstructionFormat.Binary_format,  //FLOAT_DIV
505                      (none | ArchInstructionFormat.Binary_traits),
506                      1, 0, 2,
507                      PhysicalDefUse.mask,
508                      PhysicalDefUse.mask),
509     new ArchOperator((char)94, ArchInstructionFormat.Binary_format,  //DOUBLE_DIV
510                      (none | ArchInstructionFormat.Binary_traits),
511                      1, 0, 2,
512                      PhysicalDefUse.mask,
513                      PhysicalDefUse.mask),
514     new ArchOperator((char)95, ArchInstructionFormat.GuardedBinary_format,  //INT_REM
515                      (none | ArchInstructionFormat.GuardedBinary_traits),
516                      1, 0, 3,
517                      PhysicalDefUse.mask,
518                      PhysicalDefUse.mask),
519     new ArchOperator((char)96, ArchInstructionFormat.GuardedBinary_format,  //LONG_REM
520                      (none | ArchInstructionFormat.GuardedBinary_traits),
521                      1, 0, 3,
522                      PhysicalDefUse.mask,
523                      PhysicalDefUse.mask),
524     new ArchOperator((char)97, ArchInstructionFormat.Binary_format,  //FLOAT_REM
525                      (none | ArchInstructionFormat.Binary_traits),
526                      1, 0, 2,
527                      PhysicalDefUse.maskIEEEMagicUses,
528                      PhysicalDefUse.mask),
529     new ArchOperator((char)98, ArchInstructionFormat.Binary_format,  //DOUBLE_REM
530                      (none | ArchInstructionFormat.Binary_traits),
531                      1, 0, 2,
532                      PhysicalDefUse.maskIEEEMagicUses,
533                      PhysicalDefUse.mask),
534     new ArchOperator((char)99, ArchInstructionFormat.Unary_format,  //REF_NEG
535                      (none | ArchInstructionFormat.Unary_traits),
536                      1, 0, 1,
537                      PhysicalDefUse.mask,
538                      PhysicalDefUse.mask),
539     new ArchOperator((char)100, ArchInstructionFormat.Unary_format,  //INT_NEG
540                      (none | ArchInstructionFormat.Unary_traits),
541                      1, 0, 1,
542                      PhysicalDefUse.mask,
543                      PhysicalDefUse.mask),
544     new ArchOperator((char)101, ArchInstructionFormat.Unary_format,  //LONG_NEG
545                      (none | ArchInstructionFormat.Unary_traits),
546                      1, 0, 1,
547                      PhysicalDefUse.mask,
548                      PhysicalDefUse.mask),
549     new ArchOperator((char)102, ArchInstructionFormat.Unary_format,  //FLOAT_NEG
550                      (none | ArchInstructionFormat.Unary_traits),
551                      1, 0, 1,
552                      PhysicalDefUse.mask,
553                      PhysicalDefUse.mask),
554     new ArchOperator((char)103, ArchInstructionFormat.Unary_format,  //DOUBLE_NEG
555                      (none | ArchInstructionFormat.Unary_traits),
556                      1, 0, 1,
557                      PhysicalDefUse.mask,
558                      PhysicalDefUse.mask),
559     new ArchOperator((char)104, ArchInstructionFormat.Unary_format,  //FLOAT_SQRT
560                      (none | ArchInstructionFormat.Unary_traits),
561                      1, 0, 1,
562                      PhysicalDefUse.mask,
563                      PhysicalDefUse.mask),
564     new ArchOperator((char)105, ArchInstructionFormat.Unary_format,  //DOUBLE_SQRT
565                      (none | ArchInstructionFormat.Unary_traits),
566                      1, 0, 1,
567                      PhysicalDefUse.mask,
568                      PhysicalDefUse.mask),
569     new ArchOperator((char)106, ArchInstructionFormat.Binary_format,  //REF_SHL
570                      (none | ArchInstructionFormat.Binary_traits),
571                      1, 0, 2,
572                      PhysicalDefUse.mask,
573                      PhysicalDefUse.mask),
574     new ArchOperator((char)107, ArchInstructionFormat.Binary_format,  //INT_SHL
575                      (none | ArchInstructionFormat.Binary_traits),
576                      1, 0, 2,
577                      PhysicalDefUse.mask,
578                      PhysicalDefUse.mask),
579     new ArchOperator((char)108, ArchInstructionFormat.Binary_format,  //LONG_SHL
580                      (none | ArchInstructionFormat.Binary_traits),
581                      1, 0, 2,
582                      PhysicalDefUse.mask,
583                      PhysicalDefUse.mask),
584     new ArchOperator((char)109, ArchInstructionFormat.Binary_format,  //REF_SHR
585                      (none | ArchInstructionFormat.Binary_traits),
586                      1, 0, 2,
587                      PhysicalDefUse.mask,
588                      PhysicalDefUse.mask),
589     new ArchOperator((char)110, ArchInstructionFormat.Binary_format,  //INT_SHR
590                      (none | ArchInstructionFormat.Binary_traits),
591                      1, 0, 2,
592                      PhysicalDefUse.mask,
593                      PhysicalDefUse.mask),
594     new ArchOperator((char)111, ArchInstructionFormat.Binary_format,  //LONG_SHR
595                      (none | ArchInstructionFormat.Binary_traits),
596                      1, 0, 2,
597                      PhysicalDefUse.mask,
598                      PhysicalDefUse.mask),
599     new ArchOperator((char)112, ArchInstructionFormat.Binary_format,  //REF_USHR
600                      (none | ArchInstructionFormat.Binary_traits),
601                      1, 0, 2,
602                      PhysicalDefUse.mask,
603                      PhysicalDefUse.mask),
604     new ArchOperator((char)113, ArchInstructionFormat.Binary_format,  //INT_USHR
605                      (none | ArchInstructionFormat.Binary_traits),
606                      1, 0, 2,
607                      PhysicalDefUse.mask,
608                      PhysicalDefUse.mask),
609     new ArchOperator((char)114, ArchInstructionFormat.Binary_format,  //LONG_USHR
610                      (none | ArchInstructionFormat.Binary_traits),
611                      1, 0, 2,
612                      PhysicalDefUse.mask,
613                      PhysicalDefUse.mask),
614     new ArchOperator((char)115, ArchInstructionFormat.Binary_format,  //REF_AND
615                      (commutative | ArchInstructionFormat.Binary_traits),
616                      1, 0, 2,
617                      PhysicalDefUse.mask,
618                      PhysicalDefUse.mask),
619     new ArchOperator((char)116, ArchInstructionFormat.Binary_format,  //INT_AND
620                      (commutative | ArchInstructionFormat.Binary_traits),
621                      1, 0, 2,
622                      PhysicalDefUse.mask,
623                      PhysicalDefUse.mask),
624     new ArchOperator((char)117, ArchInstructionFormat.Binary_format,  //LONG_AND
625                      (commutative | ArchInstructionFormat.Binary_traits),
626                      1, 0, 2,
627                      PhysicalDefUse.mask,
628                      PhysicalDefUse.mask),
629     new ArchOperator((char)118, ArchInstructionFormat.Binary_format,  //REF_OR
630                      (commutative | ArchInstructionFormat.Binary_traits),
631                      1, 0, 2,
632                      PhysicalDefUse.mask,
633                      PhysicalDefUse.mask),
634     new ArchOperator((char)119, ArchInstructionFormat.Binary_format,  //INT_OR
635                      (commutative | ArchInstructionFormat.Binary_traits),
636                      1, 0, 2,
637                      PhysicalDefUse.mask,
638                      PhysicalDefUse.mask),
639     new ArchOperator((char)120, ArchInstructionFormat.Binary_format,  //LONG_OR
640                      (commutative | ArchInstructionFormat.Binary_traits),
641                      1, 0, 2,
642                      PhysicalDefUse.mask,
643                      PhysicalDefUse.mask),
644     new ArchOperator((char)121, ArchInstructionFormat.Binary_format,  //REF_XOR
645                      (commutative | ArchInstructionFormat.Binary_traits),
646                      1, 0, 2,
647                      PhysicalDefUse.mask,
648                      PhysicalDefUse.mask),
649     new ArchOperator((char)122, ArchInstructionFormat.Binary_format,  //INT_XOR
650                      (commutative | ArchInstructionFormat.Binary_traits),
651                      1, 0, 2,
652                      PhysicalDefUse.mask,
653                      PhysicalDefUse.mask),
654     new ArchOperator((char)123, ArchInstructionFormat.Unary_format,  //REF_NOT
655                      (none | ArchInstructionFormat.Unary_traits),
656                      1, 0, 1,
657                      PhysicalDefUse.mask,
658                      PhysicalDefUse.mask),
659     new ArchOperator((char)124, ArchInstructionFormat.Unary_format,  //INT_NOT
660                      (none | ArchInstructionFormat.Unary_traits),
661                      1, 0, 1,
662                      PhysicalDefUse.mask,
663                      PhysicalDefUse.mask),
664     new ArchOperator((char)125, ArchInstructionFormat.Unary_format,  //LONG_NOT
665                      (none | ArchInstructionFormat.Unary_traits),
666                      1, 0, 1,
667                      PhysicalDefUse.mask,
668                      PhysicalDefUse.mask),
669     new ArchOperator((char)126, ArchInstructionFormat.Binary_format,  //LONG_XOR
670                      (commutative | ArchInstructionFormat.Binary_traits),
671                      1, 0, 2,
672                      PhysicalDefUse.mask,
673                      PhysicalDefUse.mask),
674     new ArchOperator((char)127, ArchInstructionFormat.Unary_format,  //INT_2ADDRSigExt
675                      (none | ArchInstructionFormat.Unary_traits),
676                      1, 0, 1,
677                      PhysicalDefUse.mask,
678                      PhysicalDefUse.mask),
679     new ArchOperator((char)128, ArchInstructionFormat.Unary_format,  //INT_2ADDRZerExt
680                      (none | ArchInstructionFormat.Unary_traits),
681                      1, 0, 1,
682                      PhysicalDefUse.mask,
683                      PhysicalDefUse.mask),
684     new ArchOperator((char)129, ArchInstructionFormat.Unary_format,  //LONG_2ADDR
685                      (none | ArchInstructionFormat.Unary_traits),
686                      1, 0, 1,
687                      PhysicalDefUse.mask,
688                      PhysicalDefUse.mask),
689     new ArchOperator((char)130, ArchInstructionFormat.Unary_format,  //ADDR_2INT
690                      (none | ArchInstructionFormat.Unary_traits),
691                      1, 0, 1,
692                      PhysicalDefUse.mask,
693                      PhysicalDefUse.mask),
694     new ArchOperator((char)131, ArchInstructionFormat.Unary_format,  //ADDR_2LONG
695                      (none | ArchInstructionFormat.Unary_traits),
696                      1, 0, 1,
697                      PhysicalDefUse.mask,
698                      PhysicalDefUse.mask),
699     new ArchOperator((char)132, ArchInstructionFormat.Unary_format,  //INT_2LONG
700                      (none | ArchInstructionFormat.Unary_traits),
701                      1, 0, 1,
702                      PhysicalDefUse.mask,
703                      PhysicalDefUse.mask),
704     new ArchOperator((char)133, ArchInstructionFormat.Unary_format,  //INT_2FLOAT
705                      (none | ArchInstructionFormat.Unary_traits),
706                      1, 0, 1,
707                      PhysicalDefUse.maskIEEEMagicUses,
708                      PhysicalDefUse.mask),
709     new ArchOperator((char)134, ArchInstructionFormat.Unary_format,  //INT_2DOUBLE
710                      (none | ArchInstructionFormat.Unary_traits),
711                      1, 0, 1,
712                      PhysicalDefUse.maskIEEEMagicUses,
713                      PhysicalDefUse.mask),
714     new ArchOperator((char)135, ArchInstructionFormat.Unary_format,  //LONG_2INT
715                      (none | ArchInstructionFormat.Unary_traits),
716                      1, 0, 1,
717                      PhysicalDefUse.mask,
718                      PhysicalDefUse.mask),
719     new ArchOperator((char)136, ArchInstructionFormat.Unary_format,  //LONG_2FLOAT
720                      (none | ArchInstructionFormat.Unary_traits),
721                      1, 0, 1,
722                      PhysicalDefUse.mask,
723                      PhysicalDefUse.mask),
724     new ArchOperator((char)137, ArchInstructionFormat.Unary_format,  //LONG_2DOUBLE
725                      (none | ArchInstructionFormat.Unary_traits),
726                      1, 0, 1,
727                      PhysicalDefUse.mask,
728                      PhysicalDefUse.mask),
729     new ArchOperator((char)138, ArchInstructionFormat.Unary_format,  //FLOAT_2INT
730                      (none | ArchInstructionFormat.Unary_traits),
731                      1, 0, 1,
732                      PhysicalDefUse.mask,
733                      PhysicalDefUse.mask),
734     new ArchOperator((char)139, ArchInstructionFormat.Unary_format,  //FLOAT_2LONG
735                      (none | ArchInstructionFormat.Unary_traits),
736                      1, 0, 1,
737                      PhysicalDefUse.mask,
738                      PhysicalDefUse.mask),
739     new ArchOperator((char)140, ArchInstructionFormat.Unary_format,  //FLOAT_2DOUBLE
740                      (none | ArchInstructionFormat.Unary_traits),
741                      1, 0, 1,
742                      PhysicalDefUse.mask,
743                      PhysicalDefUse.mask),
744     new ArchOperator((char)141, ArchInstructionFormat.Unary_format,  //DOUBLE_2INT
745                      (none | ArchInstructionFormat.Unary_traits),
746                      1, 0, 1,
747                      PhysicalDefUse.mask,
748                      PhysicalDefUse.mask),
749     new ArchOperator((char)142, ArchInstructionFormat.Unary_format,  //DOUBLE_2LONG
750                      (none | ArchInstructionFormat.Unary_traits),
751                      1, 0, 1,
752                      PhysicalDefUse.mask,
753                      PhysicalDefUse.mask),
754     new ArchOperator((char)143, ArchInstructionFormat.Unary_format,  //DOUBLE_2FLOAT
755                      (none | ArchInstructionFormat.Unary_traits),
756                      1, 0, 1,
757                      PhysicalDefUse.mask,
758                      PhysicalDefUse.mask),
759     new ArchOperator((char)144, ArchInstructionFormat.Unary_format,  //INT_2BYTE
760                      (none | ArchInstructionFormat.Unary_traits),
761                      1, 0, 1,
762                      PhysicalDefUse.mask,
763                      PhysicalDefUse.mask),
764     new ArchOperator((char)145, ArchInstructionFormat.Unary_format,  //INT_2USHORT
765                      (none | ArchInstructionFormat.Unary_traits),
766                      1, 0, 1,
767                      PhysicalDefUse.mask,
768                      PhysicalDefUse.mask),
769     new ArchOperator((char)146, ArchInstructionFormat.Unary_format,  //INT_2SHORT
770                      (none | ArchInstructionFormat.Unary_traits),
771                      1, 0, 1,
772                      PhysicalDefUse.mask,
773                      PhysicalDefUse.mask),
774     new ArchOperator((char)147, ArchInstructionFormat.Binary_format,  //LONG_CMP
775                      (compare | ArchInstructionFormat.Binary_traits),
776                      1, 0, 2,
777                      PhysicalDefUse.mask,
778                      PhysicalDefUse.mask),
779     new ArchOperator((char)148, ArchInstructionFormat.Binary_format,  //FLOAT_CMPL
780                      (compare | ArchInstructionFormat.Binary_traits),
781                      1, 0, 2,
782                      PhysicalDefUse.mask,
783                      PhysicalDefUse.mask),
784     new ArchOperator((char)149, ArchInstructionFormat.Binary_format,  //FLOAT_CMPG
785                      (compare | ArchInstructionFormat.Binary_traits),
786                      1, 0, 2,
787                      PhysicalDefUse.mask,
788                      PhysicalDefUse.mask),
789     new ArchOperator((char)150, ArchInstructionFormat.Binary_format,  //DOUBLE_CMPL
790                      (compare | ArchInstructionFormat.Binary_traits),
791                      1, 0, 2,
792                      PhysicalDefUse.mask,
793                      PhysicalDefUse.mask),
794     new ArchOperator((char)151, ArchInstructionFormat.Binary_format,  //DOUBLE_CMPG
795                      (compare | ArchInstructionFormat.Binary_traits),
796                      1, 0, 2,
797                      PhysicalDefUse.mask,
798                      PhysicalDefUse.mask),
799     new ArchOperator((char)152, ArchInstructionFormat.Return_format,  //RETURN
800                      (ret | ArchInstructionFormat.Return_traits),
801                      0, 0, 1,
802                      PhysicalDefUse.mask,
803                      PhysicalDefUse.mask),
804     new ArchOperator((char)153, ArchInstructionFormat.NullCheck_format,  //NULL_CHECK
805                      (immedPEI | ArchInstructionFormat.NullCheck_traits),
806                      1, 0, 1,
807                      PhysicalDefUse.mask,
808                      PhysicalDefUse.mask),
809     new ArchOperator((char)154, ArchInstructionFormat.Goto_format,  //GOTO
810                      (branch | ArchInstructionFormat.Goto_traits),
811                      0, 0, 1,
812                      PhysicalDefUse.mask,
813                      PhysicalDefUse.mask),
814     new ArchOperator((char)155, ArchInstructionFormat.Unary_format,  //BOOLEAN_NOT
815                      (none | ArchInstructionFormat.Unary_traits),
816                      1, 0, 1,
817                      PhysicalDefUse.mask,
818                      PhysicalDefUse.mask),
819     new ArchOperator((char)156, ArchInstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_INT
820                      (compare | ArchInstructionFormat.BooleanCmp_traits),
821                      1, 0, 4,
822                      PhysicalDefUse.mask,
823                      PhysicalDefUse.mask),
824     new ArchOperator((char)157, ArchInstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_ADDR
825                      (compare | ArchInstructionFormat.BooleanCmp_traits),
826                      1, 0, 4,
827                      PhysicalDefUse.mask,
828                      PhysicalDefUse.mask),
829     new ArchOperator((char)158, ArchInstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_LONG
830                      (compare | ArchInstructionFormat.BooleanCmp_traits),
831                      1, 0, 4,
832                      PhysicalDefUse.mask,
833                      PhysicalDefUse.mask),
834     new ArchOperator((char)159, ArchInstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_FLOAT
835                      (compare | ArchInstructionFormat.BooleanCmp_traits),
836                      1, 0, 4,
837                      PhysicalDefUse.mask,
838                      PhysicalDefUse.mask),
839     new ArchOperator((char)160, ArchInstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_DOUBLE
840                      (compare | ArchInstructionFormat.BooleanCmp_traits),
841                      1, 0, 4,
842                      PhysicalDefUse.mask,
843                      PhysicalDefUse.mask),
844     new ArchOperator((char)161, ArchInstructionFormat.Load_format,  //BYTE_LOAD
845                      (load | ArchInstructionFormat.Load_traits),
846                      1, 0, 4,
847                      PhysicalDefUse.mask,
848                      PhysicalDefUse.mask),
849     new ArchOperator((char)162, ArchInstructionFormat.Load_format,  //UBYTE_LOAD
850                      (load | ArchInstructionFormat.Load_traits),
851                      1, 0, 4,
852                      PhysicalDefUse.mask,
853                      PhysicalDefUse.mask),
854     new ArchOperator((char)163, ArchInstructionFormat.Load_format,  //SHORT_LOAD
855                      (load | ArchInstructionFormat.Load_traits),
856                      1, 0, 4,
857                      PhysicalDefUse.mask,
858                      PhysicalDefUse.mask),
859     new ArchOperator((char)164, ArchInstructionFormat.Load_format,  //USHORT_LOAD
860                      (load | ArchInstructionFormat.Load_traits),
861                      1, 0, 4,
862                      PhysicalDefUse.mask,
863                      PhysicalDefUse.mask),
864     new ArchOperator((char)165, ArchInstructionFormat.Load_format,  //REF_LOAD
865                      (load | ArchInstructionFormat.Load_traits),
866                      1, 0, 4,
867                      PhysicalDefUse.mask,
868                      PhysicalDefUse.mask),
869     new ArchOperator((char)166, ArchInstructionFormat.Store_format,  //REF_STORE
870                      (store | ArchInstructionFormat.Store_traits),
871                      0, 0, 5,
872                      PhysicalDefUse.mask,
873                      PhysicalDefUse.mask),
874     new ArchOperator((char)167, ArchInstructionFormat.Load_format,  //INT_LOAD
875                      (load | ArchInstructionFormat.Load_traits),
876                      1, 0, 4,
877                      PhysicalDefUse.mask,
878                      PhysicalDefUse.mask),
879     new ArchOperator((char)168, ArchInstructionFormat.Load_format,  //LONG_LOAD
880                      (load | ArchInstructionFormat.Load_traits),
881                      1, 0, 4,
882                      PhysicalDefUse.mask,
883                      PhysicalDefUse.mask),
884     new ArchOperator((char)169, ArchInstructionFormat.Load_format,  //FLOAT_LOAD
885                      (load | ArchInstructionFormat.Load_traits),
886                      1, 0, 4,
887                      PhysicalDefUse.mask,
888                      PhysicalDefUse.mask),
889     new ArchOperator((char)170, ArchInstructionFormat.Load_format,  //DOUBLE_LOAD
890                      (load | ArchInstructionFormat.Load_traits),
891                      1, 0, 4,
892                      PhysicalDefUse.mask,
893                      PhysicalDefUse.mask),
894     new ArchOperator((char)171, ArchInstructionFormat.Store_format,  //BYTE_STORE
895                      (store | ArchInstructionFormat.Store_traits),
896                      0, 0, 5,
897                      PhysicalDefUse.mask,
898                      PhysicalDefUse.mask),
899     new ArchOperator((char)172, ArchInstructionFormat.Store_format,  //SHORT_STORE
900                      (store | ArchInstructionFormat.Store_traits),
901                      0, 0, 5,
902                      PhysicalDefUse.mask,
903                      PhysicalDefUse.mask),
904     new ArchOperator((char)173, ArchInstructionFormat.Store_format,  //INT_STORE
905                      (store | ArchInstructionFormat.Store_traits),
906                      0, 0, 5,
907                      PhysicalDefUse.mask,
908                      PhysicalDefUse.mask),
909     new ArchOperator((char)174, ArchInstructionFormat.Store_format,  //LONG_STORE
910                      (store | ArchInstructionFormat.Store_traits),
911                      0, 0, 5,
912                      PhysicalDefUse.mask,
913                      PhysicalDefUse.mask),
914     new ArchOperator((char)175, ArchInstructionFormat.Store_format,  //FLOAT_STORE
915                      (store | ArchInstructionFormat.Store_traits),
916                      0, 0, 5,
917                      PhysicalDefUse.mask,
918                      PhysicalDefUse.mask),
919     new ArchOperator((char)176, ArchInstructionFormat.Store_format,  //DOUBLE_STORE
920                      (store | ArchInstructionFormat.Store_traits),
921                      0, 0, 5,
922                      PhysicalDefUse.mask,
923                      PhysicalDefUse.mask),
924     new ArchOperator((char)177, ArchInstructionFormat.Prepare_format,  //PREPARE_INT
925                      (load | acquire | ArchInstructionFormat.Prepare_traits),
926                      1, 0, 4,
927                      PhysicalDefUse.mask,
928                      PhysicalDefUse.mask),
929     new ArchOperator((char)178, ArchInstructionFormat.Prepare_format,  //PREPARE_ADDR
930                      (load | acquire | ArchInstructionFormat.Prepare_traits),
931                      1, 0, 4,
932                      PhysicalDefUse.mask,
933                      PhysicalDefUse.mask),
934     new ArchOperator((char)179, ArchInstructionFormat.Prepare_format,  //PREPARE_LONG
935                      (load | acquire | ArchInstructionFormat.Prepare_traits),
936                      1, 0, 4,
937                      PhysicalDefUse.mask,
938                      PhysicalDefUse.mask),
939     new ArchOperator((char)180, ArchInstructionFormat.Attempt_format,  //ATTEMPT_INT
940                      (load | store | compare | release | ArchInstructionFormat.Attempt_traits),
941                      1, 0, 6,
942                      PhysicalDefUse.mask,
943                      PhysicalDefUse.mask),
944     new ArchOperator((char)181, ArchInstructionFormat.Attempt_format,  //ATTEMPT_ADDR
945                      (load | store | compare | release | ArchInstructionFormat.Attempt_traits),
946                      1, 0, 6,
947                      PhysicalDefUse.mask,
948                      PhysicalDefUse.mask),
949     new ArchOperator((char)182, ArchInstructionFormat.Attempt_format,  //ATTEMPT_LONG
950                      (load | store | compare | release  | ArchInstructionFormat.Attempt_traits),
951                      1, 0, 6,
952                      PhysicalDefUse.mask,
953                      PhysicalDefUse.mask),
954     new ArchOperator((char)183, ArchInstructionFormat.Call_format,  //CALL
955                      (call | memAsLoad | memAsStore | dynLink | immedPEI | ArchInstructionFormat.Call_traits),
956                      1, 0, 3,
957                      PhysicalDefUse.maskcallDefs,
958                      PhysicalDefUse.maskcallUses),
959     new ArchOperator((char)184, ArchInstructionFormat.Call_format,  //SYSCALL
960                      (call | memAsLoad | memAsStore | ArchInstructionFormat.Call_traits),
961                      1, 0, 3,
962                      PhysicalDefUse.maskcallDefs,
963                      PhysicalDefUse.maskcallUses),
964     new ArchOperator((char)185, ArchInstructionFormat.Empty_format,  //YIELDPOINT_PROLOGUE
965                      (tsp | yieldPoint | ArchInstructionFormat.Empty_traits),
966                      0, 0, 0,
967                      PhysicalDefUse.mask,
968                      PhysicalDefUse.mask),
969     new ArchOperator((char)186, ArchInstructionFormat.Empty_format,  //YIELDPOINT_EPILOGUE
970                      (tsp | yieldPoint | ArchInstructionFormat.Empty_traits),
971                      0, 0, 0,
972                      PhysicalDefUse.mask,
973                      PhysicalDefUse.mask),
974     new ArchOperator((char)187, ArchInstructionFormat.Empty_format,  //YIELDPOINT_BACKEDGE
975                      (tsp | yieldPoint | ArchInstructionFormat.Empty_traits),
976                      0, 0, 0,
977                      PhysicalDefUse.mask,
978                      PhysicalDefUse.mask),
979     new ArchOperator((char)188, ArchInstructionFormat.OsrPoint_format,  //YIELDPOINT_OSR
980                      (tsp | yieldPoint | ArchInstructionFormat.OsrPoint_traits),
981                      0, 0, 1,
982                      PhysicalDefUse.mask,
983                      PhysicalDefUse.mask),
984     new ArchOperator((char)189, ArchInstructionFormat.OsrBarrier_format,  //OSR_BARRIER
985                      (none | ArchInstructionFormat.OsrBarrier_traits),
986                      0, 0, 1,
987                      PhysicalDefUse.mask,
988                      PhysicalDefUse.mask),
989     new ArchOperator((char)190, ArchInstructionFormat.Prologue_format,  //IR_PROLOGUE
990                      (immedPEI | ArchInstructionFormat.Prologue_traits),
991                      0, 0, 0,
992                      PhysicalDefUse.mask,
993                      PhysicalDefUse.mask),
994     new ArchOperator((char)191, ArchInstructionFormat.CacheOp_format,  //RESOLVE
995                      (tsp | dynLink | immedPEI | ArchInstructionFormat.CacheOp_traits),
996                      0, 0, 1,
997                      PhysicalDefUse.mask,
998                      PhysicalDefUse.mask),
999     new ArchOperator((char)192, ArchInstructionFormat.Unary_format,  //RESOLVE_MEMBER
1000                      (tsp | dynLink | immedPEI | ArchInstructionFormat.Unary_traits),
1001                      1, 0, 1,
1002                      PhysicalDefUse.mask,
1003                      PhysicalDefUse.mask),
1004     new ArchOperator((char)193, ArchInstructionFormat.Nullary_format,  //GET_TIME_BASE
1005                      (none | ArchInstructionFormat.Nullary_traits),
1006                      1, 0, 0,
1007                      PhysicalDefUse.mask,
1008                      PhysicalDefUse.mask),
1009     new ArchOperator((char)194, ArchInstructionFormat.InstrumentedCounter_format,  //INSTRUMENTED_EVENT_COUNTER
1010                      (none | ArchInstructionFormat.InstrumentedCounter_traits),
1011                      0, 0, 3,
1012                      PhysicalDefUse.mask,
1013                      PhysicalDefUse.mask),
1014     new ArchOperator((char)195, ArchInstructionFormat.TrapIf_format,  //TRAP_IF
1015                      (immedPEI | ArchInstructionFormat.TrapIf_traits),
1016                      1, 0, 4,
1017                      PhysicalDefUse.mask,
1018                      PhysicalDefUse.mask),
1019     new ArchOperator((char)196, ArchInstructionFormat.Trap_format,  //TRAP
1020                      (immedPEI | ArchInstructionFormat.Trap_traits),
1021                      1, 0, 1,
1022                      PhysicalDefUse.mask,
1023                      PhysicalDefUse.mask),
1024     new ArchOperator((char)197, ArchInstructionFormat.Unary_format,  //FLOAT_AS_INT_BITS
1025                      (none | ArchInstructionFormat.Unary_traits),
1026                      1, 0, 1,
1027                      PhysicalDefUse.mask,
1028                      PhysicalDefUse.mask),
1029     new ArchOperator((char)198, ArchInstructionFormat.Unary_format,  //INT_BITS_AS_FLOAT
1030                      (none | ArchInstructionFormat.Unary_traits),
1031                      1, 0, 1,
1032                      PhysicalDefUse.mask,
1033                      PhysicalDefUse.mask),
1034     new ArchOperator((char)199, ArchInstructionFormat.Unary_format,  //DOUBLE_AS_LONG_BITS
1035                      (none | ArchInstructionFormat.Unary_traits),
1036                      1, 0, 1,
1037                      PhysicalDefUse.mask,
1038                      PhysicalDefUse.mask),
1039     new ArchOperator((char)200, ArchInstructionFormat.Unary_format,  //LONG_BITS_AS_DOUBLE
1040                      (none | ArchInstructionFormat.Unary_traits),
1041                      1, 0, 1,
1042                      PhysicalDefUse.mask,
1043                      PhysicalDefUse.mask),
1044     new ArchOperator((char)201, ArchInstructionFormat.GuardedUnary_format,  //ARRAYLENGTH
1045                      (none | ArchInstructionFormat.GuardedUnary_traits),
1046                      1, 0, 2,
1047                      PhysicalDefUse.mask,
1048                      PhysicalDefUse.mask),
1049     new ArchOperator((char)202, ArchInstructionFormat.GuardedUnary_format,  //GET_OBJ_TIB
1050                      (none | ArchInstructionFormat.GuardedUnary_traits),
1051                      1, 0, 2,
1052                      PhysicalDefUse.mask,
1053                      PhysicalDefUse.mask),
1054     new ArchOperator((char)203, ArchInstructionFormat.Unary_format,  //GET_CLASS_TIB
1055                      (none | ArchInstructionFormat.Unary_traits),
1056                      1, 0, 1,
1057                      PhysicalDefUse.mask,
1058                      PhysicalDefUse.mask),
1059     new ArchOperator((char)204, ArchInstructionFormat.Unary_format,  //GET_TYPE_FROM_TIB
1060                      (none | ArchInstructionFormat.Unary_traits),
1061                      1, 0, 1,
1062                      PhysicalDefUse.mask,
1063                      PhysicalDefUse.mask),
1064     new ArchOperator((char)205, ArchInstructionFormat.Unary_format,  //GET_SUPERCLASS_IDS_FROM_TIB
1065                      (none | ArchInstructionFormat.Unary_traits),
1066                      1, 0, 1,
1067                      PhysicalDefUse.mask,
1068                      PhysicalDefUse.mask),
1069     new ArchOperator((char)206, ArchInstructionFormat.Unary_format,  //GET_DOES_IMPLEMENT_FROM_TIB
1070                      (none | ArchInstructionFormat.Unary_traits),
1071                      1, 0, 1,
1072                      PhysicalDefUse.mask,
1073                      PhysicalDefUse.mask),
1074     new ArchOperator((char)207, ArchInstructionFormat.Unary_format,  //GET_ARRAY_ELEMENT_TIB_FROM_TIB
1075                      (none | ArchInstructionFormat.Unary_traits),
1076                      1, 0, 1,
1077                      PhysicalDefUse.mask,
1078                      PhysicalDefUse.mask),
1079     new ArchOperator((char)208, ArchInstructionFormat.LowTableSwitch_format,  //LOWTABLESWITCH
1080                      (branch | ArchInstructionFormat.LowTableSwitch_traits),
1081                      0, 0, 1,
1082                      PhysicalDefUse.mask,
1083                      PhysicalDefUse.mask),
1084     new ArchOperator((char)209, ArchInstructionFormat.Unassigned_format,  //ADDRESS_CONSTANT
1085                      (none),
1086                      0,0,0,
1087                      PhysicalDefUse.mask,
1088                      PhysicalDefUse.mask),
1089     new ArchOperator((char)210, ArchInstructionFormat.Unassigned_format,  //INT_CONSTANT
1090                      (none),
1091                      0,0,0,
1092                      PhysicalDefUse.mask,
1093                      PhysicalDefUse.mask),
1094     new ArchOperator((char)211, ArchInstructionFormat.Unassigned_format,  //LONG_CONSTANT
1095                      (none),
1096                      0,0,0,
1097                      PhysicalDefUse.mask,
1098                      PhysicalDefUse.mask),
1099     new ArchOperator((char)212, ArchInstructionFormat.Unassigned_format,  //REGISTER
1100                      (none),
1101                      0,0,0,
1102                      PhysicalDefUse.mask,
1103                      PhysicalDefUse.mask),
1104     new ArchOperator((char)213, ArchInstructionFormat.Unassigned_format,  //OTHER_OPERAND
1105                      (none),
1106                      0,0,0,
1107                      PhysicalDefUse.mask,
1108                      PhysicalDefUse.mask),
1109     new ArchOperator((char)214, ArchInstructionFormat.Unassigned_format,  //NULL
1110                      (none),
1111                      0,0,0,
1112                      PhysicalDefUse.mask,
1113                      PhysicalDefUse.mask),
1114     new ArchOperator((char)215, ArchInstructionFormat.Unassigned_format,  //BRANCH_TARGET
1115                      (none),
1116                      0,0,0,
1117                      PhysicalDefUse.mask,
1118                      PhysicalDefUse.mask),
1119  //////////////////////////
1120  // END   Architecture Independent opcodes.
1121  // BEGIN Architecture Dependent opcodes & MIR.
1122  //////////////////////////
1123     new ArchOperator((char)(0 + Operators.ARCH_INDEPENDENT_END_opcode),  //MATERIALIZE_FP_CONSTANT
1124                      ArchInstructionFormat.Binary_format,
1125                      (none | ArchInstructionFormat.Binary_traits),
1126                      1, 0, 2,
1127                      PhysicalDefUse.mask,
1128                      PhysicalDefUse.mask),
1129     new ArchOperator((char)(1 + Operators.ARCH_INDEPENDENT_END_opcode),  //ROUND_TO_ZERO
1130                      ArchInstructionFormat.Empty_format,
1131                      (none | ArchInstructionFormat.Empty_traits),
1132                      0, 0, 0,
1133                      PhysicalDefUse.mask,
1134                      PhysicalDefUse.mask),
1135     new ArchOperator((char)(2 + Operators.ARCH_INDEPENDENT_END_opcode),  //CLEAR_FLOATING_POINT_STATE
1136                      ArchInstructionFormat.Empty_format,
1137                      (none | ArchInstructionFormat.Empty_traits),
1138                      0, 0, 0,
1139                      PhysicalDefUse.mask,
1140                      PhysicalDefUse.mask),
1141     new ArchOperator((char)(3 + Operators.ARCH_INDEPENDENT_END_opcode),  //PREFETCH
1142                      ArchInstructionFormat.CacheOp_format,
1143                      (none | ArchInstructionFormat.CacheOp_traits),
1144                      0, 0, 1,
1145                      PhysicalDefUse.mask,
1146                      PhysicalDefUse.mask),
1147     new ArchOperator((char)(4 + Operators.ARCH_INDEPENDENT_END_opcode),  //PAUSE
1148                      ArchInstructionFormat.Empty_format,
1149                      (none | ArchInstructionFormat.Empty_traits),
1150                      0, 0, 0,
1151                      PhysicalDefUse.mask,
1152                      PhysicalDefUse.mask),
1153     new ArchOperator((char)(5 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_ADD
1154                      ArchInstructionFormat.Binary_format,
1155                      (none | ArchInstructionFormat.Binary_traits),
1156                      1, 0, 2,
1157                      PhysicalDefUse.mask,
1158                      PhysicalDefUse.mask),
1159     new ArchOperator((char)(6 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_SUB
1160                      ArchInstructionFormat.Binary_format,
1161                      (none | ArchInstructionFormat.Binary_traits),
1162                      1, 0, 2,
1163                      PhysicalDefUse.mask,
1164                      PhysicalDefUse.mask),
1165     new ArchOperator((char)(7 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_MUL
1166                      ArchInstructionFormat.Binary_format,
1167                      (none | ArchInstructionFormat.Binary_traits),
1168                      1, 0, 2,
1169                      PhysicalDefUse.mask,
1170                      PhysicalDefUse.mask),
1171     new ArchOperator((char)(8 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_DIV
1172                      ArchInstructionFormat.Binary_format,
1173                      (none | ArchInstructionFormat.Binary_traits),
1174                      1, 0, 2,
1175                      PhysicalDefUse.mask,
1176                      PhysicalDefUse.mask),
1177     new ArchOperator((char)(9 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_NEG
1178                      ArchInstructionFormat.Unary_format,
1179                      (none | ArchInstructionFormat.Unary_traits),
1180                      1, 0, 1,
1181                      PhysicalDefUse.mask,
1182                      PhysicalDefUse.mask),
1183     new ArchOperator((char)(10 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_REM
1184                      ArchInstructionFormat.Binary_format,
1185                      (none | ArchInstructionFormat.Binary_traits),
1186                      1, 0, 2,
1187                      PhysicalDefUse.mask,
1188                      PhysicalDefUse.mask),
1189     new ArchOperator((char)(11 + Operators.ARCH_INDEPENDENT_END_opcode),  //INT_2FP
1190                      ArchInstructionFormat.Unary_format,
1191                      (none | ArchInstructionFormat.Unary_traits),
1192                      1, 0, 1,
1193                      PhysicalDefUse.mask,
1194                      PhysicalDefUse.mask),
1195     new ArchOperator((char)(12 + Operators.ARCH_INDEPENDENT_END_opcode),  //LONG_2FP
1196                      ArchInstructionFormat.Unary_format,
1197                      (none | ArchInstructionFormat.Unary_traits),
1198                      1, 0, 1,
1199                      PhysicalDefUse.mask,
1200                      PhysicalDefUse.mask),
1201     new ArchOperator((char)(13 + Operators.ARCH_INDEPENDENT_END_opcode),  //CMP_CMOV
1202                      ArchInstructionFormat.CondMove_format,
1203                      (compare | ArchInstructionFormat.CondMove_traits),
1204                      1, 0, 5,
1205                      PhysicalDefUse.mask,
1206                      PhysicalDefUse.mask),
1207     new ArchOperator((char)(14 + Operators.ARCH_INDEPENDENT_END_opcode),  //FCMP_CMOV
1208                      ArchInstructionFormat.CondMove_format,
1209                      (compare | ArchInstructionFormat.CondMove_traits),
1210                      1, 0, 5,
1211                      PhysicalDefUse.mask,
1212                      PhysicalDefUse.mask),
1213     new ArchOperator((char)(15 + Operators.ARCH_INDEPENDENT_END_opcode),  //LCMP_CMOV
1214                      ArchInstructionFormat.CondMove_format,
1215                      (compare | ArchInstructionFormat.CondMove_traits),
1216                      1, 0, 5,
1217                      PhysicalDefUse.mask,
1218                      PhysicalDefUse.mask),
1219     new ArchOperator((char)(16 + Operators.ARCH_INDEPENDENT_END_opcode),  //CMP_FCMOV
1220                      ArchInstructionFormat.CondMove_format,
1221                      (compare | ArchInstructionFormat.CondMove_traits),
1222                      1, 0, 5,
1223                      PhysicalDefUse.mask,
1224                      PhysicalDefUse.mask),
1225     new ArchOperator((char)(17 + Operators.ARCH_INDEPENDENT_END_opcode),  //FCMP_FCMOV
1226                      ArchInstructionFormat.CondMove_format,
1227                      (compare | ArchInstructionFormat.CondMove_traits),
1228                      1, 0, 5,
1229                      PhysicalDefUse.mask,
1230                      PhysicalDefUse.mask),
1231     new ArchOperator((char)(18 + Operators.ARCH_INDEPENDENT_END_opcode),  //CALL_SAVE_VOLATILE
1232                      ArchInstructionFormat.MIR_Call_format,
1233                      (call | immedPEI | ArchInstructionFormat.MIR_Call_traits),
1234                      2, 0, 2,
1235                      PhysicalDefUse.maskcallDefs,
1236                      PhysicalDefUse.maskcallUses),
1237     new ArchOperator((char)(19 + Operators.ARCH_INDEPENDENT_END_opcode),  //MIR_START
1238                      ArchInstructionFormat.Unassigned_format,
1239                      (none),
1240                      0,0,0,
1241                      PhysicalDefUse.mask,
1242                      PhysicalDefUse.mask),
1243     new ArchOperator((char)(20 + Operators.ARCH_INDEPENDENT_END_opcode),  //REQUIRE_ESP
1244                      ArchInstructionFormat.MIR_UnaryNoRes_format,
1245                      (none | ArchInstructionFormat.MIR_UnaryNoRes_traits),
1246                      0, 0, 1,
1247                      PhysicalDefUse.mask,
1248                      PhysicalDefUse.mask),
1249     new ArchOperator((char)(21 + Operators.ARCH_INDEPENDENT_END_opcode),  //ADVISE_ESP
1250                      ArchInstructionFormat.MIR_UnaryNoRes_format,
1251                      (none | ArchInstructionFormat.MIR_UnaryNoRes_traits),
1252                      0, 0, 1,
1253                      PhysicalDefUse.mask,
1254                      PhysicalDefUse.mask),
1255     new ArchOperator((char)(22 + Operators.ARCH_INDEPENDENT_END_opcode),  //MIR_LOWTABLESWITCH
1256                      ArchInstructionFormat.MIR_LowTableSwitch_format,
1257                      (branch | ArchInstructionFormat.MIR_LowTableSwitch_traits),
1258                      0, 1, 1,
1259                      PhysicalDefUse.mask,
1260                      PhysicalDefUse.mask),
1261     new ArchOperator((char)(23 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_METHODSTART
1262                      ArchInstructionFormat.MIR_Nullary_format,
1263                      (none | ArchInstructionFormat.MIR_Nullary_traits),
1264                      1, 0, 0,
1265                      PhysicalDefUse.mask,
1266                      PhysicalDefUse.mask),
1267     new ArchOperator((char)(24 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FCLEAR
1268                      ArchInstructionFormat.MIR_UnaryNoRes_format,
1269                      (none | ArchInstructionFormat.MIR_UnaryNoRes_traits),
1270                      0, 0, 1,
1271                      PhysicalDefUse.mask,
1272                      PhysicalDefUse.mask),
1273     new ArchOperator((char)(25 + Operators.ARCH_INDEPENDENT_END_opcode),  //DUMMY_DEF
1274                      ArchInstructionFormat.MIR_Nullary_format,
1275                      (none | ArchInstructionFormat.MIR_Nullary_traits),
1276                      1, 0, 0,
1277                      PhysicalDefUse.mask,
1278                      PhysicalDefUse.mask),
1279     new ArchOperator((char)(26 + Operators.ARCH_INDEPENDENT_END_opcode),  //DUMMY_USE
1280                      ArchInstructionFormat.MIR_UnaryNoRes_format,
1281                      (none | ArchInstructionFormat.MIR_UnaryNoRes_traits),
1282                      0, 0, 1,
1283                      PhysicalDefUse.mask,
1284                      PhysicalDefUse.mask),
1285     new ArchOperator((char)(27 + Operators.ARCH_INDEPENDENT_END_opcode),  //IMMQ_MOV
1286                      ArchInstructionFormat.MIR_Move_format,
1287                      (move | ArchInstructionFormat.MIR_Move_traits),
1288                      1, 0, 1,
1289                      PhysicalDefUse.mask,
1290                      PhysicalDefUse.mask),
1291     new ArchOperator((char)(28 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FMOV_ENDING_LIVE_RANGE
1292                      ArchInstructionFormat.MIR_Move_format,
1293                      (move | ArchInstructionFormat.MIR_Move_traits),
1294                      1, 0, 1,
1295                      PhysicalDefUse.mask,
1296                      PhysicalDefUse.mask),
1297     new ArchOperator((char)(29 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FMOV
1298                      ArchInstructionFormat.MIR_Move_format,
1299                      (move | ArchInstructionFormat.MIR_Move_traits),
1300                      1, 0, 1,
1301                      PhysicalDefUse.mask,
1302                      PhysicalDefUse.mask),
1303     new ArchOperator((char)(30 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_TRAPIF
1304                      ArchInstructionFormat.MIR_TrapIf_format,
1305                      (immedPEI | ArchInstructionFormat.MIR_TrapIf_traits),
1306                      1, 0, 4,
1307                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1308                      PhysicalDefUse.mask),
1309     new ArchOperator((char)(31 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_OFFSET
1310                      ArchInstructionFormat.MIR_CaseLabel_format,
1311                      (none | ArchInstructionFormat.MIR_CaseLabel_traits),
1312                      0, 0, 2,
1313                      PhysicalDefUse.mask,
1314                      PhysicalDefUse.mask),
1315     new ArchOperator((char)(32 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_LOCK_CMPXCHG
1316                      ArchInstructionFormat.MIR_CompareExchange_format,
1317                      (compare | ArchInstructionFormat.MIR_CompareExchange_traits),
1318                      0, 2, 1,
1319                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1320                      PhysicalDefUse.mask),
1321     new ArchOperator((char)(33 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_LOCK_CMPXCHG8B
1322                      ArchInstructionFormat.MIR_CompareExchange8B_format,
1323                      (compare | ArchInstructionFormat.MIR_CompareExchange8B_traits),
1324                      0, 3, 2,
1325                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1326                      PhysicalDefUse.mask),
1327     new ArchOperator((char)(34 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ADC
1328                      ArchInstructionFormat.MIR_BinaryAcc_format,
1329                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1330                      0, 1, 1,
1331                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1332                      PhysicalDefUse.maskCF),
1333     new ArchOperator((char)(35 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ADD
1334                      ArchInstructionFormat.MIR_BinaryAcc_format,
1335                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1336                      0, 1, 1,
1337                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1338                      PhysicalDefUse.mask),
1339     new ArchOperator((char)(36 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_AND
1340                      ArchInstructionFormat.MIR_BinaryAcc_format,
1341                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1342                      0, 1, 1,
1343                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1344                      PhysicalDefUse.mask),
1345     new ArchOperator((char)(37 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_BSWAP
1346                      ArchInstructionFormat.MIR_UnaryAcc_format,
1347                      (none | ArchInstructionFormat.MIR_UnaryAcc_traits),
1348                      0, 1, 0,
1349                      PhysicalDefUse.mask,
1350                      PhysicalDefUse.mask),
1351     new ArchOperator((char)(38 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_BT
1352                      ArchInstructionFormat.MIR_Test_format,
1353                      (none | ArchInstructionFormat.MIR_Test_traits),
1354                      0, 0, 2,
1355                      PhysicalDefUse.maskCF,
1356                      PhysicalDefUse.mask),
1357     new ArchOperator((char)(39 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_BTC
1358                      ArchInstructionFormat.MIR_Test_format,
1359                      (none | ArchInstructionFormat.MIR_Test_traits),
1360                      0, 0, 2,
1361                      PhysicalDefUse.maskCF,
1362                      PhysicalDefUse.mask),
1363     new ArchOperator((char)(40 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_BTR
1364                      ArchInstructionFormat.MIR_Test_format,
1365                      (none | ArchInstructionFormat.MIR_Test_traits),
1366                      0, 0, 2,
1367                      PhysicalDefUse.maskCF,
1368                      PhysicalDefUse.mask),
1369     new ArchOperator((char)(41 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_BTS
1370                      ArchInstructionFormat.MIR_Test_format,
1371                      (none | ArchInstructionFormat.MIR_Test_traits),
1372                      0, 0, 2,
1373                      PhysicalDefUse.maskCF,
1374                      PhysicalDefUse.mask),
1375     new ArchOperator((char)(42 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SYSCALL
1376                      ArchInstructionFormat.MIR_Call_format,
1377                      (call | ArchInstructionFormat.MIR_Call_traits),
1378                      2, 0, 2,
1379                      PhysicalDefUse.maskcallDefs,
1380                      PhysicalDefUse.maskcallUses),
1381     new ArchOperator((char)(43 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CALL
1382                      ArchInstructionFormat.MIR_Call_format,
1383                      (call | immedPEI | ArchInstructionFormat.MIR_Call_traits),
1384                      2, 0, 2,
1385                      PhysicalDefUse.maskcallDefs,
1386                      PhysicalDefUse.maskcallUses),
1387     new ArchOperator((char)(44 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CDQ
1388                      ArchInstructionFormat.MIR_ConvertDW2QW_format,
1389                      (none | ArchInstructionFormat.MIR_ConvertDW2QW_traits),
1390                      1, 1, 0,
1391                      PhysicalDefUse.mask,
1392                      PhysicalDefUse.mask),
1393     new ArchOperator((char)(45 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CDO
1394                      ArchInstructionFormat.MIR_ConvertDW2QW_format,
1395                      (none | ArchInstructionFormat.MIR_ConvertDW2QW_traits),
1396                      1, 1, 0,
1397                      PhysicalDefUse.mask,
1398                      PhysicalDefUse.mask),
1399     new ArchOperator((char)(46 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CDQE
1400                      ArchInstructionFormat.MIR_ConvertDW2QW_format,
1401                      (none | ArchInstructionFormat.MIR_ConvertDW2QW_traits),
1402                      1, 1, 0,
1403                      PhysicalDefUse.mask,
1404                      PhysicalDefUse.mask),
1405     new ArchOperator((char)(47 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMOV
1406                      ArchInstructionFormat.MIR_CondMove_format,
1407                      (none | ArchInstructionFormat.MIR_CondMove_traits),
1408                      0, 1, 2,
1409                      PhysicalDefUse.mask,
1410                      PhysicalDefUse.maskCF_OF_PF_SF_ZF),
1411     new ArchOperator((char)(48 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMP
1412                      ArchInstructionFormat.MIR_Compare_format,
1413                      (compare | ArchInstructionFormat.MIR_Compare_traits),
1414                      0, 0, 2,
1415                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1416                      PhysicalDefUse.mask),
1417     new ArchOperator((char)(49 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPXCHG
1418                      ArchInstructionFormat.MIR_CompareExchange_format,
1419                      (compare | ArchInstructionFormat.MIR_CompareExchange_traits),
1420                      0, 2, 1,
1421                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1422                      PhysicalDefUse.mask),
1423     new ArchOperator((char)(50 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPXCHG8B
1424                      ArchInstructionFormat.MIR_CompareExchange8B_format,
1425                      (compare | ArchInstructionFormat.MIR_CompareExchange8B_traits),
1426                      0, 3, 2,
1427                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1428                      PhysicalDefUse.mask),
1429     new ArchOperator((char)(51 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_DEC
1430                      ArchInstructionFormat.MIR_UnaryAcc_format,
1431                      (none | ArchInstructionFormat.MIR_UnaryAcc_traits),
1432                      0, 1, 0,
1433                      PhysicalDefUse.maskAF_OF_PF_SF_ZF,
1434                      PhysicalDefUse.mask),
1435     new ArchOperator((char)(52 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_DIV
1436                      ArchInstructionFormat.MIR_Divide_format,
1437                      (none | ArchInstructionFormat.MIR_Divide_traits),
1438                      0, 2, 2,
1439                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1440                      PhysicalDefUse.mask),
1441     new ArchOperator((char)(53 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FADD
1442                      ArchInstructionFormat.MIR_BinaryAcc_format,
1443                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1444                      0, 1, 1,
1445                      PhysicalDefUse.maskC0_C1_C2_C3,
1446                      PhysicalDefUse.mask),
1447     new ArchOperator((char)(54 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FADDP
1448                      ArchInstructionFormat.MIR_BinaryAcc_format,
1449                      (fpPop | ArchInstructionFormat.MIR_BinaryAcc_traits),
1450                      0, 1, 1,
1451                      PhysicalDefUse.maskC0_C1_C2_C3,
1452                      PhysicalDefUse.mask),
1453     new ArchOperator((char)(55 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FCHS
1454                      ArchInstructionFormat.MIR_UnaryAcc_format,
1455                      (none | ArchInstructionFormat.MIR_UnaryAcc_traits),
1456                      0, 1, 0,
1457                      PhysicalDefUse.maskC0_C1_C2_C3,
1458                      PhysicalDefUse.mask),
1459     new ArchOperator((char)(56 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FCMOV
1460                      ArchInstructionFormat.MIR_CondMove_format,
1461                      (none | ArchInstructionFormat.MIR_CondMove_traits),
1462                      0, 1, 2,
1463                      PhysicalDefUse.maskC0_C1_C2_C3,
1464                      PhysicalDefUse.maskCF_PF_ZF),
1465     new ArchOperator((char)(57 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FCOMI
1466                      ArchInstructionFormat.MIR_Compare_format,
1467                      (compare | ArchInstructionFormat.MIR_Compare_traits),
1468                      0, 0, 2,
1469                      PhysicalDefUse.maskCF_PF_ZF,
1470                      PhysicalDefUse.mask),
1471     new ArchOperator((char)(58 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FCOMIP
1472                      ArchInstructionFormat.MIR_Compare_format,
1473                      (compare | fpPop | ArchInstructionFormat.MIR_Compare_traits),
1474                      0, 0, 2,
1475                      PhysicalDefUse.maskCF_PF_ZF,
1476                      PhysicalDefUse.mask),
1477     new ArchOperator((char)(59 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FDIV
1478                      ArchInstructionFormat.MIR_BinaryAcc_format,
1479                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1480                      0, 1, 1,
1481                      PhysicalDefUse.maskC0_C1_C2_C3,
1482                      PhysicalDefUse.mask),
1483     new ArchOperator((char)(60 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FDIVP
1484                      ArchInstructionFormat.MIR_BinaryAcc_format,
1485                      (fpPop | ArchInstructionFormat.MIR_BinaryAcc_traits),
1486                      0, 1, 1,
1487                      PhysicalDefUse.maskC0_C1_C2_C3,
1488                      PhysicalDefUse.mask),
1489     new ArchOperator((char)(61 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FDIVR
1490                      ArchInstructionFormat.MIR_BinaryAcc_format,
1491                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1492                      0, 1, 1,
1493                      PhysicalDefUse.maskC0_C1_C2_C3,
1494                      PhysicalDefUse.mask),
1495     new ArchOperator((char)(62 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FDIVRP
1496                      ArchInstructionFormat.MIR_BinaryAcc_format,
1497                      (fpPop | ArchInstructionFormat.MIR_BinaryAcc_traits),
1498                      0, 1, 1,
1499                      PhysicalDefUse.maskC0_C1_C2_C3,
1500                      PhysicalDefUse.mask),
1501     new ArchOperator((char)(63 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FEXAM
1502                      ArchInstructionFormat.MIR_UnaryNoRes_format,
1503                      (none | ArchInstructionFormat.MIR_UnaryNoRes_traits),
1504                      0, 0, 1,
1505                      PhysicalDefUse.maskC0_C1_C2_C3,
1506                      PhysicalDefUse.mask),
1507     new ArchOperator((char)(64 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FXCH
1508                      ArchInstructionFormat.MIR_XChng_format,
1509                      (none | ArchInstructionFormat.MIR_XChng_traits),
1510                      0, 2, 0,
1511                      PhysicalDefUse.maskC0_C1_C2_C3,
1512                      PhysicalDefUse.mask),
1513     new ArchOperator((char)(65 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FFREE
1514                      ArchInstructionFormat.MIR_Nullary_format,
1515                      (none | ArchInstructionFormat.MIR_Nullary_traits),
1516                      1, 0, 0,
1517                      PhysicalDefUse.maskC0_C1_C2_C3,
1518                      PhysicalDefUse.mask),
1519     new ArchOperator((char)(66 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FFREEP
1520                      ArchInstructionFormat.MIR_Nullary_format,
1521                      (none | ArchInstructionFormat.MIR_Nullary_traits),
1522                      1, 0, 0,
1523                      PhysicalDefUse.maskC0_C1_C2_C3,
1524                      PhysicalDefUse.mask),
1525     new ArchOperator((char)(67 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FIADD
1526                      ArchInstructionFormat.MIR_BinaryAcc_format,
1527                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1528                      0, 1, 1,
1529                      PhysicalDefUse.maskC0_C1_C2_C3,
1530                      PhysicalDefUse.mask),
1531     new ArchOperator((char)(68 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FIDIV
1532                      ArchInstructionFormat.MIR_BinaryAcc_format,
1533                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1534                      0, 1, 1,
1535                      PhysicalDefUse.maskC0_C1_C2_C3,
1536                      PhysicalDefUse.mask),
1537     new ArchOperator((char)(69 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FIDIVR
1538                      ArchInstructionFormat.MIR_BinaryAcc_format,
1539                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1540                      0, 1, 1,
1541                      PhysicalDefUse.maskC0_C1_C2_C3,
1542                      PhysicalDefUse.mask),
1543     new ArchOperator((char)(70 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FILD
1544                      ArchInstructionFormat.MIR_Move_format,
1545                      (fpPush | ArchInstructionFormat.MIR_Move_traits),
1546                      1, 0, 1,
1547                      PhysicalDefUse.maskC0_C1_C2_C3,
1548                      PhysicalDefUse.mask),
1549     new ArchOperator((char)(71 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FIMUL
1550                      ArchInstructionFormat.MIR_BinaryAcc_format,
1551                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1552                      0, 1, 1,
1553                      PhysicalDefUse.maskC0_C1_C2_C3,
1554                      PhysicalDefUse.mask),
1555     new ArchOperator((char)(72 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FINIT
1556                      ArchInstructionFormat.MIR_Empty_format,
1557                      (none | ArchInstructionFormat.MIR_Empty_traits),
1558                      0, 0, 0,
1559                      PhysicalDefUse.maskC0_C1_C2_C3,
1560                      PhysicalDefUse.mask),
1561     new ArchOperator((char)(73 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FIST
1562                      ArchInstructionFormat.MIR_Move_format,
1563                      (none | ArchInstructionFormat.MIR_Move_traits),
1564                      1, 0, 1,
1565                      PhysicalDefUse.maskC0_C1_C2_C3,
1566                      PhysicalDefUse.mask),
1567     new ArchOperator((char)(74 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FISTP
1568                      ArchInstructionFormat.MIR_Move_format,
1569                      (fpPop | ArchInstructionFormat.MIR_Move_traits),
1570                      1, 0, 1,
1571                      PhysicalDefUse.maskC0_C1_C2_C3,
1572                      PhysicalDefUse.mask),
1573     new ArchOperator((char)(75 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FISUB
1574                      ArchInstructionFormat.MIR_BinaryAcc_format,
1575                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1576                      0, 1, 1,
1577                      PhysicalDefUse.maskC0_C1_C2_C3,
1578                      PhysicalDefUse.mask),
1579     new ArchOperator((char)(76 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FISUBR
1580                      ArchInstructionFormat.MIR_BinaryAcc_format,
1581                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1582                      0, 1, 1,
1583                      PhysicalDefUse.maskC0_C1_C2_C3,
1584                      PhysicalDefUse.mask),
1585     new ArchOperator((char)(77 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLD
1586                      ArchInstructionFormat.MIR_Move_format,
1587                      (fpPush | ArchInstructionFormat.MIR_Move_traits),
1588                      1, 0, 1,
1589                      PhysicalDefUse.maskC0_C1_C2_C3,
1590                      PhysicalDefUse.mask),
1591     new ArchOperator((char)(78 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDCW
1592                      ArchInstructionFormat.MIR_UnaryNoRes_format,
1593                      (none | ArchInstructionFormat.MIR_UnaryNoRes_traits),
1594                      0, 0, 1,
1595                      PhysicalDefUse.maskC0_C1_C2_C3,
1596                      PhysicalDefUse.mask),
1597     new ArchOperator((char)(79 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLD1
1598                      ArchInstructionFormat.MIR_Nullary_format,
1599                      (fpPush | ArchInstructionFormat.MIR_Nullary_traits),
1600                      1, 0, 0,
1601                      PhysicalDefUse.maskC0_C1_C2_C3,
1602                      PhysicalDefUse.mask),
1603     new ArchOperator((char)(80 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDL2T
1604                      ArchInstructionFormat.MIR_Nullary_format,
1605                      (fpPush | ArchInstructionFormat.MIR_Nullary_traits),
1606                      1, 0, 0,
1607                      PhysicalDefUse.maskC0_C1_C2_C3,
1608                      PhysicalDefUse.mask),
1609     new ArchOperator((char)(81 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDL2E
1610                      ArchInstructionFormat.MIR_Nullary_format,
1611                      (fpPush | ArchInstructionFormat.MIR_Nullary_traits),
1612                      1, 0, 0,
1613                      PhysicalDefUse.maskC0_C1_C2_C3,
1614                      PhysicalDefUse.mask),
1615     new ArchOperator((char)(82 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDPI
1616                      ArchInstructionFormat.MIR_Nullary_format,
1617                      (fpPush | ArchInstructionFormat.MIR_Nullary_traits),
1618                      1, 0, 0,
1619                      PhysicalDefUse.maskC0_C1_C2_C3,
1620                      PhysicalDefUse.mask),
1621     new ArchOperator((char)(83 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDLG2
1622                      ArchInstructionFormat.MIR_Nullary_format,
1623                      (fpPush | ArchInstructionFormat.MIR_Nullary_traits),
1624                      1, 0, 0,
1625                      PhysicalDefUse.maskC0_C1_C2_C3,
1626                      PhysicalDefUse.mask),
1627     new ArchOperator((char)(84 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDLN2
1628                      ArchInstructionFormat.MIR_Nullary_format,
1629                      (fpPush | ArchInstructionFormat.MIR_Nullary_traits),
1630                      1, 0, 0,
1631                      PhysicalDefUse.maskC0_C1_C2_C3,
1632                      PhysicalDefUse.mask),
1633     new ArchOperator((char)(85 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDZ
1634                      ArchInstructionFormat.MIR_Nullary_format,
1635                      (fpPush | ArchInstructionFormat.MIR_Nullary_traits),
1636                      1, 0, 0,
1637                      PhysicalDefUse.maskC0_C1_C2_C3,
1638                      PhysicalDefUse.mask),
1639     new ArchOperator((char)(86 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FMUL
1640                      ArchInstructionFormat.MIR_BinaryAcc_format,
1641                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1642                      0, 1, 1,
1643                      PhysicalDefUse.maskC0_C1_C2_C3,
1644                      PhysicalDefUse.mask),
1645     new ArchOperator((char)(87 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FMULP
1646                      ArchInstructionFormat.MIR_BinaryAcc_format,
1647                      (fpPop | ArchInstructionFormat.MIR_BinaryAcc_traits),
1648                      0, 1, 1,
1649                      PhysicalDefUse.maskC0_C1_C2_C3,
1650                      PhysicalDefUse.mask),
1651     new ArchOperator((char)(88 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FNSTCW
1652                      ArchInstructionFormat.MIR_UnaryNoRes_format,
1653                      (none | ArchInstructionFormat.MIR_UnaryNoRes_traits),
1654                      0, 0, 1,
1655                      PhysicalDefUse.maskC0_C1_C2_C3,
1656                      PhysicalDefUse.mask),
1657     new ArchOperator((char)(89 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FNSTSW
1658                      ArchInstructionFormat.MIR_Unary_format,
1659                      (none | ArchInstructionFormat.MIR_Unary_traits),
1660                      1, 0, 1,
1661                      PhysicalDefUse.maskC0_C1_C2_C3,
1662                      PhysicalDefUse.maskC0_C1_C2_C3),
1663     new ArchOperator((char)(90 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FNINIT
1664                      ArchInstructionFormat.MIR_Empty_format,
1665                      (none | ArchInstructionFormat.MIR_Empty_traits),
1666                      0, 0, 0,
1667                      PhysicalDefUse.maskC0_C1_C2_C3,
1668                      PhysicalDefUse.mask),
1669     new ArchOperator((char)(91 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FNSAVE
1670                      ArchInstructionFormat.MIR_FSave_format,
1671                      (none | ArchInstructionFormat.MIR_FSave_traits),
1672                      0, 0, 1,
1673                      PhysicalDefUse.maskC0_C1_C2_C3,
1674                      PhysicalDefUse.mask),
1675     new ArchOperator((char)(92 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FPREM
1676                      ArchInstructionFormat.MIR_BinaryAcc_format,
1677                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1678                      0, 1, 1,
1679                      PhysicalDefUse.maskC0_C1_C2_C3,
1680                      PhysicalDefUse.mask),
1681     new ArchOperator((char)(93 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FRSTOR
1682                      ArchInstructionFormat.MIR_FSave_format,
1683                      (none | ArchInstructionFormat.MIR_FSave_traits),
1684                      0, 0, 1,
1685                      PhysicalDefUse.maskC0_C1_C2_C3,
1686                      PhysicalDefUse.mask),
1687     new ArchOperator((char)(94 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FST
1688                      ArchInstructionFormat.MIR_Move_format,
1689                      (none | ArchInstructionFormat.MIR_Move_traits),
1690                      1, 0, 1,
1691                      PhysicalDefUse.maskC0_C1_C2_C3,
1692                      PhysicalDefUse.mask),
1693     new ArchOperator((char)(95 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSTCW
1694                      ArchInstructionFormat.MIR_UnaryNoRes_format,
1695                      (none | ArchInstructionFormat.MIR_UnaryNoRes_traits),
1696                      0, 0, 1,
1697                      PhysicalDefUse.maskC0_C1_C2_C3,
1698                      PhysicalDefUse.mask),
1699     new ArchOperator((char)(96 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSTSW
1700                      ArchInstructionFormat.MIR_Unary_format,
1701                      (none | ArchInstructionFormat.MIR_Unary_traits),
1702                      1, 0, 1,
1703                      PhysicalDefUse.maskC0_C1_C2_C3,
1704                      PhysicalDefUse.maskC0_C1_C2_C3),
1705     new ArchOperator((char)(97 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSTP
1706                      ArchInstructionFormat.MIR_Move_format,
1707                      (fpPop | ArchInstructionFormat.MIR_Move_traits),
1708                      1, 0, 1,
1709                      PhysicalDefUse.maskC0_C1_C2_C3,
1710                      PhysicalDefUse.mask),
1711     new ArchOperator((char)(98 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSUB
1712                      ArchInstructionFormat.MIR_BinaryAcc_format,
1713                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1714                      0, 1, 1,
1715                      PhysicalDefUse.maskC0_C1_C2_C3,
1716                      PhysicalDefUse.mask),
1717     new ArchOperator((char)(99 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSUBP
1718                      ArchInstructionFormat.MIR_BinaryAcc_format,
1719                      (fpPop | ArchInstructionFormat.MIR_BinaryAcc_traits),
1720                      0, 1, 1,
1721                      PhysicalDefUse.maskC0_C1_C2_C3,
1722                      PhysicalDefUse.mask),
1723     new ArchOperator((char)(100 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSUBR
1724                      ArchInstructionFormat.MIR_BinaryAcc_format,
1725                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1726                      0, 1, 1,
1727                      PhysicalDefUse.maskC0_C1_C2_C3,
1728                      PhysicalDefUse.mask),
1729     new ArchOperator((char)(101 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSUBRP
1730                      ArchInstructionFormat.MIR_BinaryAcc_format,
1731                      (fpPop | ArchInstructionFormat.MIR_BinaryAcc_traits),
1732                      0, 1, 1,
1733                      PhysicalDefUse.maskC0_C1_C2_C3,
1734                      PhysicalDefUse.mask),
1735     new ArchOperator((char)(102 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FUCOMI
1736                      ArchInstructionFormat.MIR_Compare_format,
1737                      (compare | ArchInstructionFormat.MIR_Compare_traits),
1738                      0, 0, 2,
1739                      PhysicalDefUse.maskCF_PF_ZF,
1740                      PhysicalDefUse.mask),
1741     new ArchOperator((char)(103 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FUCOMIP
1742                      ArchInstructionFormat.MIR_Compare_format,
1743                      (compare | ArchInstructionFormat.MIR_Compare_traits),
1744                      0, 0, 2,
1745                      PhysicalDefUse.maskCF_PF_ZF,
1746                      PhysicalDefUse.mask),
1747     new ArchOperator((char)(104 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_IDIV
1748                      ArchInstructionFormat.MIR_Divide_format,
1749                      (none | ArchInstructionFormat.MIR_Divide_traits),
1750                      0, 2, 2,
1751                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1752                      PhysicalDefUse.mask),
1753     new ArchOperator((char)(105 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_IMUL1
1754                      ArchInstructionFormat.MIR_Multiply_format,
1755                      (none | ArchInstructionFormat.MIR_Multiply_traits),
1756                      1, 1, 1,
1757                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1758                      PhysicalDefUse.mask),
1759     new ArchOperator((char)(106 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_IMUL2
1760                      ArchInstructionFormat.MIR_BinaryAcc_format,
1761                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1762                      0, 1, 1,
1763                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1764                      PhysicalDefUse.mask),
1765     new ArchOperator((char)(107 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_INC
1766                      ArchInstructionFormat.MIR_UnaryAcc_format,
1767                      (none | ArchInstructionFormat.MIR_UnaryAcc_traits),
1768                      0, 1, 0,
1769                      PhysicalDefUse.maskAF_OF_PF_SF_ZF,
1770                      PhysicalDefUse.mask),
1771     new ArchOperator((char)(108 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_INT
1772                      ArchInstructionFormat.MIR_Trap_format,
1773                      (immedPEI | ArchInstructionFormat.MIR_Trap_traits),
1774                      1, 0, 1,
1775                      PhysicalDefUse.mask,
1776                      PhysicalDefUse.mask),
1777     new ArchOperator((char)(109 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_JCC
1778                      ArchInstructionFormat.MIR_CondBranch_format,
1779                      (branch | conditional | ArchInstructionFormat.MIR_CondBranch_traits),
1780                      0, 0, 3,
1781                      PhysicalDefUse.mask,
1782                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF),
1783     new ArchOperator((char)(110 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_JCC2
1784                      ArchInstructionFormat.MIR_CondBranch2_format,
1785                      (branch | conditional | ArchInstructionFormat.MIR_CondBranch2_traits),
1786                      0, 0, 6,
1787                      PhysicalDefUse.mask,
1788                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF),
1789     new ArchOperator((char)(111 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_JMP
1790                      ArchInstructionFormat.MIR_Branch_format,
1791                      (branch | ArchInstructionFormat.MIR_Branch_traits),
1792                      0, 0, 1,
1793                      PhysicalDefUse.mask,
1794                      PhysicalDefUse.mask),
1795     new ArchOperator((char)(112 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_LEA
1796                      ArchInstructionFormat.MIR_Lea_format,
1797                      (none | ArchInstructionFormat.MIR_Lea_traits),
1798                      1, 0, 1,
1799                      PhysicalDefUse.mask,
1800                      PhysicalDefUse.mask),
1801     new ArchOperator((char)(113 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_LOCK
1802                      ArchInstructionFormat.MIR_Empty_format,
1803                      (none | ArchInstructionFormat.MIR_Empty_traits),
1804                      0, 0, 0,
1805                      PhysicalDefUse.mask,
1806                      PhysicalDefUse.mask),
1807     new ArchOperator((char)(114 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOV
1808                      ArchInstructionFormat.MIR_Move_format,
1809                      (move | ArchInstructionFormat.MIR_Move_traits),
1810                      1, 0, 1,
1811                      PhysicalDefUse.mask,
1812                      PhysicalDefUse.mask),
1813     new ArchOperator((char)(115 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVZX__B
1814                      ArchInstructionFormat.MIR_Unary_format,
1815                      (move | ArchInstructionFormat.MIR_Unary_traits),
1816                      1, 0, 1,
1817                      PhysicalDefUse.mask,
1818                      PhysicalDefUse.mask),
1819     new ArchOperator((char)(116 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSX__B
1820                      ArchInstructionFormat.MIR_Unary_format,
1821                      (move | ArchInstructionFormat.MIR_Unary_traits),
1822                      1, 0, 1,
1823                      PhysicalDefUse.mask,
1824                      PhysicalDefUse.mask),
1825     new ArchOperator((char)(117 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVZX__W
1826                      ArchInstructionFormat.MIR_Unary_format,
1827                      (move | ArchInstructionFormat.MIR_Unary_traits),
1828                      1, 0, 1,
1829                      PhysicalDefUse.mask,
1830                      PhysicalDefUse.mask),
1831     new ArchOperator((char)(118 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSX__W
1832                      ArchInstructionFormat.MIR_Unary_format,
1833                      (move | ArchInstructionFormat.MIR_Unary_traits),
1834                      1, 0, 1,
1835                      PhysicalDefUse.mask,
1836                      PhysicalDefUse.mask),
1837     new ArchOperator((char)(119 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVZXQ__B
1838                      ArchInstructionFormat.MIR_Unary_format,
1839                      (move | ArchInstructionFormat.MIR_Unary_traits),
1840                      1, 0, 1,
1841                      PhysicalDefUse.mask,
1842                      PhysicalDefUse.mask),
1843     new ArchOperator((char)(120 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSXQ__B
1844                      ArchInstructionFormat.MIR_Unary_format,
1845                      (move | ArchInstructionFormat.MIR_Unary_traits),
1846                      1, 0, 1,
1847                      PhysicalDefUse.mask,
1848                      PhysicalDefUse.mask),
1849     new ArchOperator((char)(121 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVZXQ__W
1850                      ArchInstructionFormat.MIR_Unary_format,
1851                      (move | ArchInstructionFormat.MIR_Unary_traits),
1852                      1, 0, 1,
1853                      PhysicalDefUse.mask,
1854                      PhysicalDefUse.mask),
1855     new ArchOperator((char)(122 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSXQ__W
1856                      ArchInstructionFormat.MIR_Unary_format,
1857                      (move | ArchInstructionFormat.MIR_Unary_traits),
1858                      1, 0, 1,
1859                      PhysicalDefUse.mask,
1860                      PhysicalDefUse.mask),
1861     new ArchOperator((char)(123 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSXDQ
1862                      ArchInstructionFormat.MIR_Unary_format,
1863                      (move | ArchInstructionFormat.MIR_Unary_traits),
1864                      1, 0, 1,
1865                      PhysicalDefUse.mask,
1866                      PhysicalDefUse.mask),
1867     new ArchOperator((char)(124 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MUL
1868                      ArchInstructionFormat.MIR_Multiply_format,
1869                      (none | ArchInstructionFormat.MIR_Multiply_traits),
1870                      1, 1, 1,
1871                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1872                      PhysicalDefUse.mask),
1873     new ArchOperator((char)(125 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_NEG
1874                      ArchInstructionFormat.MIR_UnaryAcc_format,
1875                      (none | ArchInstructionFormat.MIR_UnaryAcc_traits),
1876                      0, 1, 0,
1877                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1878                      PhysicalDefUse.mask),
1879     new ArchOperator((char)(126 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_NOT
1880                      ArchInstructionFormat.MIR_UnaryAcc_format,
1881                      (none | ArchInstructionFormat.MIR_UnaryAcc_traits),
1882                      0, 1, 0,
1883                      PhysicalDefUse.mask,
1884                      PhysicalDefUse.mask),
1885     new ArchOperator((char)(127 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_OR
1886                      ArchInstructionFormat.MIR_BinaryAcc_format,
1887                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1888                      0, 1, 1,
1889                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1890                      PhysicalDefUse.mask),
1891     new ArchOperator((char)(128 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MFENCE
1892                      ArchInstructionFormat.MIR_Empty_format,
1893                      (none | ArchInstructionFormat.MIR_Empty_traits),
1894                      0, 0, 0,
1895                      PhysicalDefUse.mask,
1896                      PhysicalDefUse.mask),
1897     new ArchOperator((char)(129 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_PAUSE
1898                      ArchInstructionFormat.MIR_Empty_format,
1899                      (none | ArchInstructionFormat.MIR_Empty_traits),
1900                      0, 0, 0,
1901                      PhysicalDefUse.mask,
1902                      PhysicalDefUse.mask),
1903     new ArchOperator((char)(130 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_PREFETCHNTA
1904                      ArchInstructionFormat.MIR_CacheOp_format,
1905                      (none | ArchInstructionFormat.MIR_CacheOp_traits),
1906                      0, 0, 1,
1907                      PhysicalDefUse.mask,
1908                      PhysicalDefUse.mask),
1909     new ArchOperator((char)(131 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_POP
1910                      ArchInstructionFormat.MIR_Nullary_format,
1911                      (none | ArchInstructionFormat.MIR_Nullary_traits),
1912                      1, 0, 0,
1913                      PhysicalDefUse.maskESP,
1914                      PhysicalDefUse.maskESP),
1915     new ArchOperator((char)(132 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_PUSH
1916                      ArchInstructionFormat.MIR_UnaryNoRes_format,
1917                      (none | ArchInstructionFormat.MIR_UnaryNoRes_traits),
1918                      0, 0, 1,
1919                      PhysicalDefUse.maskESP,
1920                      PhysicalDefUse.maskESP),
1921     new ArchOperator((char)(133 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_RCL
1922                      ArchInstructionFormat.MIR_BinaryAcc_format,
1923                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1924                      0, 1, 1,
1925                      PhysicalDefUse.maskCF_OF,
1926                      PhysicalDefUse.maskCF),
1927     new ArchOperator((char)(134 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_RCR
1928                      ArchInstructionFormat.MIR_BinaryAcc_format,
1929                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1930                      0, 1, 1,
1931                      PhysicalDefUse.maskCF_OF,
1932                      PhysicalDefUse.maskCF),
1933     new ArchOperator((char)(135 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ROL
1934                      ArchInstructionFormat.MIR_BinaryAcc_format,
1935                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1936                      0, 1, 1,
1937                      PhysicalDefUse.maskCF_OF,
1938                      PhysicalDefUse.mask),
1939     new ArchOperator((char)(136 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ROR
1940                      ArchInstructionFormat.MIR_BinaryAcc_format,
1941                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1942                      0, 1, 1,
1943                      PhysicalDefUse.maskCF_OF,
1944                      PhysicalDefUse.mask),
1945     new ArchOperator((char)(137 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_RET
1946                      ArchInstructionFormat.MIR_Return_format,
1947                      (ret | ArchInstructionFormat.MIR_Return_traits),
1948                      0, 0, 3,
1949                      PhysicalDefUse.maskESP,
1950                      PhysicalDefUse.maskESP),
1951     new ArchOperator((char)(138 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SAL
1952                      ArchInstructionFormat.MIR_BinaryAcc_format,
1953                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1954                      0, 1, 1,
1955                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1956                      PhysicalDefUse.mask),
1957     new ArchOperator((char)(139 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SAR
1958                      ArchInstructionFormat.MIR_BinaryAcc_format,
1959                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1960                      0, 1, 1,
1961                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1962                      PhysicalDefUse.mask),
1963     new ArchOperator((char)(140 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SHL
1964                      ArchInstructionFormat.MIR_BinaryAcc_format,
1965                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1966                      0, 1, 1,
1967                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1968                      PhysicalDefUse.mask),
1969     new ArchOperator((char)(141 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SHR
1970                      ArchInstructionFormat.MIR_BinaryAcc_format,
1971                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1972                      0, 1, 1,
1973                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1974                      PhysicalDefUse.mask),
1975     new ArchOperator((char)(142 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SBB
1976                      ArchInstructionFormat.MIR_BinaryAcc_format,
1977                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
1978                      0, 1, 1,
1979                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1980                      PhysicalDefUse.maskCF),
1981     new ArchOperator((char)(143 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SET__B
1982                      ArchInstructionFormat.MIR_Set_format,
1983                      (none | ArchInstructionFormat.MIR_Set_traits),
1984                      1, 0, 1,
1985                      PhysicalDefUse.mask,
1986                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF),
1987     new ArchOperator((char)(144 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SHLD
1988                      ArchInstructionFormat.MIR_DoubleShift_format,
1989                      (none | ArchInstructionFormat.MIR_DoubleShift_traits),
1990                      0, 1, 2,
1991                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1992                      PhysicalDefUse.mask),
1993     new ArchOperator((char)(145 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SHRD
1994                      ArchInstructionFormat.MIR_DoubleShift_format,
1995                      (none | ArchInstructionFormat.MIR_DoubleShift_traits),
1996                      0, 1, 2,
1997                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1998                      PhysicalDefUse.mask),
1999     new ArchOperator((char)(146 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SUB
2000                      ArchInstructionFormat.MIR_BinaryAcc_format,
2001                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2002                      0, 1, 1,
2003                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2004                      PhysicalDefUse.mask),
2005     new ArchOperator((char)(147 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_TEST
2006                      ArchInstructionFormat.MIR_Test_format,
2007                      (none | ArchInstructionFormat.MIR_Test_traits),
2008                      0, 0, 2,
2009                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2010                      PhysicalDefUse.mask),
2011     new ArchOperator((char)(148 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_XOR
2012                      ArchInstructionFormat.MIR_BinaryAcc_format,
2013                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2014                      0, 1, 1,
2015                      PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2016                      PhysicalDefUse.mask),
2017     new ArchOperator((char)(149 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_RDTSC
2018                      ArchInstructionFormat.MIR_RDTSC_format,
2019                      (none | ArchInstructionFormat.MIR_RDTSC_traits),
2020                      2, 0, 0,
2021                      PhysicalDefUse.maskCF_OF,
2022                      PhysicalDefUse.mask),
2023     new ArchOperator((char)(150 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ADDSS
2024                      ArchInstructionFormat.MIR_BinaryAcc_format,
2025                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2026                      0, 1, 1,
2027                      PhysicalDefUse.mask,
2028                      PhysicalDefUse.mask),
2029     new ArchOperator((char)(151 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SUBSS
2030                      ArchInstructionFormat.MIR_BinaryAcc_format,
2031                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2032                      0, 1, 1,
2033                      PhysicalDefUse.mask,
2034                      PhysicalDefUse.mask),
2035     new ArchOperator((char)(152 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MULSS
2036                      ArchInstructionFormat.MIR_BinaryAcc_format,
2037                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2038                      0, 1, 1,
2039                      PhysicalDefUse.mask,
2040                      PhysicalDefUse.mask),
2041     new ArchOperator((char)(153 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_DIVSS
2042                      ArchInstructionFormat.MIR_BinaryAcc_format,
2043                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2044                      0, 1, 1,
2045                      PhysicalDefUse.mask,
2046                      PhysicalDefUse.mask),
2047     new ArchOperator((char)(154 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ADDSD
2048                      ArchInstructionFormat.MIR_BinaryAcc_format,
2049                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2050                      0, 1, 1,
2051                      PhysicalDefUse.mask,
2052                      PhysicalDefUse.mask),
2053     new ArchOperator((char)(155 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SUBSD
2054                      ArchInstructionFormat.MIR_BinaryAcc_format,
2055                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2056                      0, 1, 1,
2057                      PhysicalDefUse.mask,
2058                      PhysicalDefUse.mask),
2059     new ArchOperator((char)(156 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MULSD
2060                      ArchInstructionFormat.MIR_BinaryAcc_format,
2061                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2062                      0, 1, 1,
2063                      PhysicalDefUse.mask,
2064                      PhysicalDefUse.mask),
2065     new ArchOperator((char)(157 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_DIVSD
2066                      ArchInstructionFormat.MIR_BinaryAcc_format,
2067                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2068                      0, 1, 1,
2069                      PhysicalDefUse.mask,
2070                      PhysicalDefUse.mask),
2071     new ArchOperator((char)(158 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ANDPS
2072                      ArchInstructionFormat.MIR_BinaryAcc_format,
2073                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2074                      0, 1, 1,
2075                      PhysicalDefUse.mask,
2076                      PhysicalDefUse.mask),
2077     new ArchOperator((char)(159 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ANDPD
2078                      ArchInstructionFormat.MIR_BinaryAcc_format,
2079                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2080                      0, 1, 1,
2081                      PhysicalDefUse.mask,
2082                      PhysicalDefUse.mask),
2083     new ArchOperator((char)(160 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ANDNPS
2084                      ArchInstructionFormat.MIR_BinaryAcc_format,
2085                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2086                      0, 1, 1,
2087                      PhysicalDefUse.mask,
2088                      PhysicalDefUse.mask),
2089     new ArchOperator((char)(161 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ANDNPD
2090                      ArchInstructionFormat.MIR_BinaryAcc_format,
2091                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2092                      0, 1, 1,
2093                      PhysicalDefUse.mask,
2094                      PhysicalDefUse.mask),
2095     new ArchOperator((char)(162 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ORPS
2096                      ArchInstructionFormat.MIR_BinaryAcc_format,
2097                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2098                      0, 1, 1,
2099                      PhysicalDefUse.mask,
2100                      PhysicalDefUse.mask),
2101     new ArchOperator((char)(163 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ORPD
2102                      ArchInstructionFormat.MIR_BinaryAcc_format,
2103                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2104                      0, 1, 1,
2105                      PhysicalDefUse.mask,
2106                      PhysicalDefUse.mask),
2107     new ArchOperator((char)(164 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_XORPS
2108                      ArchInstructionFormat.MIR_BinaryAcc_format,
2109                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2110                      0, 1, 1,
2111                      PhysicalDefUse.mask,
2112                      PhysicalDefUse.mask),
2113     new ArchOperator((char)(165 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_XORPD
2114                      ArchInstructionFormat.MIR_BinaryAcc_format,
2115                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2116                      0, 1, 1,
2117                      PhysicalDefUse.mask,
2118                      PhysicalDefUse.mask),
2119     new ArchOperator((char)(166 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_UCOMISS
2120                      ArchInstructionFormat.MIR_Compare_format,
2121                      (compare | ArchInstructionFormat.MIR_Compare_traits),
2122                      0, 0, 2,
2123                      PhysicalDefUse.maskCF_PF_ZF,
2124                      PhysicalDefUse.mask),
2125     new ArchOperator((char)(167 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_UCOMISD
2126                      ArchInstructionFormat.MIR_Compare_format,
2127                      (compare | ArchInstructionFormat.MIR_Compare_traits),
2128                      0, 0, 2,
2129                      PhysicalDefUse.maskCF_PF_ZF,
2130                      PhysicalDefUse.mask),
2131     new ArchOperator((char)(168 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPEQSS
2132                      ArchInstructionFormat.MIR_BinaryAcc_format,
2133                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2134                      0, 1, 1,
2135                      PhysicalDefUse.mask,
2136                      PhysicalDefUse.mask),
2137     new ArchOperator((char)(169 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPLTSS
2138                      ArchInstructionFormat.MIR_BinaryAcc_format,
2139                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2140                      0, 1, 1,
2141                      PhysicalDefUse.mask,
2142                      PhysicalDefUse.mask),
2143     new ArchOperator((char)(170 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPLESS
2144                      ArchInstructionFormat.MIR_BinaryAcc_format,
2145                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2146                      0, 1, 1,
2147                      PhysicalDefUse.mask,
2148                      PhysicalDefUse.mask),
2149     new ArchOperator((char)(171 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPUNORDSS
2150                      ArchInstructionFormat.MIR_BinaryAcc_format,
2151                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2152                      0, 1, 1,
2153                      PhysicalDefUse.mask,
2154                      PhysicalDefUse.mask),
2155     new ArchOperator((char)(172 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNESS
2156                      ArchInstructionFormat.MIR_BinaryAcc_format,
2157                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2158                      0, 1, 1,
2159                      PhysicalDefUse.mask,
2160                      PhysicalDefUse.mask),
2161     new ArchOperator((char)(173 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNLTSS
2162                      ArchInstructionFormat.MIR_BinaryAcc_format,
2163                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2164                      0, 1, 1,
2165                      PhysicalDefUse.mask,
2166                      PhysicalDefUse.mask),
2167     new ArchOperator((char)(174 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNLESS
2168                      ArchInstructionFormat.MIR_BinaryAcc_format,
2169                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2170                      0, 1, 1,
2171                      PhysicalDefUse.mask,
2172                      PhysicalDefUse.mask),
2173     new ArchOperator((char)(175 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPORDSS
2174                      ArchInstructionFormat.MIR_BinaryAcc_format,
2175                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2176                      0, 1, 1,
2177                      PhysicalDefUse.mask,
2178                      PhysicalDefUse.mask),
2179     new ArchOperator((char)(176 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPEQSD
2180                      ArchInstructionFormat.MIR_BinaryAcc_format,
2181                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2182                      0, 1, 1,
2183                      PhysicalDefUse.mask,
2184                      PhysicalDefUse.mask),
2185     new ArchOperator((char)(177 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPLTSD
2186                      ArchInstructionFormat.MIR_BinaryAcc_format,
2187                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2188                      0, 1, 1,
2189                      PhysicalDefUse.mask,
2190                      PhysicalDefUse.mask),
2191     new ArchOperator((char)(178 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPLESD
2192                      ArchInstructionFormat.MIR_BinaryAcc_format,
2193                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2194                      0, 1, 1,
2195                      PhysicalDefUse.mask,
2196                      PhysicalDefUse.mask),
2197     new ArchOperator((char)(179 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPUNORDSD
2198                      ArchInstructionFormat.MIR_BinaryAcc_format,
2199                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2200                      0, 1, 1,
2201                      PhysicalDefUse.mask,
2202                      PhysicalDefUse.mask),
2203     new ArchOperator((char)(180 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNESD
2204                      ArchInstructionFormat.MIR_BinaryAcc_format,
2205                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2206                      0, 1, 1,
2207                      PhysicalDefUse.mask,
2208                      PhysicalDefUse.mask),
2209     new ArchOperator((char)(181 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNLTSD
2210                      ArchInstructionFormat.MIR_BinaryAcc_format,
2211                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2212                      0, 1, 1,
2213                      PhysicalDefUse.mask,
2214                      PhysicalDefUse.mask),
2215     new ArchOperator((char)(182 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNLESD
2216                      ArchInstructionFormat.MIR_BinaryAcc_format,
2217                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2218                      0, 1, 1,
2219                      PhysicalDefUse.mask,
2220                      PhysicalDefUse.mask),
2221     new ArchOperator((char)(183 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPORDSD
2222                      ArchInstructionFormat.MIR_BinaryAcc_format,
2223                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2224                      0, 1, 1,
2225                      PhysicalDefUse.mask,
2226                      PhysicalDefUse.mask),
2227     new ArchOperator((char)(184 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVAPD
2228                      ArchInstructionFormat.MIR_Move_format,
2229                      (move | ArchInstructionFormat.MIR_Move_traits),
2230                      1, 0, 1,
2231                      PhysicalDefUse.mask,
2232                      PhysicalDefUse.mask),
2233     new ArchOperator((char)(185 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVAPS
2234                      ArchInstructionFormat.MIR_Move_format,
2235                      (move | ArchInstructionFormat.MIR_Move_traits),
2236                      1, 0, 1,
2237                      PhysicalDefUse.mask,
2238                      PhysicalDefUse.mask),
2239     new ArchOperator((char)(186 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVLPD
2240                      ArchInstructionFormat.MIR_Move_format,
2241                      (move | ArchInstructionFormat.MIR_Move_traits),
2242                      1, 0, 1,
2243                      PhysicalDefUse.mask,
2244                      PhysicalDefUse.mask),
2245     new ArchOperator((char)(187 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVLPS
2246                      ArchInstructionFormat.MIR_Move_format,
2247                      (move | ArchInstructionFormat.MIR_Move_traits),
2248                      1, 0, 1,
2249                      PhysicalDefUse.mask,
2250                      PhysicalDefUse.mask),
2251     new ArchOperator((char)(188 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSS
2252                      ArchInstructionFormat.MIR_Move_format,
2253                      (move | ArchInstructionFormat.MIR_Move_traits),
2254                      1, 0, 1,
2255                      PhysicalDefUse.mask,
2256                      PhysicalDefUse.mask),
2257     new ArchOperator((char)(189 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSD
2258                      ArchInstructionFormat.MIR_Move_format,
2259                      (move | ArchInstructionFormat.MIR_Move_traits),
2260                      1, 0, 1,
2261                      PhysicalDefUse.mask,
2262                      PhysicalDefUse.mask),
2263     new ArchOperator((char)(190 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVD
2264                      ArchInstructionFormat.MIR_Move_format,
2265                      (move | ArchInstructionFormat.MIR_Move_traits),
2266                      1, 0, 1,
2267                      PhysicalDefUse.mask,
2268                      PhysicalDefUse.mask),
2269     new ArchOperator((char)(191 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVQ
2270                      ArchInstructionFormat.MIR_Move_format,
2271                      (move | ArchInstructionFormat.MIR_Move_traits),
2272                      1, 0, 1,
2273                      PhysicalDefUse.mask,
2274                      PhysicalDefUse.mask),
2275     new ArchOperator((char)(192 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_PSLLQ
2276                      ArchInstructionFormat.MIR_BinaryAcc_format,
2277                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2278                      0, 1, 1,
2279                      PhysicalDefUse.mask,
2280                      PhysicalDefUse.mask),
2281     new ArchOperator((char)(193 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_PSRLQ
2282                      ArchInstructionFormat.MIR_BinaryAcc_format,
2283                      (none | ArchInstructionFormat.MIR_BinaryAcc_traits),
2284                      0, 1, 1,
2285                      PhysicalDefUse.mask,
2286                      PhysicalDefUse.mask),
2287     new ArchOperator((char)(194 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SQRTSS
2288                      ArchInstructionFormat.MIR_Unary_format,
2289                      (none | ArchInstructionFormat.MIR_Unary_traits),
2290                      1, 0, 1,
2291                      PhysicalDefUse.maskC0_C1_C2_C3,
2292                      PhysicalDefUse.mask),
2293     new ArchOperator((char)(195 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SQRTSD
2294                      ArchInstructionFormat.MIR_Unary_format,
2295                      (none | ArchInstructionFormat.MIR_Unary_traits),
2296                      1, 0, 1,
2297                      PhysicalDefUse.maskC0_C1_C2_C3,
2298                      PhysicalDefUse.mask),
2299     new ArchOperator((char)(196 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSI2SS
2300                      ArchInstructionFormat.MIR_Unary_format,
2301                      (move | ArchInstructionFormat.MIR_Unary_traits),
2302                      1, 0, 1,
2303                      PhysicalDefUse.mask,
2304                      PhysicalDefUse.mask),
2305     new ArchOperator((char)(197 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSS2SD
2306                      ArchInstructionFormat.MIR_Unary_format,
2307                      (move | ArchInstructionFormat.MIR_Unary_traits),
2308                      1, 0, 1,
2309                      PhysicalDefUse.mask,
2310                      PhysicalDefUse.mask),
2311     new ArchOperator((char)(198 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSS2SI
2312                      ArchInstructionFormat.MIR_Unary_format,
2313                      (move | ArchInstructionFormat.MIR_Unary_traits),
2314                      1, 0, 1,
2315                      PhysicalDefUse.mask,
2316                      PhysicalDefUse.mask),
2317     new ArchOperator((char)(199 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTTSS2SI
2318                      ArchInstructionFormat.MIR_Unary_format,
2319                      (move | ArchInstructionFormat.MIR_Unary_traits),
2320                      1, 0, 1,
2321                      PhysicalDefUse.mask,
2322                      PhysicalDefUse.mask),
2323     new ArchOperator((char)(200 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSI2SD
2324                      ArchInstructionFormat.MIR_Unary_format,
2325                      (move | ArchInstructionFormat.MIR_Unary_traits),
2326                      1, 0, 1,
2327                      PhysicalDefUse.mask,
2328                      PhysicalDefUse.mask),
2329     new ArchOperator((char)(201 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSD2SS
2330                      ArchInstructionFormat.MIR_Unary_format,
2331                      (move | ArchInstructionFormat.MIR_Unary_traits),
2332                      1, 0, 1,
2333                      PhysicalDefUse.mask,
2334                      PhysicalDefUse.mask),
2335     new ArchOperator((char)(202 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSD2SI
2336                      ArchInstructionFormat.MIR_Unary_format,
2337                      (move | ArchInstructionFormat.MIR_Unary_traits),
2338                      1, 0, 1,
2339                      PhysicalDefUse.mask,
2340                      PhysicalDefUse.mask),
2341     new ArchOperator((char)(203 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTTSD2SI
2342                      ArchInstructionFormat.MIR_Unary_format,
2343                      (move | ArchInstructionFormat.MIR_Unary_traits),
2344                      1, 0, 1,
2345                      PhysicalDefUse.mask,
2346                      PhysicalDefUse.mask),
2347     new ArchOperator((char)(204 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSI2SDQ
2348                      ArchInstructionFormat.MIR_Unary_format,
2349                      (move | ArchInstructionFormat.MIR_Unary_traits),
2350                      1, 0, 1,
2351                      PhysicalDefUse.mask,
2352                      PhysicalDefUse.mask),
2353     new ArchOperator((char)(205 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSD2SIQ
2354                      ArchInstructionFormat.MIR_Unary_format,
2355                      (move | ArchInstructionFormat.MIR_Unary_traits),
2356                      1, 0, 1,
2357                      PhysicalDefUse.mask,
2358                      PhysicalDefUse.mask),
2359     new ArchOperator((char)(206 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTTSD2SIQ
2360                      ArchInstructionFormat.MIR_Unary_format,
2361                      (move | ArchInstructionFormat.MIR_Unary_traits),
2362                      1, 0, 1,
2363                      PhysicalDefUse.mask,
2364                      PhysicalDefUse.mask),
2365     new ArchOperator((char)(207 + Operators.ARCH_INDEPENDENT_END_opcode),  //MIR_END
2366                      ArchInstructionFormat.Unassigned_format,
2367                      (none),
2368                      0,0,0,
2369                      PhysicalDefUse.mask,
2370                      PhysicalDefUse.mask),
2371     null };
2372
2373 
2374  @Pure
2375  public static Operator lookupOpcode(int opcode) {
2376    return OperatorArray[opcode];
2377  }
2378
2379  /** @return array that holds all operators for this architecture */
2380  public static Operator[] operatorArray() {
2381    return OperatorArray;
2382  }
2383
2384  /**
2385   * Instruction template used by the assembler to
2386   * generate binary code.  Only valid on MIR operators.
2387   */
2388  @Override
2389  public int instTemplate() {
2390    org.jikesrvm.compilers.opt.OptimizingCompilerException.UNREACHABLE();
2391    return 0;
2392  }
2393
2394  /* Constructor for HIR/LIR */
2395  private ArchOperator(char opcode, byte format, int traits,
2396                       int numDefs, int numDefUses, int numUses,
2397                       int iDefs, int iUses) {
2398    super(opcode, format, traits, numDefs, numDefUses, numUses, iDefs, iUses);
2399  }
2400
2401}