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: Operator.java is mechanically generated from
015     * Operator.template using the operator definitions in
016     * OperatorList.dat and ia32OperatorList.dat
017     *
018     * DO NOT MANUALLY EDIT THE JAVA FILE.
019     */
020    
021    package org.jikesrvm.compilers.opt.ir;
022    
023    import org.jikesrvm.*;
024    import org.jikesrvm.ArchitectureSpecificOpt.PhysicalDefUse;
025    import org.jikesrvm.compilers.opt.*;
026    import org.jikesrvm.compilers.opt.instrsched.OperatorClass;
027    import org.jikesrvm.compilers.opt.util.Bits;
028    
029    /**
030     * An Operator represents the operator of an {@link Instruction}.
031     * For each operator in the IR, we create exactly one Operator instance
032     * to represent it. These instances are all stored in static fields
033     * of {@link Operators}. Since only one instance is created for each
034     * semantic operator, they can be compared using <code>==</code>.
035     * <p>
036     * A common coding practive is to implement the {@link Operators}
037     * interface to be able to reference the IR operators within a class
038     * without having to prepend 'Operators.' everywhere.
039     *
040     * @see Operators
041     * @see Instruction
042     * @see OperatorNames
043     */
044    public final class Operator {
045    
046      /**
047       * The operators opcode.
048       * This value serves as a unique id suitable for use in switches
049       */
050      public final char opcode;
051    
052      /**
053       * Encoding of the operator's InstructionFormat.
054       * This field is only meant to be directly referenced
055       * from the mechanically generated InstructionFormat
056       * classes defined in the instructionFormats package.
057       * {@link Instruction} contains an explanation
058       * of the role of InstructionFormats in the IR.
059       */
060      public final byte format;
061    
062      /**
063       * encoding of operator traits (characteristics)
064       */
065      private final int traits;
066    
067      /**
068       * How many operands of the operator are (pure) defs?
069       */
070      private final int numberDefs;
071    
072      /**
073       * How many operands of the operator are both defs and uses?
074       * Only non-zero on IA32, 390.
075       */
076      private final int numberDefUses;
077    
078      /**
079       * How many operands of the operator are pure uses?
080       * Only contains a valid value for non-variableLength operators
081       */
082      private final int numberUses;
083    
084      /**
085       * Physical registers that are implicitly defined by the operator.
086       */
087      public final int implicitDefs;
088    
089      /**
090       * Physical registers that are implicitly used by the operator.
091       */
092      public final int implicitUses;
093    
094    
095      /**
096       * Operator Class of the operator; used for instruction scheduling.
097       */
098      OperatorClass opClass;
099    
100      /**
101       * Sets the operator class.
102       *
103       * @param opClass operator class
104       */
105      public void setOpClass(OperatorClass opClass) {
106        this.opClass = opClass;
107      }
108    
109      /**
110       * Gets the operator class.
111       *
112       * @return operator class
113       */
114      public OperatorClass getOpClass() {
115        return opClass;
116      }
117    
118    
119      /**
120       * Returns the string representation of this operator.
121       *
122       * @return the name of the operator
123       */
124      @Override
125      public String toString() {
126        return OperatorNames.toString(this);
127      }
128    
129      /**
130       * Returns the number of operands that are defs.
131       * By convention, operands are ordered in instructions
132       * such that all defs are first, followed by all
133       * combined defs/uses, followed by all pure uses.
134       *
135       * @return number of operands that are pure defs
136       */
137      public int getNumberOfPureDefs() {
138        if (VM.VerifyAssertions) VM._assert(!hasVarDefs());
139        return numberDefs;
140      }
141    
142      /**
143       * Returns the number of operands that are pure defs
144       * and are not in the variable-length part of the operand list.
145       * By convention, operands are ordered in instructions
146       * such that all defs are first, followed by all
147       * combined defs/uses, followed by all pure uses.
148       *
149       * @return how many non-variable operands are pure defs
150       */
151      public int getNumberOfFixedPureDefs() {
152        return numberDefs;
153      }
154    
155      /**
156       * Returns the number of operands that are pure uses
157       * and are not in the variable-length part of the operand list.
158       * By convention, operands are ordered in instructions
159       * such that all defs are first, followed by all
160       * combined defs/uses, followed by all pure uses.
161       *
162       * @return how many non-variable operands are pure uses
163       */
164      public int getNumberOfFixedPureUses() {
165        return numberUses;
166      }
167    
168      /**
169       * Returns the number of operands that are defs
170       * and uses.
171       * By convention, operands are ordered in instructions
172       * such that all defs are first, followed by all
173       * combined defs/uses, followed by all pure uses.
174       *
175       * @return number of operands that are combined defs and uses
176       */
177      public int getNumberOfDefUses() {
178        return numberDefUses;
179      }
180    
181      /**
182       * Returns the number of operands that are pure uses.
183       * By convention, operands are ordered in instructions
184       * such that all defs are first, followed by all
185       * combined defs/uses, followed by all pure uses.
186       *
187       * @return number of operands that are pure uses
188       */
189      public int getNumberOfPureUses() {
190        return numberUses;
191      }
192    
193      /**
194       * Returns the number of operands that are defs
195       * (either pure defs or combined def/uses).
196       * By convention, operands are ordered in instructions
197       * such that all defs are first, followed by all
198       * combined defs/uses, followed by all pure uses.
199       *
200       * @return number of operands that are defs
201       */
202      public int getNumberOfDefs() {
203        if (VM.VerifyAssertions) VM._assert(!hasVarDefs());
204        return numberDefs + numberDefUses;
205      }
206    
207      /**
208       * Returns the number of operands that are uses
209       * (either combined def/uses or pure uses).
210       * By convention, operands are ordered in instructions
211       * such that all defs are first, followed by all
212       * combined defs/uses, followed by all pure uses.
213       *
214       * @return how many operands are uses
215       */
216      public int getNumberOfUses() {
217        if (VM.VerifyAssertions) VM._assert(!hasVarUses());
218        return numberDefUses + numberUses;
219      }
220    
221      /**
222       * Returns the number of operands that are pure uses
223       * and are not in the variable-length part of the operand list.
224       * By convention, operands are ordered in instructions
225       * such that all defs are first, followed by all
226       * combined defs/uses, followed by all pure uses.
227       *
228       * @return how many non-variable operands are pure uses
229       */
230      public int getNumberOfPureFixedUses() {
231        return numberUses;
232      }
233    
234      /**
235       * Returns the number of operands that are uses
236       * (either combined use/defs or pure uses)
237       * and are not in the variable-length part of the operand list.
238       * By convention, operands are ordered in instructions
239       * such that all defs are first, followed by all
240       * combined defs/uses, followed by all pure uses.
241       *
242       * @return number of non-variable operands are uses
243       */
244      public int getNumberOfFixedUses() {
245        return numberDefUses + numberUses;
246      }
247    
248      /**
249       * Returns the number of physical registers that are
250       * implicitly defined by this operator.
251       *
252       * @return number of implicit defs
253       */
254      public int getNumberOfImplicitDefs() {
255        return Integer.bitCount(implicitDefs);
256      }
257    
258      /**
259       * Returns the number of physical registers that are
260       * implicitly used by this operator.
261       *
262       * @return number of implicit uses
263       */
264      public int getNumberOfImplicitUses() {
265        return Integer.bitCount(implicitUses);
266      }
267    
268      /*
269       * The following are used to encode operator traits in OperatorList.dat.
270       * Had to make a few of them public (yuck) to let us get at them
271       * from InstructionFormat.java.
272       */
273      // operator has no interesting traits
274      public static final int none         = 0x00000000;
275      // operator is a simple move operation from one "register" to another
276      private static final int move         = 0x00000001;
277      // operator is an intraprocedural branch of some form
278      private static final int branch       = 0x00000002;
279      // operator is some kind of call (interprocedural branch)
280      private static final int call         = 0x00000004;
281      // modifer for branches/calls
282      private static final int conditional  = 0x00000008;
283      // modifier for branches/calls, mostly on MIR
284      private static final int indirect     = 0x00000010;
285      // an explicit load of a value from memory
286      private static final int load         = 0x00000020;
287      // operator is modeled as a load by memory system, mostly on MIR
288      private static final int memAsLoad    = 0x00000040;
289      // an explicit store of a value to memory
290      private static final int store        = 0x00000080;
291      // operator is modeled as a store by memory system, mostly on MIR
292      private static final int memAsStore   = 0x00000100;
293      // is an exception throw
294      private static final int ethrow       = 0x00000200;
295      // an immediate PEI (null_check, int_zero_check, but _not_ call);
296      private static final int immedPEI     = 0x00000400;
297      // operator is some kind of compare (val,val)-> cond
298      private static final int compare      = 0x00000800;
299      // an explicit memory allocation
300      private static final int alloc        = 0x00001000;
301      // a return instruction (interprocedural branch)
302      private static final int ret          = 0x00002000;
303      // operator has a variable number of uses
304      public static final int varUses      = 0x00004000;
305      // operator has a variable number of defs
306      public static final int varDefs      = 0x00008000;
307      // operator is a potential thread switch point for some reason
308      // other than being a call/immedPEI
309      private static final int tsp          = 0x00010000;
310      // operator is an acquire (monitorenter/lock) HIR only
311      private static final int acquire      = 0x00020000;
312      // operator is a relase (monitorexit/unlock) HIR only
313      private static final int release      = 0x00040000;
314      // operator either directly or indirectly may casue dynamic linking
315      private static final int dynLink      = 0x00080000;
316      // operator is a yield point
317      private static final int yieldPoint   = 0x00100000;
318      // operator pops floating-point stack after performing defs
319      private static final int fpPop        = 0x00200000;
320      // operator pushs floating-point stack before performing defs
321      private static final int fpPush       = 0x00400000;
322      // operator is commutative
323      private static final int commutative  = 0x00800000;
324    
325      /**
326       * Does the operator represent a simple move (the value is unchanged)
327       * from one "register" location to another "register" location?
328       *
329       * @return <code>true</code> if the operator is a simple move
330       *         or <code>false</code> if it is not.
331       */
332      public boolean isMove() {
333        return (traits & move) != 0;
334      }
335    
336      /**
337       * Is the operator an intraprocedural branch?
338       *
339       * @return <code>true</code> if the operator is am
340       *         intraprocedural branch or <code>false</code> if it is not.
341       */
342      public boolean isBranch() {
343        return (traits & branch) != 0;
344      }
345    
346      /**
347       * Is the operator a conditional intraprocedural branch?
348       *
349       * @return <code>true</code> if the operator is a conditoonal
350       *         intraprocedural branch or <code>false</code> if it is not.
351       */
352      public boolean isConditionalBranch() {
353        return (traits & (branch|conditional)) == (branch|conditional);
354      }
355    
356      /**
357       * Is the operator an unconditional intraprocedural branch?
358       * We consider various forms of switches to be unconditional
359       * intraprocedural branches, even though they are multi-way branches
360       * and we may not no exactly which target will be taken.
361       * This turns out to be the right thing to do, since some
362       * arm of the switch will always be taken (unlike conditional branches).
363       *
364       * @return <code>true</code> if the operator is an unconditional
365       *         intraprocedural branch or <code>false</code> if it is not.
366       */
367      public boolean isUnconditionalBranch() {
368        return (traits & (branch|conditional)) == branch;
369      }
370    
371      /**
372       * Is the operator a direct intraprocedural branch?
373       * In the HIR and LIR we consider switches to be direct branches,
374       * because their targets are known precisely.
375       *
376       * @return <code>true</code> if the operator is a direct
377       *         intraprocedural branch or <code>false</code> if it is not.
378       */
379      public boolean isDirectBranch() {
380        return (traits & (branch|indirect)) == branch;
381      }
382    
383      /**
384       * Is the operator an indirect intraprocedural branch?
385       *
386       * @return <code>true</code> if the operator is an indirect
387       *         interprocedural branch or <code>false</code> if it is not.
388       */
389      public boolean isIndirectBranch() {
390        return (traits & (branch|indirect)) == (branch|indirect);
391      }
392    
393      /**
394       * Is the operator a call (one kind of interprocedural branch)?
395       *
396       * @return <code>true</code> if the operator is a call
397       *         or <code>false</code> if it is not.
398       */
399      public boolean isCall() {
400        return (traits & call) != 0;
401      }
402    
403      /**
404       * Is the operator a conditional call?
405       * We only allow conditional calls in the MIR, since they
406       * tend to only be directly implementable on some architecutres.
407       *
408       * @return <code>true</code> if the operator is a
409       *         conditional call or <code>false</code> if it is not.
410       */
411      public boolean isConditionalCall() {
412        return (traits & (call|conditional)) == (call|conditional);
413      }
414    
415      /**
416       * Is the operator an unconditional call?
417       * Really only an interesting question in the MIR, since
418       * it is by definition true for all HIR and LIR calls.
419       *
420       * @return <code>true</code> if the operator is an unconditional
421       *         call or <code>false</code> if it is not.
422       */
423      public boolean isUnconditionalCall() {
424        return (traits & (call|conditional)) == call;
425      }
426    
427      /**
428       * Is the operator a direct call?
429       * Only interesting on the MIR.  In the HIR and LIR we pretend that
430       * all calls are "direct" even though most of them aren't.
431       *
432       * @return <code>true</code> if the operator is a direct call
433       *         or <code>false</code> if it is not.
434       */
435      public boolean isDirectCall() {
436        return (traits & (call|indirect)) == call;
437      }
438    
439      /**
440       * Is the operator an indirect call?
441       * Only interesting on the MIR.  In the HIR and LIR we pretend that
442       * all calls are "direct" even though most of them aren't.
443       *
444       * @return <code>true</code> if the operator is an indirect call
445       *         or <code>false</code> if it is not.
446       */
447      public boolean isIndirectCall() {
448        return (traits & (call|indirect)) == (call|indirect);
449      }
450    
451      /**
452       * Is the operator an explicit load of a finite set of values from
453       * a finite set of memory locations (load, load multiple, _not_ call)?
454       *
455       * @return <code>true</code> if the operator is an explicit load
456       *         or <code>false</code> if it is not.
457       */
458      public boolean isExplicitLoad() {
459        return (traits & load) != 0;
460      }
461    
462      /**
463       * Should the operator be treated as a load from some unknown location(s)
464       * for the purposes of scheduling and/or modeling the memory subsystem?
465       *
466       * @return <code>true</code> if the operator is an implicit load
467       *         or <code>false</code> if it is not.
468       */
469      public boolean isImplicitLoad() {
470        return (traits & (load|memAsLoad|call)) != 0;
471      }
472    
473      /**
474       * Is the operator an explicit store of a finite set of values to
475       * a finite set of memory locations (store, store multiple, _not_ call)?
476       *
477       * @return <code>true</code> if the operator is an explicit store
478       *         or <code>false</code> if it is not.
479       */
480      public boolean isExplicitStore() {
481        return (traits & store) != 0;
482      }
483    
484      /**
485       * Should the operator be treated as a store to some unknown location(s)
486       * for the purposes of scheduling and/or modeling the memory subsystem?
487       *
488       * @return <code>true</code> if the operator is an implicit store
489       *         or <code>false</code> if it is not.
490       */
491      public boolean isImplicitStore() {
492        return (traits & (store|memAsStore|call)) != 0;
493      }
494    
495      /**
496       * Is the operator a throw of a Java exception?
497       *
498       * @return <code>true</code> if the operator is a throw
499       *         or <code>false</code> if it is not.
500       */
501      public boolean isThrow() {
502        return (traits & ethrow) != 0;
503      }
504    
505      /**
506       * Is the operator a PEI (Potentially Excepting Instruction)?
507       *
508       * @return <code>true</code> if the operator is a PEI
509       *         or <code>false</code> if it is not.
510       */
511      public boolean isPEI() {
512        return (traits & (ethrow|immedPEI)) != 0;
513      }
514    
515      /**
516       * Is the operator a potential GC point?
517       *
518       * @return <code>true</code> if the operator is a potential
519       *         GC point or <code>false</code> if it is not.
520       */
521      public boolean isGCPoint() {
522        return isPEI() || ((traits & (alloc|tsp)) != 0);
523      }
524    
525      /**
526       * is the operator a potential thread switch point?
527       *
528       * @return <code>true</code> if the operator is a potential
529       *         threadswitch point or <code>false</code> if it is not.
530       */
531      public boolean isTSPoint() {
532        return isGCPoint();
533      }
534    
535      /**
536       * Is the operator a compare (val,val) => condition?
537       *
538       * @return <code>true</code> if the operator is a compare
539       *         or <code>false</code> if it is not.
540       */
541      public boolean isCompare() {
542        return (traits & compare) != 0;
543      }
544    
545      /**
546       * Is the operator an actual memory allocation instruction
547       * (NEW, NEWARRAY, etc)?
548       *
549       * @return <code>true</code> if the operator is an allocation
550       *         or <code>false</code> if it is not.
551       */
552      public boolean isAllocation() {
553        return (traits & alloc) != 0;
554      }
555    
556      /**
557       * Is the operator a return (interprocedural branch)?
558       *
559       * @return <code>true</code> if the operator is a return
560       *         or <code>false</code> if it is not.
561       */
562      public boolean isReturn() {
563        return (traits & ret) != 0;
564      }
565    
566      /**
567       * Can the operator have a variable number of uses?
568       *
569       * @return <code>true</code> if the operator has a variable number
570       *         of uses or <code>false</code> if it does not.
571       */
572      public boolean hasVarUses() {
573        return (traits & varUses) != 0;
574      }
575    
576      /**
577       * Can the operator have a variable number of uses?
578       *
579       * @return <code>true</code> if the operator has a variable number
580       *         of uses or <code>false</code> if it does not.
581       */
582      public boolean hasVarDefs() {
583        return (traits & varDefs) != 0;
584      }
585    
586      /**
587       * Can the operator have a variable number of uses or defs?
588       *
589       * @return <code>true</code> if the operator has a variable number
590       *         of uses or defs or <code>false</code> if it does not.
591       */
592      public boolean hasVarUsesOrDefs() {
593        return (traits & (varUses | varDefs)) != 0;
594      }
595    
596      /**
597       * Is the operator an acquire (monitorenter/lock)?
598       *
599       * @return <code>true</code> if the operator is an acquire
600       *         or <code>false</code> if it is not.
601       */
602      public boolean isAcquire() {
603        return (traits & acquire) != 0;
604      }
605    
606      /**
607       * Is the operator a release (monitorexit/unlock)?
608       *
609       * @return <code>true</code> if the operator is a release
610       *         or <code>false</code> if it is not.
611       */
612      public boolean isRelease() {
613        return (traits & release) != 0;
614      }
615    
616      /**
617       * Could the operator either directly or indirectly
618       * cause dynamic class loading?
619       *
620       * @return <code>true</code> if the operator is a dynamic linking point
621       *         or <code>false</code> if it is not.
622       */
623      public boolean isDynamicLinkingPoint() {
624        return (traits & dynLink) != 0;
625      }
626    
627      /**
628       * Is the operator a yield point?
629       *
630       * @return <code>true</code> if the operator is a yield point
631       *         or <code>false</code> if it is not.
632       */
633      public boolean isYieldPoint() {
634        return (traits & yieldPoint) != 0;
635      }
636    
637      /**
638       * Does the operator pop the floating-point stack?
639       *
640       * @return <code>true</code> if the operator pops the floating-point
641       * stack.
642       *         or <code>false</code> if not.
643       */
644      public boolean isFpPop() {
645        return (traits & fpPop) != 0;
646      }
647    
648      /**
649       * Does the operator push on the floating-point stack?
650       *
651       * @return <code>true</code> if the operator pushes on the floating-point
652       * stack.
653       *         or <code>false</code> if not.
654       */
655      public boolean isFpPush() {
656        return (traits & fpPush) != 0;
657      }
658    
659      /**
660       * Is the operator commutative?
661       *
662       * @return <code>true</code> if the operator is commutative.
663       *         or <code>false</code> if not.
664       */
665      public boolean isCommutative() {
666        return (traits & commutative) != 0;
667      }
668    
669    
670      public static final Operator[] OperatorArray = {
671         new Operator((char)0, InstructionFormat.Nullary_format,  //GET_CAUGHT_EXCEPTION
672                          (none | InstructionFormat.Nullary_traits),
673                          1, 0, 0,
674                          PhysicalDefUse.mask,
675                          PhysicalDefUse.mask),
676         new Operator((char)1, InstructionFormat.CacheOp_format,  //SET_CAUGHT_EXCEPTION
677                          (none | InstructionFormat.CacheOp_traits),
678                          0, 0, 1,
679                          PhysicalDefUse.mask,
680                          PhysicalDefUse.mask),
681         new Operator((char)2, InstructionFormat.New_format,  //NEW
682                          (alloc | immedPEI | InstructionFormat.New_traits),
683                          1, 0, 1,
684                          PhysicalDefUse.mask,
685                          PhysicalDefUse.mask),
686         new Operator((char)3, InstructionFormat.New_format,  //NEW_UNRESOLVED
687                          (alloc | immedPEI | dynLink | InstructionFormat.New_traits),
688                          1, 0, 1,
689                          PhysicalDefUse.mask,
690                          PhysicalDefUse.mask),
691         new Operator((char)4, InstructionFormat.NewArray_format,  //NEWARRAY
692                          (alloc | immedPEI | InstructionFormat.NewArray_traits),
693                          1, 0, 2,
694                          PhysicalDefUse.mask,
695                          PhysicalDefUse.mask),
696         new Operator((char)5, InstructionFormat.NewArray_format,  //NEWARRAY_UNRESOLVED
697                          (alloc | immedPEI | dynLink | InstructionFormat.NewArray_traits),
698                          1, 0, 2,
699                          PhysicalDefUse.mask,
700                          PhysicalDefUse.mask),
701         new Operator((char)6, InstructionFormat.Athrow_format,  //ATHROW
702                          (ethrow | InstructionFormat.Athrow_traits),
703                          0, 0, 1,
704                          PhysicalDefUse.mask,
705                          PhysicalDefUse.mask),
706         new Operator((char)7, InstructionFormat.TypeCheck_format,  //CHECKCAST
707                          (immedPEI | InstructionFormat.TypeCheck_traits),
708                          1, 0, 3,
709                          PhysicalDefUse.mask,
710                          PhysicalDefUse.mask),
711         new Operator((char)8, InstructionFormat.TypeCheck_format,  //CHECKCAST_NOTNULL
712                          (immedPEI | InstructionFormat.TypeCheck_traits),
713                          1, 0, 3,
714                          PhysicalDefUse.mask,
715                          PhysicalDefUse.mask),
716         new Operator((char)9, InstructionFormat.TypeCheck_format,  //CHECKCAST_UNRESOLVED
717                          (immedPEI | dynLink | InstructionFormat.TypeCheck_traits),
718                          1, 0, 3,
719                          PhysicalDefUse.mask,
720                          PhysicalDefUse.mask),
721         new Operator((char)10, InstructionFormat.TypeCheck_format,  //MUST_IMPLEMENT_INTERFACE
722                          (immedPEI | InstructionFormat.TypeCheck_traits),
723                          1, 0, 3,
724                          PhysicalDefUse.mask,
725                          PhysicalDefUse.mask),
726         new Operator((char)11, InstructionFormat.InstanceOf_format,  //INSTANCEOF
727                          (none | InstructionFormat.InstanceOf_traits),
728                          1, 0, 3,
729                          PhysicalDefUse.mask,
730                          PhysicalDefUse.mask),
731         new Operator((char)12, InstructionFormat.InstanceOf_format,  //INSTANCEOF_NOTNULL
732                          (none | InstructionFormat.InstanceOf_traits),
733                          1, 0, 3,
734                          PhysicalDefUse.mask,
735                          PhysicalDefUse.mask),
736         new Operator((char)13, InstructionFormat.InstanceOf_format,  //INSTANCEOF_UNRESOLVED
737                          (immedPEI | dynLink | InstructionFormat.InstanceOf_traits),
738                          1, 0, 3,
739                          PhysicalDefUse.mask,
740                          PhysicalDefUse.mask),
741         new Operator((char)14, InstructionFormat.MonitorOp_format,  //MONITORENTER
742                          (memAsLoad | memAsStore | acquire | tsp | InstructionFormat.MonitorOp_traits),
743                          0, 0, 2,
744                          PhysicalDefUse.mask,
745                          PhysicalDefUse.mask),
746         new Operator((char)15, InstructionFormat.MonitorOp_format,  //MONITOREXIT
747                          (memAsLoad | memAsStore | release | tsp | immedPEI | InstructionFormat.MonitorOp_traits),
748                          0, 0, 2,
749                          PhysicalDefUse.mask,
750                          PhysicalDefUse.mask),
751         new Operator((char)16, InstructionFormat.Multianewarray_format,  //NEWOBJMULTIARRAY
752                          (alloc | immedPEI | dynLink | InstructionFormat.Multianewarray_traits),
753                          1, 0, 1,
754                          PhysicalDefUse.mask,
755                          PhysicalDefUse.mask),
756         new Operator((char)17, InstructionFormat.GetStatic_format,  //GETSTATIC
757                          (load | InstructionFormat.GetStatic_traits),
758                          1, 0, 2,
759                          PhysicalDefUse.mask,
760                          PhysicalDefUse.mask),
761         new Operator((char)18, InstructionFormat.PutStatic_format,  //PUTSTATIC
762                          (store | InstructionFormat.PutStatic_traits),
763                          0, 0, 3,
764                          PhysicalDefUse.mask,
765                          PhysicalDefUse.mask),
766         new Operator((char)19, InstructionFormat.GetField_format,  //GETFIELD
767                          (load | InstructionFormat.GetField_traits),
768                          1, 0, 4,
769                          PhysicalDefUse.mask,
770                          PhysicalDefUse.mask),
771         new Operator((char)20, InstructionFormat.PutField_format,  //PUTFIELD
772                          (store | InstructionFormat.PutField_traits),
773                          0, 0, 5,
774                          PhysicalDefUse.mask,
775                          PhysicalDefUse.mask),
776         new Operator((char)21, InstructionFormat.ZeroCheck_format,  //INT_ZERO_CHECK
777                          (immedPEI | InstructionFormat.ZeroCheck_traits),
778                          1, 0, 1,
779                          PhysicalDefUse.mask,
780                          PhysicalDefUse.mask),
781         new Operator((char)22, InstructionFormat.ZeroCheck_format,  //LONG_ZERO_CHECK
782                          (immedPEI | InstructionFormat.ZeroCheck_traits),
783                          1, 0, 1,
784                          PhysicalDefUse.mask,
785                          PhysicalDefUse.mask),
786         new Operator((char)23, InstructionFormat.BoundsCheck_format,  //BOUNDS_CHECK
787                          (immedPEI | InstructionFormat.BoundsCheck_traits),
788                          1, 0, 3,
789                          PhysicalDefUse.mask,
790                          PhysicalDefUse.mask),
791         new Operator((char)24, InstructionFormat.StoreCheck_format,  //OBJARRAY_STORE_CHECK
792                          (immedPEI | InstructionFormat.StoreCheck_traits),
793                          1, 0, 3,
794                          PhysicalDefUse.mask,
795                          PhysicalDefUse.mask),
796         new Operator((char)25, InstructionFormat.StoreCheck_format,  //OBJARRAY_STORE_CHECK_NOTNULL
797                          (immedPEI | InstructionFormat.StoreCheck_traits),
798                          1, 0, 3,
799                          PhysicalDefUse.mask,
800                          PhysicalDefUse.mask),
801         new Operator((char)26, InstructionFormat.InlineGuard_format,  //IG_PATCH_POINT
802                          (branch | conditional | InstructionFormat.InlineGuard_traits),
803                          0, 0, 5,
804                          PhysicalDefUse.mask,
805                          PhysicalDefUse.mask),
806         new Operator((char)27, InstructionFormat.InlineGuard_format,  //IG_CLASS_TEST
807                          (branch | conditional | InstructionFormat.InlineGuard_traits),
808                          0, 0, 5,
809                          PhysicalDefUse.mask,
810                          PhysicalDefUse.mask),
811         new Operator((char)28, InstructionFormat.InlineGuard_format,  //IG_METHOD_TEST
812                          (branch | conditional | InstructionFormat.InlineGuard_traits),
813                          0, 0, 5,
814                          PhysicalDefUse.mask,
815                          PhysicalDefUse.mask),
816         new Operator((char)29, InstructionFormat.TableSwitch_format,  //TABLESWITCH
817                          (branch | InstructionFormat.TableSwitch_traits),
818                          0, 0, 7,
819                          PhysicalDefUse.mask,
820                          PhysicalDefUse.mask),
821         new Operator((char)30, InstructionFormat.LookupSwitch_format,  //LOOKUPSWITCH
822                          (branch | InstructionFormat.LookupSwitch_traits),
823                          0, 0, 5,
824                          PhysicalDefUse.mask,
825                          PhysicalDefUse.mask),
826         new Operator((char)31, InstructionFormat.ALoad_format,  //INT_ALOAD
827                          (load | InstructionFormat.ALoad_traits),
828                          1, 0, 4,
829                          PhysicalDefUse.mask,
830                          PhysicalDefUse.mask),
831         new Operator((char)32, InstructionFormat.ALoad_format,  //LONG_ALOAD
832                          (load | InstructionFormat.ALoad_traits),
833                          1, 0, 4,
834                          PhysicalDefUse.mask,
835                          PhysicalDefUse.mask),
836         new Operator((char)33, InstructionFormat.ALoad_format,  //FLOAT_ALOAD
837                          (load | InstructionFormat.ALoad_traits),
838                          1, 0, 4,
839                          PhysicalDefUse.mask,
840                          PhysicalDefUse.mask),
841         new Operator((char)34, InstructionFormat.ALoad_format,  //DOUBLE_ALOAD
842                          (load | InstructionFormat.ALoad_traits),
843                          1, 0, 4,
844                          PhysicalDefUse.mask,
845                          PhysicalDefUse.mask),
846         new Operator((char)35, InstructionFormat.ALoad_format,  //REF_ALOAD
847                          (load | InstructionFormat.ALoad_traits),
848                          1, 0, 4,
849                          PhysicalDefUse.mask,
850                          PhysicalDefUse.mask),
851         new Operator((char)36, InstructionFormat.ALoad_format,  //UBYTE_ALOAD
852                          (load | InstructionFormat.ALoad_traits),
853                          1, 0, 4,
854                          PhysicalDefUse.mask,
855                          PhysicalDefUse.mask),
856         new Operator((char)37, InstructionFormat.ALoad_format,  //BYTE_ALOAD
857                          (load | InstructionFormat.ALoad_traits),
858                          1, 0, 4,
859                          PhysicalDefUse.mask,
860                          PhysicalDefUse.mask),
861         new Operator((char)38, InstructionFormat.ALoad_format,  //USHORT_ALOAD
862                          (load | InstructionFormat.ALoad_traits),
863                          1, 0, 4,
864                          PhysicalDefUse.mask,
865                          PhysicalDefUse.mask),
866         new Operator((char)39, InstructionFormat.ALoad_format,  //SHORT_ALOAD
867                          (load | InstructionFormat.ALoad_traits),
868                          1, 0, 4,
869                          PhysicalDefUse.mask,
870                          PhysicalDefUse.mask),
871         new Operator((char)40, InstructionFormat.AStore_format,  //INT_ASTORE
872                          (store | InstructionFormat.AStore_traits),
873                          0, 0, 5,
874                          PhysicalDefUse.mask,
875                          PhysicalDefUse.mask),
876         new Operator((char)41, InstructionFormat.AStore_format,  //LONG_ASTORE
877                          (store | InstructionFormat.AStore_traits),
878                          0, 0, 5,
879                          PhysicalDefUse.mask,
880                          PhysicalDefUse.mask),
881         new Operator((char)42, InstructionFormat.AStore_format,  //FLOAT_ASTORE
882                          (store | InstructionFormat.AStore_traits),
883                          0, 0, 5,
884                          PhysicalDefUse.mask,
885                          PhysicalDefUse.mask),
886         new Operator((char)43, InstructionFormat.AStore_format,  //DOUBLE_ASTORE
887                          (store | InstructionFormat.AStore_traits),
888                          0, 0, 5,
889                          PhysicalDefUse.mask,
890                          PhysicalDefUse.mask),
891         new Operator((char)44, InstructionFormat.AStore_format,  //REF_ASTORE
892                          (store | InstructionFormat.AStore_traits),
893                          0, 0, 5,
894                          PhysicalDefUse.mask,
895                          PhysicalDefUse.mask),
896         new Operator((char)45, InstructionFormat.AStore_format,  //BYTE_ASTORE
897                          (store | InstructionFormat.AStore_traits),
898                          0, 0, 5,
899                          PhysicalDefUse.mask,
900                          PhysicalDefUse.mask),
901         new Operator((char)46, InstructionFormat.AStore_format,  //SHORT_ASTORE
902                          (store | InstructionFormat.AStore_traits),
903                          0, 0, 5,
904                          PhysicalDefUse.mask,
905                          PhysicalDefUse.mask),
906         new Operator((char)47, InstructionFormat.IfCmp_format,  //INT_IFCMP
907                          (branch | conditional | InstructionFormat.IfCmp_traits),
908                          1, 0, 5,
909                          PhysicalDefUse.mask,
910                          PhysicalDefUse.mask),
911         new Operator((char)48, InstructionFormat.IfCmp2_format,  //INT_IFCMP2
912                          (branch | conditional | InstructionFormat.IfCmp2_traits),
913                          1, 0, 8,
914                          PhysicalDefUse.mask,
915                          PhysicalDefUse.mask),
916         new Operator((char)49, InstructionFormat.IfCmp_format,  //LONG_IFCMP
917                          (branch | conditional | InstructionFormat.IfCmp_traits),
918                          1, 0, 5,
919                          PhysicalDefUse.mask,
920                          PhysicalDefUse.mask),
921         new Operator((char)50, InstructionFormat.IfCmp_format,  //FLOAT_IFCMP
922                          (branch | conditional | InstructionFormat.IfCmp_traits),
923                          1, 0, 5,
924                          PhysicalDefUse.mask,
925                          PhysicalDefUse.mask),
926         new Operator((char)51, InstructionFormat.IfCmp_format,  //DOUBLE_IFCMP
927                          (branch | conditional | InstructionFormat.IfCmp_traits),
928                          1, 0, 5,
929                          PhysicalDefUse.mask,
930                          PhysicalDefUse.mask),
931         new Operator((char)52, InstructionFormat.IfCmp_format,  //REF_IFCMP
932                          (branch | conditional | InstructionFormat.IfCmp_traits),
933                          1, 0, 5,
934                          PhysicalDefUse.mask,
935                          PhysicalDefUse.mask),
936         new Operator((char)53, InstructionFormat.Label_format,  //LABEL
937                          (none | InstructionFormat.Label_traits),
938                          0, 0, 1,
939                          PhysicalDefUse.mask,
940                          PhysicalDefUse.mask),
941         new Operator((char)54, InstructionFormat.BBend_format,  //BBEND
942                          (none | InstructionFormat.BBend_traits),
943                          0, 0, 1,
944                          PhysicalDefUse.mask,
945                          PhysicalDefUse.mask),
946         new Operator((char)55, InstructionFormat.Empty_format,  //UNINT_BEGIN
947                          (none | InstructionFormat.Empty_traits),
948                          0, 0, 0,
949                          PhysicalDefUse.mask,
950                          PhysicalDefUse.mask),
951         new Operator((char)56, InstructionFormat.Empty_format,  //UNINT_END
952                          (none | InstructionFormat.Empty_traits),
953                          0, 0, 0,
954                          PhysicalDefUse.mask,
955                          PhysicalDefUse.mask),
956         new Operator((char)57, InstructionFormat.Empty_format,  //FENCE
957                          (memAsLoad | memAsStore | release | InstructionFormat.Empty_traits),
958                          0, 0, 0,
959                          PhysicalDefUse.mask,
960                          PhysicalDefUse.mask),
961         new Operator((char)58, InstructionFormat.Empty_format,  //READ_CEILING
962                          (memAsLoad | memAsStore | acquire | InstructionFormat.Empty_traits),
963                          0, 0, 0,
964                          PhysicalDefUse.mask,
965                          PhysicalDefUse.mask),
966         new Operator((char)59, InstructionFormat.Empty_format,  //WRITE_FLOOR
967                          (memAsLoad | memAsStore | release | InstructionFormat.Empty_traits),
968                          0, 0, 0,
969                          PhysicalDefUse.mask,
970                          PhysicalDefUse.mask),
971         new Operator((char)60, InstructionFormat.Phi_format,  //PHI
972                          (none | InstructionFormat.Phi_traits),
973                          1, 0, 0,
974                          PhysicalDefUse.mask,
975                          PhysicalDefUse.mask),
976         new Operator((char)61, InstructionFormat.Unary_format,  //SPLIT
977                          (none | InstructionFormat.Unary_traits),
978                          1, 0, 1,
979                          PhysicalDefUse.mask,
980                          PhysicalDefUse.mask),
981         new Operator((char)62, InstructionFormat.GuardedUnary_format,  //PI
982                          (none | InstructionFormat.GuardedUnary_traits),
983                          1, 0, 2,
984                          PhysicalDefUse.mask,
985                          PhysicalDefUse.mask),
986         new Operator((char)63, InstructionFormat.Empty_format,  //NOP
987                          (none | InstructionFormat.Empty_traits),
988                          0, 0, 0,
989                          PhysicalDefUse.mask,
990                          PhysicalDefUse.mask),
991         new Operator((char)64, InstructionFormat.Move_format,  //INT_MOVE
992                          (move | InstructionFormat.Move_traits),
993                          1, 0, 1,
994                          PhysicalDefUse.mask,
995                          PhysicalDefUse.mask),
996         new Operator((char)65, InstructionFormat.Move_format,  //LONG_MOVE
997                          (move | InstructionFormat.Move_traits),
998                          1, 0, 1,
999                          PhysicalDefUse.mask,
1000                          PhysicalDefUse.mask),
1001         new Operator((char)66, InstructionFormat.Move_format,  //FLOAT_MOVE
1002                          (move | InstructionFormat.Move_traits),
1003                          1, 0, 1,
1004                          PhysicalDefUse.mask,
1005                          PhysicalDefUse.mask),
1006         new Operator((char)67, InstructionFormat.Move_format,  //DOUBLE_MOVE
1007                          (move | InstructionFormat.Move_traits),
1008                          1, 0, 1,
1009                          PhysicalDefUse.mask,
1010                          PhysicalDefUse.mask),
1011         new Operator((char)68, InstructionFormat.Move_format,  //REF_MOVE
1012                          (move | InstructionFormat.Move_traits),
1013                          1, 0, 1,
1014                          PhysicalDefUse.mask,
1015                          PhysicalDefUse.mask),
1016         new Operator((char)69, InstructionFormat.Move_format,  //GUARD_MOVE
1017                          (move | InstructionFormat.Move_traits),
1018                          1, 0, 1,
1019                          PhysicalDefUse.mask,
1020                          PhysicalDefUse.mask),
1021         new Operator((char)70, InstructionFormat.CondMove_format,  //INT_COND_MOVE
1022                          (compare | InstructionFormat.CondMove_traits),
1023                          1, 0, 5,
1024                          PhysicalDefUse.mask,
1025                          PhysicalDefUse.mask),
1026         new Operator((char)71, InstructionFormat.CondMove_format,  //LONG_COND_MOVE
1027                          (compare | InstructionFormat.CondMove_traits),
1028                          1, 0, 5,
1029                          PhysicalDefUse.mask,
1030                          PhysicalDefUse.mask),
1031         new Operator((char)72, InstructionFormat.CondMove_format,  //FLOAT_COND_MOVE
1032                          (compare | InstructionFormat.CondMove_traits),
1033                          1, 0, 5,
1034                          PhysicalDefUse.mask,
1035                          PhysicalDefUse.mask),
1036         new Operator((char)73, InstructionFormat.CondMove_format,  //DOUBLE_COND_MOVE
1037                          (compare | InstructionFormat.CondMove_traits),
1038                          1, 0, 5,
1039                          PhysicalDefUse.mask,
1040                          PhysicalDefUse.mask),
1041         new Operator((char)74, InstructionFormat.CondMove_format,  //REF_COND_MOVE
1042                          (compare | InstructionFormat.CondMove_traits),
1043                          1, 0, 5,
1044                          PhysicalDefUse.mask,
1045                          PhysicalDefUse.mask),
1046         new Operator((char)75, InstructionFormat.CondMove_format,  //GUARD_COND_MOVE
1047                          (compare | InstructionFormat.CondMove_traits),
1048                          1, 0, 5,
1049                          PhysicalDefUse.mask,
1050                          PhysicalDefUse.mask),
1051         new Operator((char)76, InstructionFormat.Binary_format,  //GUARD_COMBINE
1052                          (none | InstructionFormat.Binary_traits),
1053                          1, 0, 2,
1054                          PhysicalDefUse.mask,
1055                          PhysicalDefUse.mask),
1056         new Operator((char)77, InstructionFormat.Binary_format,  //REF_ADD
1057                          (commutative | InstructionFormat.Binary_traits),
1058                          1, 0, 2,
1059                          PhysicalDefUse.mask,
1060                          PhysicalDefUse.mask),
1061         new Operator((char)78, InstructionFormat.Binary_format,  //INT_ADD
1062                          (commutative | InstructionFormat.Binary_traits),
1063                          1, 0, 2,
1064                          PhysicalDefUse.mask,
1065                          PhysicalDefUse.mask),
1066         new Operator((char)79, InstructionFormat.Binary_format,  //LONG_ADD
1067                          (commutative | InstructionFormat.Binary_traits),
1068                          1, 0, 2,
1069                          PhysicalDefUse.mask,
1070                          PhysicalDefUse.mask),
1071         new Operator((char)80, InstructionFormat.Binary_format,  //FLOAT_ADD
1072                          (commutative | InstructionFormat.Binary_traits),
1073                          1, 0, 2,
1074                          PhysicalDefUse.mask,
1075                          PhysicalDefUse.mask),
1076         new Operator((char)81, InstructionFormat.Binary_format,  //DOUBLE_ADD
1077                          (commutative | InstructionFormat.Binary_traits),
1078                          1, 0, 2,
1079                          PhysicalDefUse.mask,
1080                          PhysicalDefUse.mask),
1081         new Operator((char)82, InstructionFormat.Binary_format,  //REF_SUB
1082                          (none | InstructionFormat.Binary_traits),
1083                          1, 0, 2,
1084                          PhysicalDefUse.mask,
1085                          PhysicalDefUse.mask),
1086         new Operator((char)83, InstructionFormat.Binary_format,  //INT_SUB
1087                          (none | InstructionFormat.Binary_traits),
1088                          1, 0, 2,
1089                          PhysicalDefUse.mask,
1090                          PhysicalDefUse.mask),
1091         new Operator((char)84, InstructionFormat.Binary_format,  //LONG_SUB
1092                          (none | InstructionFormat.Binary_traits),
1093                          1, 0, 2,
1094                          PhysicalDefUse.mask,
1095                          PhysicalDefUse.mask),
1096         new Operator((char)85, InstructionFormat.Binary_format,  //FLOAT_SUB
1097                          (none | InstructionFormat.Binary_traits),
1098                          1, 0, 2,
1099                          PhysicalDefUse.mask,
1100                          PhysicalDefUse.mask),
1101         new Operator((char)86, InstructionFormat.Binary_format,  //DOUBLE_SUB
1102                          (none | InstructionFormat.Binary_traits),
1103                          1, 0, 2,
1104                          PhysicalDefUse.mask,
1105                          PhysicalDefUse.mask),
1106         new Operator((char)87, InstructionFormat.Binary_format,  //INT_MUL
1107                          (commutative | InstructionFormat.Binary_traits),
1108                          1, 0, 2,
1109                          PhysicalDefUse.mask,
1110                          PhysicalDefUse.mask),
1111         new Operator((char)88, InstructionFormat.Binary_format,  //LONG_MUL
1112                          (commutative | InstructionFormat.Binary_traits),
1113                          1, 0, 2,
1114                          PhysicalDefUse.mask,
1115                          PhysicalDefUse.mask),
1116         new Operator((char)89, InstructionFormat.Binary_format,  //FLOAT_MUL
1117                          (commutative | InstructionFormat.Binary_traits),
1118                          1, 0, 2,
1119                          PhysicalDefUse.mask,
1120                          PhysicalDefUse.mask),
1121         new Operator((char)90, InstructionFormat.Binary_format,  //DOUBLE_MUL
1122                          (commutative | InstructionFormat.Binary_traits),
1123                          1, 0, 2,
1124                          PhysicalDefUse.mask,
1125                          PhysicalDefUse.mask),
1126         new Operator((char)91, InstructionFormat.GuardedBinary_format,  //INT_DIV
1127                          (none | InstructionFormat.GuardedBinary_traits),
1128                          1, 0, 3,
1129                          PhysicalDefUse.mask,
1130                          PhysicalDefUse.mask),
1131         new Operator((char)92, InstructionFormat.GuardedBinary_format,  //LONG_DIV
1132                          (none | InstructionFormat.GuardedBinary_traits),
1133                          1, 0, 3,
1134                          PhysicalDefUse.mask,
1135                          PhysicalDefUse.mask),
1136         new Operator((char)93, InstructionFormat.Binary_format,  //FLOAT_DIV
1137                          (none | InstructionFormat.Binary_traits),
1138                          1, 0, 2,
1139                          PhysicalDefUse.mask,
1140                          PhysicalDefUse.mask),
1141         new Operator((char)94, InstructionFormat.Binary_format,  //DOUBLE_DIV
1142                          (none | InstructionFormat.Binary_traits),
1143                          1, 0, 2,
1144                          PhysicalDefUse.mask,
1145                          PhysicalDefUse.mask),
1146         new Operator((char)95, InstructionFormat.GuardedBinary_format,  //INT_REM
1147                          (none | InstructionFormat.GuardedBinary_traits),
1148                          1, 0, 3,
1149                          PhysicalDefUse.mask,
1150                          PhysicalDefUse.mask),
1151         new Operator((char)96, InstructionFormat.GuardedBinary_format,  //LONG_REM
1152                          (none | InstructionFormat.GuardedBinary_traits),
1153                          1, 0, 3,
1154                          PhysicalDefUse.mask,
1155                          PhysicalDefUse.mask),
1156         new Operator((char)97, InstructionFormat.Binary_format,  //FLOAT_REM
1157                          (none | InstructionFormat.Binary_traits),
1158                          1, 0, 2,
1159                          PhysicalDefUse.maskIEEEMagicUses,
1160                          PhysicalDefUse.mask),
1161         new Operator((char)98, InstructionFormat.Binary_format,  //DOUBLE_REM
1162                          (none | InstructionFormat.Binary_traits),
1163                          1, 0, 2,
1164                          PhysicalDefUse.maskIEEEMagicUses,
1165                          PhysicalDefUse.mask),
1166         new Operator((char)99, InstructionFormat.Unary_format,  //REF_NEG
1167                          (none | InstructionFormat.Unary_traits),
1168                          1, 0, 1,
1169                          PhysicalDefUse.mask,
1170                          PhysicalDefUse.mask),
1171         new Operator((char)100, InstructionFormat.Unary_format,  //INT_NEG
1172                          (none | InstructionFormat.Unary_traits),
1173                          1, 0, 1,
1174                          PhysicalDefUse.mask,
1175                          PhysicalDefUse.mask),
1176         new Operator((char)101, InstructionFormat.Unary_format,  //LONG_NEG
1177                          (none | InstructionFormat.Unary_traits),
1178                          1, 0, 1,
1179                          PhysicalDefUse.mask,
1180                          PhysicalDefUse.mask),
1181         new Operator((char)102, InstructionFormat.Unary_format,  //FLOAT_NEG
1182                          (none | InstructionFormat.Unary_traits),
1183                          1, 0, 1,
1184                          PhysicalDefUse.mask,
1185                          PhysicalDefUse.mask),
1186         new Operator((char)103, InstructionFormat.Unary_format,  //DOUBLE_NEG
1187                          (none | InstructionFormat.Unary_traits),
1188                          1, 0, 1,
1189                          PhysicalDefUse.mask,
1190                          PhysicalDefUse.mask),
1191         new Operator((char)104, InstructionFormat.Unary_format,  //FLOAT_SQRT
1192                          (none | InstructionFormat.Unary_traits),
1193                          1, 0, 1,
1194                          PhysicalDefUse.mask,
1195                          PhysicalDefUse.mask),
1196         new Operator((char)105, InstructionFormat.Unary_format,  //DOUBLE_SQRT
1197                          (none | InstructionFormat.Unary_traits),
1198                          1, 0, 1,
1199                          PhysicalDefUse.mask,
1200                          PhysicalDefUse.mask),
1201         new Operator((char)106, InstructionFormat.Binary_format,  //REF_SHL
1202                          (none | InstructionFormat.Binary_traits),
1203                          1, 0, 2,
1204                          PhysicalDefUse.mask,
1205                          PhysicalDefUse.mask),
1206         new Operator((char)107, InstructionFormat.Binary_format,  //INT_SHL
1207                          (none | InstructionFormat.Binary_traits),
1208                          1, 0, 2,
1209                          PhysicalDefUse.mask,
1210                          PhysicalDefUse.mask),
1211         new Operator((char)108, InstructionFormat.Binary_format,  //LONG_SHL
1212                          (none | InstructionFormat.Binary_traits),
1213                          1, 0, 2,
1214                          PhysicalDefUse.mask,
1215                          PhysicalDefUse.mask),
1216         new Operator((char)109, InstructionFormat.Binary_format,  //REF_SHR
1217                          (none | InstructionFormat.Binary_traits),
1218                          1, 0, 2,
1219                          PhysicalDefUse.mask,
1220                          PhysicalDefUse.mask),
1221         new Operator((char)110, InstructionFormat.Binary_format,  //INT_SHR
1222                          (none | InstructionFormat.Binary_traits),
1223                          1, 0, 2,
1224                          PhysicalDefUse.mask,
1225                          PhysicalDefUse.mask),
1226         new Operator((char)111, InstructionFormat.Binary_format,  //LONG_SHR
1227                          (none | InstructionFormat.Binary_traits),
1228                          1, 0, 2,
1229                          PhysicalDefUse.mask,
1230                          PhysicalDefUse.mask),
1231         new Operator((char)112, InstructionFormat.Binary_format,  //REF_USHR
1232                          (none | InstructionFormat.Binary_traits),
1233                          1, 0, 2,
1234                          PhysicalDefUse.mask,
1235                          PhysicalDefUse.mask),
1236         new Operator((char)113, InstructionFormat.Binary_format,  //INT_USHR
1237                          (none | InstructionFormat.Binary_traits),
1238                          1, 0, 2,
1239                          PhysicalDefUse.mask,
1240                          PhysicalDefUse.mask),
1241         new Operator((char)114, InstructionFormat.Binary_format,  //LONG_USHR
1242                          (none | InstructionFormat.Binary_traits),
1243                          1, 0, 2,
1244                          PhysicalDefUse.mask,
1245                          PhysicalDefUse.mask),
1246         new Operator((char)115, InstructionFormat.Binary_format,  //REF_AND
1247                          (commutative | InstructionFormat.Binary_traits),
1248                          1, 0, 2,
1249                          PhysicalDefUse.mask,
1250                          PhysicalDefUse.mask),
1251         new Operator((char)116, InstructionFormat.Binary_format,  //INT_AND
1252                          (commutative | InstructionFormat.Binary_traits),
1253                          1, 0, 2,
1254                          PhysicalDefUse.mask,
1255                          PhysicalDefUse.mask),
1256         new Operator((char)117, InstructionFormat.Binary_format,  //LONG_AND
1257                          (commutative | InstructionFormat.Binary_traits),
1258                          1, 0, 2,
1259                          PhysicalDefUse.mask,
1260                          PhysicalDefUse.mask),
1261         new Operator((char)118, InstructionFormat.Binary_format,  //REF_OR
1262                          (commutative | InstructionFormat.Binary_traits),
1263                          1, 0, 2,
1264                          PhysicalDefUse.mask,
1265                          PhysicalDefUse.mask),
1266         new Operator((char)119, InstructionFormat.Binary_format,  //INT_OR
1267                          (commutative | InstructionFormat.Binary_traits),
1268                          1, 0, 2,
1269                          PhysicalDefUse.mask,
1270                          PhysicalDefUse.mask),
1271         new Operator((char)120, InstructionFormat.Binary_format,  //LONG_OR
1272                          (commutative | InstructionFormat.Binary_traits),
1273                          1, 0, 2,
1274                          PhysicalDefUse.mask,
1275                          PhysicalDefUse.mask),
1276         new Operator((char)121, InstructionFormat.Binary_format,  //REF_XOR
1277                          (commutative | InstructionFormat.Binary_traits),
1278                          1, 0, 2,
1279                          PhysicalDefUse.mask,
1280                          PhysicalDefUse.mask),
1281         new Operator((char)122, InstructionFormat.Binary_format,  //INT_XOR
1282                          (commutative | InstructionFormat.Binary_traits),
1283                          1, 0, 2,
1284                          PhysicalDefUse.mask,
1285                          PhysicalDefUse.mask),
1286         new Operator((char)123, InstructionFormat.Unary_format,  //REF_NOT
1287                          (none | InstructionFormat.Unary_traits),
1288                          1, 0, 1,
1289                          PhysicalDefUse.mask,
1290                          PhysicalDefUse.mask),
1291         new Operator((char)124, InstructionFormat.Unary_format,  //INT_NOT
1292                          (none | InstructionFormat.Unary_traits),
1293                          1, 0, 1,
1294                          PhysicalDefUse.mask,
1295                          PhysicalDefUse.mask),
1296         new Operator((char)125, InstructionFormat.Unary_format,  //LONG_NOT
1297                          (none | InstructionFormat.Unary_traits),
1298                          1, 0, 1,
1299                          PhysicalDefUse.mask,
1300                          PhysicalDefUse.mask),
1301         new Operator((char)126, InstructionFormat.Binary_format,  //LONG_XOR
1302                          (commutative | InstructionFormat.Binary_traits),
1303                          1, 0, 2,
1304                          PhysicalDefUse.mask,
1305                          PhysicalDefUse.mask),
1306         new Operator((char)127, InstructionFormat.Unary_format,  //INT_2ADDRSigExt
1307                          (none | InstructionFormat.Unary_traits),
1308                          1, 0, 1,
1309                          PhysicalDefUse.mask,
1310                          PhysicalDefUse.mask),
1311         new Operator((char)128, InstructionFormat.Unary_format,  //INT_2ADDRZerExt
1312                          (none | InstructionFormat.Unary_traits),
1313                          1, 0, 1,
1314                          PhysicalDefUse.mask,
1315                          PhysicalDefUse.mask),
1316         new Operator((char)129, InstructionFormat.Unary_format,  //LONG_2ADDR
1317                          (none | InstructionFormat.Unary_traits),
1318                          1, 0, 1,
1319                          PhysicalDefUse.mask,
1320                          PhysicalDefUse.mask),
1321         new Operator((char)130, InstructionFormat.Unary_format,  //ADDR_2INT
1322                          (none | InstructionFormat.Unary_traits),
1323                          1, 0, 1,
1324                          PhysicalDefUse.mask,
1325                          PhysicalDefUse.mask),
1326         new Operator((char)131, InstructionFormat.Unary_format,  //ADDR_2LONG
1327                          (none | InstructionFormat.Unary_traits),
1328                          1, 0, 1,
1329                          PhysicalDefUse.mask,
1330                          PhysicalDefUse.mask),
1331         new Operator((char)132, InstructionFormat.Unary_format,  //INT_2LONG
1332                          (none | InstructionFormat.Unary_traits),
1333                          1, 0, 1,
1334                          PhysicalDefUse.mask,
1335                          PhysicalDefUse.mask),
1336         new Operator((char)133, InstructionFormat.Unary_format,  //INT_2FLOAT
1337                          (none | InstructionFormat.Unary_traits),
1338                          1, 0, 1,
1339                          PhysicalDefUse.maskIEEEMagicUses,
1340                          PhysicalDefUse.mask),
1341         new Operator((char)134, InstructionFormat.Unary_format,  //INT_2DOUBLE
1342                          (none | InstructionFormat.Unary_traits),
1343                          1, 0, 1,
1344                          PhysicalDefUse.maskIEEEMagicUses,
1345                          PhysicalDefUse.mask),
1346         new Operator((char)135, InstructionFormat.Unary_format,  //LONG_2INT
1347                          (none | InstructionFormat.Unary_traits),
1348                          1, 0, 1,
1349                          PhysicalDefUse.mask,
1350                          PhysicalDefUse.mask),
1351         new Operator((char)136, InstructionFormat.Unary_format,  //LONG_2FLOAT
1352                          (none | InstructionFormat.Unary_traits),
1353                          1, 0, 1,
1354                          PhysicalDefUse.mask,
1355                          PhysicalDefUse.mask),
1356         new Operator((char)137, InstructionFormat.Unary_format,  //LONG_2DOUBLE
1357                          (none | InstructionFormat.Unary_traits),
1358                          1, 0, 1,
1359                          PhysicalDefUse.mask,
1360                          PhysicalDefUse.mask),
1361         new Operator((char)138, InstructionFormat.Unary_format,  //FLOAT_2INT
1362                          (none | InstructionFormat.Unary_traits),
1363                          1, 0, 1,
1364                          PhysicalDefUse.mask,
1365                          PhysicalDefUse.mask),
1366         new Operator((char)139, InstructionFormat.Unary_format,  //FLOAT_2LONG
1367                          (none | InstructionFormat.Unary_traits),
1368                          1, 0, 1,
1369                          PhysicalDefUse.mask,
1370                          PhysicalDefUse.mask),
1371         new Operator((char)140, InstructionFormat.Unary_format,  //FLOAT_2DOUBLE
1372                          (none | InstructionFormat.Unary_traits),
1373                          1, 0, 1,
1374                          PhysicalDefUse.mask,
1375                          PhysicalDefUse.mask),
1376         new Operator((char)141, InstructionFormat.Unary_format,  //DOUBLE_2INT
1377                          (none | InstructionFormat.Unary_traits),
1378                          1, 0, 1,
1379                          PhysicalDefUse.mask,
1380                          PhysicalDefUse.mask),
1381         new Operator((char)142, InstructionFormat.Unary_format,  //DOUBLE_2LONG
1382                          (none | InstructionFormat.Unary_traits),
1383                          1, 0, 1,
1384                          PhysicalDefUse.mask,
1385                          PhysicalDefUse.mask),
1386         new Operator((char)143, InstructionFormat.Unary_format,  //DOUBLE_2FLOAT
1387                          (none | InstructionFormat.Unary_traits),
1388                          1, 0, 1,
1389                          PhysicalDefUse.mask,
1390                          PhysicalDefUse.mask),
1391         new Operator((char)144, InstructionFormat.Unary_format,  //INT_2BYTE
1392                          (none | InstructionFormat.Unary_traits),
1393                          1, 0, 1,
1394                          PhysicalDefUse.mask,
1395                          PhysicalDefUse.mask),
1396         new Operator((char)145, InstructionFormat.Unary_format,  //INT_2USHORT
1397                          (none | InstructionFormat.Unary_traits),
1398                          1, 0, 1,
1399                          PhysicalDefUse.mask,
1400                          PhysicalDefUse.mask),
1401         new Operator((char)146, InstructionFormat.Unary_format,  //INT_2SHORT
1402                          (none | InstructionFormat.Unary_traits),
1403                          1, 0, 1,
1404                          PhysicalDefUse.mask,
1405                          PhysicalDefUse.mask),
1406         new Operator((char)147, InstructionFormat.Binary_format,  //LONG_CMP
1407                          (compare | InstructionFormat.Binary_traits),
1408                          1, 0, 2,
1409                          PhysicalDefUse.mask,
1410                          PhysicalDefUse.mask),
1411         new Operator((char)148, InstructionFormat.Binary_format,  //FLOAT_CMPL
1412                          (compare | InstructionFormat.Binary_traits),
1413                          1, 0, 2,
1414                          PhysicalDefUse.mask,
1415                          PhysicalDefUse.mask),
1416         new Operator((char)149, InstructionFormat.Binary_format,  //FLOAT_CMPG
1417                          (compare | InstructionFormat.Binary_traits),
1418                          1, 0, 2,
1419                          PhysicalDefUse.mask,
1420                          PhysicalDefUse.mask),
1421         new Operator((char)150, InstructionFormat.Binary_format,  //DOUBLE_CMPL
1422                          (compare | InstructionFormat.Binary_traits),
1423                          1, 0, 2,
1424                          PhysicalDefUse.mask,
1425                          PhysicalDefUse.mask),
1426         new Operator((char)151, InstructionFormat.Binary_format,  //DOUBLE_CMPG
1427                          (compare | InstructionFormat.Binary_traits),
1428                          1, 0, 2,
1429                          PhysicalDefUse.mask,
1430                          PhysicalDefUse.mask),
1431         new Operator((char)152, InstructionFormat.Return_format,  //RETURN
1432                          (ret | InstructionFormat.Return_traits),
1433                          0, 0, 1,
1434                          PhysicalDefUse.mask,
1435                          PhysicalDefUse.mask),
1436         new Operator((char)153, InstructionFormat.NullCheck_format,  //NULL_CHECK
1437                          (immedPEI | InstructionFormat.NullCheck_traits),
1438                          1, 0, 1,
1439                          PhysicalDefUse.mask,
1440                          PhysicalDefUse.mask),
1441         new Operator((char)154, InstructionFormat.Goto_format,  //GOTO
1442                          (branch | InstructionFormat.Goto_traits),
1443                          0, 0, 1,
1444                          PhysicalDefUse.mask,
1445                          PhysicalDefUse.mask),
1446         new Operator((char)155, InstructionFormat.Unary_format,  //BOOLEAN_NOT
1447                          (none | InstructionFormat.Unary_traits),
1448                          1, 0, 1,
1449                          PhysicalDefUse.mask,
1450                          PhysicalDefUse.mask),
1451         new Operator((char)156, InstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_INT
1452                          (compare | InstructionFormat.BooleanCmp_traits),
1453                          1, 0, 4,
1454                          PhysicalDefUse.mask,
1455                          PhysicalDefUse.mask),
1456         new Operator((char)157, InstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_ADDR
1457                          (compare | InstructionFormat.BooleanCmp_traits),
1458                          1, 0, 4,
1459                          PhysicalDefUse.mask,
1460                          PhysicalDefUse.mask),
1461         new Operator((char)158, InstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_LONG
1462                          (compare | InstructionFormat.BooleanCmp_traits),
1463                          1, 0, 4,
1464                          PhysicalDefUse.mask,
1465                          PhysicalDefUse.mask),
1466         new Operator((char)159, InstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_FLOAT
1467                          (compare | InstructionFormat.BooleanCmp_traits),
1468                          1, 0, 4,
1469                          PhysicalDefUse.mask,
1470                          PhysicalDefUse.mask),
1471         new Operator((char)160, InstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_DOUBLE
1472                          (compare | InstructionFormat.BooleanCmp_traits),
1473                          1, 0, 4,
1474                          PhysicalDefUse.mask,
1475                          PhysicalDefUse.mask),
1476         new Operator((char)161, InstructionFormat.Load_format,  //BYTE_LOAD
1477                          (load | InstructionFormat.Load_traits),
1478                          1, 0, 4,
1479                          PhysicalDefUse.mask,
1480                          PhysicalDefUse.mask),
1481         new Operator((char)162, InstructionFormat.Load_format,  //UBYTE_LOAD
1482                          (load | InstructionFormat.Load_traits),
1483                          1, 0, 4,
1484                          PhysicalDefUse.mask,
1485                          PhysicalDefUse.mask),
1486         new Operator((char)163, InstructionFormat.Load_format,  //SHORT_LOAD
1487                          (load | InstructionFormat.Load_traits),
1488                          1, 0, 4,
1489                          PhysicalDefUse.mask,
1490                          PhysicalDefUse.mask),
1491         new Operator((char)164, InstructionFormat.Load_format,  //USHORT_LOAD
1492                          (load | InstructionFormat.Load_traits),
1493                          1, 0, 4,
1494                          PhysicalDefUse.mask,
1495                          PhysicalDefUse.mask),
1496         new Operator((char)165, InstructionFormat.Load_format,  //REF_LOAD
1497                          (load | InstructionFormat.Load_traits),
1498                          1, 0, 4,
1499                          PhysicalDefUse.mask,
1500                          PhysicalDefUse.mask),
1501         new Operator((char)166, InstructionFormat.Store_format,  //REF_STORE
1502                          (store | InstructionFormat.Store_traits),
1503                          0, 0, 5,
1504                          PhysicalDefUse.mask,
1505                          PhysicalDefUse.mask),
1506         new Operator((char)167, InstructionFormat.Load_format,  //INT_LOAD
1507                          (load | InstructionFormat.Load_traits),
1508                          1, 0, 4,
1509                          PhysicalDefUse.mask,
1510                          PhysicalDefUse.mask),
1511         new Operator((char)168, InstructionFormat.Load_format,  //LONG_LOAD
1512                          (load | InstructionFormat.Load_traits),
1513                          1, 0, 4,
1514                          PhysicalDefUse.mask,
1515                          PhysicalDefUse.mask),
1516         new Operator((char)169, InstructionFormat.Load_format,  //FLOAT_LOAD
1517                          (load | InstructionFormat.Load_traits),
1518                          1, 0, 4,
1519                          PhysicalDefUse.mask,
1520                          PhysicalDefUse.mask),
1521         new Operator((char)170, InstructionFormat.Load_format,  //DOUBLE_LOAD
1522                          (load | InstructionFormat.Load_traits),
1523                          1, 0, 4,
1524                          PhysicalDefUse.mask,
1525                          PhysicalDefUse.mask),
1526         new Operator((char)171, InstructionFormat.Store_format,  //BYTE_STORE
1527                          (store | InstructionFormat.Store_traits),
1528                          0, 0, 5,
1529                          PhysicalDefUse.mask,
1530                          PhysicalDefUse.mask),
1531         new Operator((char)172, InstructionFormat.Store_format,  //SHORT_STORE
1532                          (store | InstructionFormat.Store_traits),
1533                          0, 0, 5,
1534                          PhysicalDefUse.mask,
1535                          PhysicalDefUse.mask),
1536         new Operator((char)173, InstructionFormat.Store_format,  //INT_STORE
1537                          (store | InstructionFormat.Store_traits),
1538                          0, 0, 5,
1539                          PhysicalDefUse.mask,
1540                          PhysicalDefUse.mask),
1541         new Operator((char)174, InstructionFormat.Store_format,  //LONG_STORE
1542                          (store | InstructionFormat.Store_traits),
1543                          0, 0, 5,
1544                          PhysicalDefUse.mask,
1545                          PhysicalDefUse.mask),
1546         new Operator((char)175, InstructionFormat.Store_format,  //FLOAT_STORE
1547                          (store | InstructionFormat.Store_traits),
1548                          0, 0, 5,
1549                          PhysicalDefUse.mask,
1550                          PhysicalDefUse.mask),
1551         new Operator((char)176, InstructionFormat.Store_format,  //DOUBLE_STORE
1552                          (store | InstructionFormat.Store_traits),
1553                          0, 0, 5,
1554                          PhysicalDefUse.mask,
1555                          PhysicalDefUse.mask),
1556         new Operator((char)177, InstructionFormat.Prepare_format,  //PREPARE_INT
1557                          (load | acquire | InstructionFormat.Prepare_traits),
1558                          1, 0, 4,
1559                          PhysicalDefUse.mask,
1560                          PhysicalDefUse.mask),
1561         new Operator((char)178, InstructionFormat.Prepare_format,  //PREPARE_ADDR
1562                          (load | acquire | InstructionFormat.Prepare_traits),
1563                          1, 0, 4,
1564                          PhysicalDefUse.mask,
1565                          PhysicalDefUse.mask),
1566         new Operator((char)179, InstructionFormat.Prepare_format,  //PREPARE_LONG
1567                          (load | acquire | InstructionFormat.Prepare_traits),
1568                          1, 0, 4,
1569                          PhysicalDefUse.mask,
1570                          PhysicalDefUse.mask),
1571         new Operator((char)180, InstructionFormat.Attempt_format,  //ATTEMPT_INT
1572                          (load | store | compare | release | InstructionFormat.Attempt_traits),
1573                          1, 0, 6,
1574                          PhysicalDefUse.mask,
1575                          PhysicalDefUse.mask),
1576         new Operator((char)181, InstructionFormat.Attempt_format,  //ATTEMPT_ADDR
1577                          (load | store | compare | release | InstructionFormat.Attempt_traits),
1578                          1, 0, 6,
1579                          PhysicalDefUse.mask,
1580                          PhysicalDefUse.mask),
1581         new Operator((char)182, InstructionFormat.Attempt_format,  //ATTEMPT_LONG
1582                          (load | store | compare | release  | InstructionFormat.Attempt_traits),
1583                          1, 0, 6,
1584                          PhysicalDefUse.mask,
1585                          PhysicalDefUse.mask),
1586         new Operator((char)183, InstructionFormat.Call_format,  //CALL
1587                          (call | memAsLoad | memAsStore | dynLink | immedPEI | InstructionFormat.Call_traits),
1588                          1, 0, 3,
1589                          PhysicalDefUse.maskcallDefs,
1590                          PhysicalDefUse.maskcallUses),
1591         new Operator((char)184, InstructionFormat.Call_format,  //SYSCALL
1592                          (call | memAsLoad | memAsStore | InstructionFormat.Call_traits),
1593                          1, 0, 3,
1594                          PhysicalDefUse.maskcallDefs,
1595                          PhysicalDefUse.maskcallUses),
1596         new Operator((char)185, InstructionFormat.Empty_format,  //YIELDPOINT_PROLOGUE
1597                          (tsp | yieldPoint | InstructionFormat.Empty_traits),
1598                          0, 0, 0,
1599                          PhysicalDefUse.mask,
1600                          PhysicalDefUse.mask),
1601         new Operator((char)186, InstructionFormat.Empty_format,  //YIELDPOINT_EPILOGUE
1602                          (tsp | yieldPoint | InstructionFormat.Empty_traits),
1603                          0, 0, 0,
1604                          PhysicalDefUse.mask,
1605                          PhysicalDefUse.mask),
1606         new Operator((char)187, InstructionFormat.Empty_format,  //YIELDPOINT_BACKEDGE
1607                          (tsp | yieldPoint | InstructionFormat.Empty_traits),
1608                          0, 0, 0,
1609                          PhysicalDefUse.mask,
1610                          PhysicalDefUse.mask),
1611         new Operator((char)188, InstructionFormat.OsrPoint_format,  //YIELDPOINT_OSR
1612                          (tsp | yieldPoint | InstructionFormat.OsrPoint_traits),
1613                          0, 0, 1,
1614                          PhysicalDefUse.mask,
1615                          PhysicalDefUse.mask),
1616         new Operator((char)189, InstructionFormat.OsrBarrier_format,  //OSR_BARRIER
1617                          (none | InstructionFormat.OsrBarrier_traits),
1618                          0, 0, 1,
1619                          PhysicalDefUse.mask,
1620                          PhysicalDefUse.mask),
1621         new Operator((char)190, InstructionFormat.Prologue_format,  //IR_PROLOGUE
1622                          (immedPEI | InstructionFormat.Prologue_traits),
1623                          0, 0, 0,
1624                          PhysicalDefUse.mask,
1625                          PhysicalDefUse.mask),
1626         new Operator((char)191, InstructionFormat.CacheOp_format,  //RESOLVE
1627                          (tsp | dynLink | immedPEI | InstructionFormat.CacheOp_traits),
1628                          0, 0, 1,
1629                          PhysicalDefUse.mask,
1630                          PhysicalDefUse.mask),
1631         new Operator((char)192, InstructionFormat.Unary_format,  //RESOLVE_MEMBER
1632                          (tsp | dynLink | immedPEI | InstructionFormat.Unary_traits),
1633                          1, 0, 1,
1634                          PhysicalDefUse.mask,
1635                          PhysicalDefUse.mask),
1636         new Operator((char)193, InstructionFormat.Nullary_format,  //GET_TIME_BASE
1637                          (none | InstructionFormat.Nullary_traits),
1638                          1, 0, 0,
1639                          PhysicalDefUse.mask,
1640                          PhysicalDefUse.mask),
1641         new Operator((char)194, InstructionFormat.InstrumentedCounter_format,  //INSTRUMENTED_EVENT_COUNTER
1642                          (none | InstructionFormat.InstrumentedCounter_traits),
1643                          0, 0, 3,
1644                          PhysicalDefUse.mask,
1645                          PhysicalDefUse.mask),
1646         new Operator((char)195, InstructionFormat.TrapIf_format,  //TRAP_IF
1647                          (immedPEI | InstructionFormat.TrapIf_traits),
1648                          1, 0, 4,
1649                          PhysicalDefUse.mask,
1650                          PhysicalDefUse.mask),
1651         new Operator((char)196, InstructionFormat.Trap_format,  //TRAP
1652                          (immedPEI | InstructionFormat.Trap_traits),
1653                          1, 0, 1,
1654                          PhysicalDefUse.mask,
1655                          PhysicalDefUse.mask),
1656         new Operator((char)197, InstructionFormat.Unary_format,  //FLOAT_AS_INT_BITS
1657                          (none | InstructionFormat.Unary_traits),
1658                          1, 0, 1,
1659                          PhysicalDefUse.mask,
1660                          PhysicalDefUse.mask),
1661         new Operator((char)198, InstructionFormat.Unary_format,  //INT_BITS_AS_FLOAT
1662                          (none | InstructionFormat.Unary_traits),
1663                          1, 0, 1,
1664                          PhysicalDefUse.mask,
1665                          PhysicalDefUse.mask),
1666         new Operator((char)199, InstructionFormat.Unary_format,  //DOUBLE_AS_LONG_BITS
1667                          (none | InstructionFormat.Unary_traits),
1668                          1, 0, 1,
1669                          PhysicalDefUse.mask,
1670                          PhysicalDefUse.mask),
1671         new Operator((char)200, InstructionFormat.Unary_format,  //LONG_BITS_AS_DOUBLE
1672                          (none | InstructionFormat.Unary_traits),
1673                          1, 0, 1,
1674                          PhysicalDefUse.mask,
1675                          PhysicalDefUse.mask),
1676         new Operator((char)201, InstructionFormat.GuardedUnary_format,  //ARRAYLENGTH
1677                          (none | InstructionFormat.GuardedUnary_traits),
1678                          1, 0, 2,
1679                          PhysicalDefUse.mask,
1680                          PhysicalDefUse.mask),
1681         new Operator((char)202, InstructionFormat.GuardedUnary_format,  //GET_OBJ_TIB
1682                          (none | InstructionFormat.GuardedUnary_traits),
1683                          1, 0, 2,
1684                          PhysicalDefUse.mask,
1685                          PhysicalDefUse.mask),
1686         new Operator((char)203, InstructionFormat.Unary_format,  //GET_CLASS_TIB
1687                          (none | InstructionFormat.Unary_traits),
1688                          1, 0, 1,
1689                          PhysicalDefUse.mask,
1690                          PhysicalDefUse.mask),
1691         new Operator((char)204, InstructionFormat.Unary_format,  //GET_TYPE_FROM_TIB
1692                          (none | InstructionFormat.Unary_traits),
1693                          1, 0, 1,
1694                          PhysicalDefUse.mask,
1695                          PhysicalDefUse.mask),
1696         new Operator((char)205, InstructionFormat.Unary_format,  //GET_SUPERCLASS_IDS_FROM_TIB
1697                          (none | InstructionFormat.Unary_traits),
1698                          1, 0, 1,
1699                          PhysicalDefUse.mask,
1700                          PhysicalDefUse.mask),
1701         new Operator((char)206, InstructionFormat.Unary_format,  //GET_DOES_IMPLEMENT_FROM_TIB
1702                          (none | InstructionFormat.Unary_traits),
1703                          1, 0, 1,
1704                          PhysicalDefUse.mask,
1705                          PhysicalDefUse.mask),
1706         new Operator((char)207, InstructionFormat.Unary_format,  //GET_ARRAY_ELEMENT_TIB_FROM_TIB
1707                          (none | InstructionFormat.Unary_traits),
1708                          1, 0, 1,
1709                          PhysicalDefUse.mask,
1710                          PhysicalDefUse.mask),
1711         new Operator((char)208, InstructionFormat.LowTableSwitch_format,  //LOWTABLESWITCH
1712                          (branch | InstructionFormat.LowTableSwitch_traits),
1713                          0, 0, 1,
1714                          PhysicalDefUse.mask,
1715                          PhysicalDefUse.mask),
1716      //////////////////////////
1717      // END   Architecture Independent opcodes.
1718      // BEGIN Architecture Dependent opcodes & MIR.
1719      //////////////////////////
1720         new Operator((char)(0 + Operators.ARCH_INDEPENDENT_END_opcode),  //ADDRESS_CONSTANT
1721                          InstructionFormat.Unassigned_format,
1722                          (none),
1723                          0,0,0,
1724                          PhysicalDefUse.mask,
1725                          PhysicalDefUse.mask),
1726         new Operator((char)(1 + Operators.ARCH_INDEPENDENT_END_opcode),  //INT_CONSTANT
1727                          InstructionFormat.Unassigned_format,
1728                          (none),
1729                          0,0,0,
1730                          PhysicalDefUse.mask,
1731                          PhysicalDefUse.mask),
1732         new Operator((char)(2 + Operators.ARCH_INDEPENDENT_END_opcode),  //LONG_CONSTANT
1733                          InstructionFormat.Unassigned_format,
1734                          (none),
1735                          0,0,0,
1736                          PhysicalDefUse.mask,
1737                          PhysicalDefUse.mask),
1738         new Operator((char)(3 + Operators.ARCH_INDEPENDENT_END_opcode),  //REGISTER
1739                          InstructionFormat.Unassigned_format,
1740                          (none),
1741                          0,0,0,
1742                          PhysicalDefUse.mask,
1743                          PhysicalDefUse.mask),
1744         new Operator((char)(4 + Operators.ARCH_INDEPENDENT_END_opcode),  //OTHER_OPERAND
1745                          InstructionFormat.Unassigned_format,
1746                          (none),
1747                          0,0,0,
1748                          PhysicalDefUse.mask,
1749                          PhysicalDefUse.mask),
1750         new Operator((char)(5 + Operators.ARCH_INDEPENDENT_END_opcode),  //NULL
1751                          InstructionFormat.Unassigned_format,
1752                          (none),
1753                          0,0,0,
1754                          PhysicalDefUse.mask,
1755                          PhysicalDefUse.mask),
1756         new Operator((char)(6 + Operators.ARCH_INDEPENDENT_END_opcode),  //BRANCH_TARGET
1757                          InstructionFormat.Unassigned_format,
1758                          (none),
1759                          0,0,0,
1760                          PhysicalDefUse.mask,
1761                          PhysicalDefUse.mask),
1762         new Operator((char)(7 + Operators.ARCH_INDEPENDENT_END_opcode),  //MATERIALIZE_FP_CONSTANT
1763                          InstructionFormat.Binary_format,
1764                          (none | InstructionFormat.Binary_traits),
1765                          1, 0, 2,
1766                          PhysicalDefUse.mask,
1767                          PhysicalDefUse.mask),
1768         new Operator((char)(8 + Operators.ARCH_INDEPENDENT_END_opcode),  //GET_CURRENT_PROCESSOR
1769                          InstructionFormat.Nullary_format,
1770                          (none | InstructionFormat.Nullary_traits),
1771                          1, 0, 0,
1772                          PhysicalDefUse.mask,
1773                          PhysicalDefUse.mask),
1774         new Operator((char)(9 + Operators.ARCH_INDEPENDENT_END_opcode),  //ROUND_TO_ZERO
1775                          InstructionFormat.Empty_format,
1776                          (none | InstructionFormat.Empty_traits),
1777                          0, 0, 0,
1778                          PhysicalDefUse.mask,
1779                          PhysicalDefUse.mask),
1780         new Operator((char)(10 + Operators.ARCH_INDEPENDENT_END_opcode),  //CLEAR_FLOATING_POINT_STATE
1781                          InstructionFormat.Empty_format,
1782                          (none | InstructionFormat.Empty_traits),
1783                          0, 0, 0,
1784                          PhysicalDefUse.mask,
1785                          PhysicalDefUse.mask),
1786         new Operator((char)(11 + Operators.ARCH_INDEPENDENT_END_opcode),  //PREFETCH
1787                          InstructionFormat.CacheOp_format,
1788                          (none | InstructionFormat.CacheOp_traits),
1789                          0, 0, 1,
1790                          PhysicalDefUse.mask,
1791                          PhysicalDefUse.mask),
1792         new Operator((char)(12 + Operators.ARCH_INDEPENDENT_END_opcode),  //PAUSE
1793                          InstructionFormat.Empty_format,
1794                          (none | InstructionFormat.Empty_traits),
1795                          0, 0, 0,
1796                          PhysicalDefUse.mask,
1797                          PhysicalDefUse.mask),
1798         new Operator((char)(13 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_ADD
1799                          InstructionFormat.Binary_format,
1800                          (none | InstructionFormat.Binary_traits),
1801                          1, 0, 2,
1802                          PhysicalDefUse.mask,
1803                          PhysicalDefUse.mask),
1804         new Operator((char)(14 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_SUB
1805                          InstructionFormat.Binary_format,
1806                          (none | InstructionFormat.Binary_traits),
1807                          1, 0, 2,
1808                          PhysicalDefUse.mask,
1809                          PhysicalDefUse.mask),
1810         new Operator((char)(15 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_MUL
1811                          InstructionFormat.Binary_format,
1812                          (none | InstructionFormat.Binary_traits),
1813                          1, 0, 2,
1814                          PhysicalDefUse.mask,
1815                          PhysicalDefUse.mask),
1816         new Operator((char)(16 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_DIV
1817                          InstructionFormat.Binary_format,
1818                          (none | InstructionFormat.Binary_traits),
1819                          1, 0, 2,
1820                          PhysicalDefUse.mask,
1821                          PhysicalDefUse.mask),
1822         new Operator((char)(17 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_NEG
1823                          InstructionFormat.Unary_format,
1824                          (none | InstructionFormat.Unary_traits),
1825                          1, 0, 1,
1826                          PhysicalDefUse.mask,
1827                          PhysicalDefUse.mask),
1828         new Operator((char)(18 + Operators.ARCH_INDEPENDENT_END_opcode),  //FP_REM
1829                          InstructionFormat.Binary_format,
1830                          (none | InstructionFormat.Binary_traits),
1831                          1, 0, 2,
1832                          PhysicalDefUse.mask,
1833                          PhysicalDefUse.mask),
1834         new Operator((char)(19 + Operators.ARCH_INDEPENDENT_END_opcode),  //INT_2FP
1835                          InstructionFormat.Unary_format,
1836                          (none | InstructionFormat.Unary_traits),
1837                          1, 0, 1,
1838                          PhysicalDefUse.mask,
1839                          PhysicalDefUse.mask),
1840         new Operator((char)(20 + Operators.ARCH_INDEPENDENT_END_opcode),  //LONG_2FP
1841                          InstructionFormat.Unary_format,
1842                          (none | InstructionFormat.Unary_traits),
1843                          1, 0, 1,
1844                          PhysicalDefUse.mask,
1845                          PhysicalDefUse.mask),
1846         new Operator((char)(21 + Operators.ARCH_INDEPENDENT_END_opcode),  //CMP_CMOV
1847                          InstructionFormat.CondMove_format,
1848                          (compare | InstructionFormat.CondMove_traits),
1849                          1, 0, 5,
1850                          PhysicalDefUse.mask,
1851                          PhysicalDefUse.mask),
1852         new Operator((char)(22 + Operators.ARCH_INDEPENDENT_END_opcode),  //FCMP_CMOV
1853                          InstructionFormat.CondMove_format,
1854                          (compare | InstructionFormat.CondMove_traits),
1855                          1, 0, 5,
1856                          PhysicalDefUse.mask,
1857                          PhysicalDefUse.mask),
1858         new Operator((char)(23 + Operators.ARCH_INDEPENDENT_END_opcode),  //LCMP_CMOV
1859                          InstructionFormat.CondMove_format,
1860                          (compare | InstructionFormat.CondMove_traits),
1861                          1, 0, 5,
1862                          PhysicalDefUse.mask,
1863                          PhysicalDefUse.mask),
1864         new Operator((char)(24 + Operators.ARCH_INDEPENDENT_END_opcode),  //CMP_FCMOV
1865                          InstructionFormat.CondMove_format,
1866                          (compare | InstructionFormat.CondMove_traits),
1867                          1, 0, 5,
1868                          PhysicalDefUse.mask,
1869                          PhysicalDefUse.mask),
1870         new Operator((char)(25 + Operators.ARCH_INDEPENDENT_END_opcode),  //FCMP_FCMOV
1871                          InstructionFormat.CondMove_format,
1872                          (compare | InstructionFormat.CondMove_traits),
1873                          1, 0, 5,
1874                          PhysicalDefUse.mask,
1875                          PhysicalDefUse.mask),
1876         new Operator((char)(26 + Operators.ARCH_INDEPENDENT_END_opcode),  //CALL_SAVE_VOLATILE
1877                          InstructionFormat.MIR_Call_format,
1878                          (call | immedPEI | InstructionFormat.MIR_Call_traits),
1879                          2, 0, 2,
1880                          PhysicalDefUse.maskcallDefs,
1881                          PhysicalDefUse.maskcallUses),
1882         new Operator((char)(27 + Operators.ARCH_INDEPENDENT_END_opcode),  //MIR_START
1883                          InstructionFormat.Unassigned_format,
1884                          (none),
1885                          0,0,0,
1886                          PhysicalDefUse.mask,
1887                          PhysicalDefUse.mask),
1888         new Operator((char)(28 + Operators.ARCH_INDEPENDENT_END_opcode),  //REQUIRE_ESP
1889                          InstructionFormat.MIR_UnaryNoRes_format,
1890                          (none | InstructionFormat.MIR_UnaryNoRes_traits),
1891                          0, 0, 1,
1892                          PhysicalDefUse.mask,
1893                          PhysicalDefUse.mask),
1894         new Operator((char)(29 + Operators.ARCH_INDEPENDENT_END_opcode),  //ADVISE_ESP
1895                          InstructionFormat.MIR_UnaryNoRes_format,
1896                          (none | InstructionFormat.MIR_UnaryNoRes_traits),
1897                          0, 0, 1,
1898                          PhysicalDefUse.mask,
1899                          PhysicalDefUse.mask),
1900         new Operator((char)(30 + Operators.ARCH_INDEPENDENT_END_opcode),  //MIR_LOWTABLESWITCH
1901                          InstructionFormat.MIR_LowTableSwitch_format,
1902                          (branch | InstructionFormat.MIR_LowTableSwitch_traits),
1903                          0, 1, 1,
1904                          PhysicalDefUse.mask,
1905                          PhysicalDefUse.mask),
1906         new Operator((char)(31 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_METHODSTART
1907                          InstructionFormat.MIR_Nullary_format,
1908                          (none | InstructionFormat.MIR_Nullary_traits),
1909                          1, 0, 0,
1910                          PhysicalDefUse.mask,
1911                          PhysicalDefUse.mask),
1912         new Operator((char)(32 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FCLEAR
1913                          InstructionFormat.MIR_UnaryNoRes_format,
1914                          (none | InstructionFormat.MIR_UnaryNoRes_traits),
1915                          0, 0, 1,
1916                          PhysicalDefUse.mask,
1917                          PhysicalDefUse.mask),
1918         new Operator((char)(33 + Operators.ARCH_INDEPENDENT_END_opcode),  //DUMMY_DEF
1919                          InstructionFormat.MIR_Nullary_format,
1920                          (none | InstructionFormat.MIR_Nullary_traits),
1921                          1, 0, 0,
1922                          PhysicalDefUse.mask,
1923                          PhysicalDefUse.mask),
1924         new Operator((char)(34 + Operators.ARCH_INDEPENDENT_END_opcode),  //DUMMY_USE
1925                          InstructionFormat.MIR_UnaryNoRes_format,
1926                          (none | InstructionFormat.MIR_UnaryNoRes_traits),
1927                          0, 0, 1,
1928                          PhysicalDefUse.mask,
1929                          PhysicalDefUse.mask),
1930         new Operator((char)(35 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FMOV_ENDING_LIVE_RANGE
1931                          InstructionFormat.MIR_Move_format,
1932                          (move | InstructionFormat.MIR_Move_traits),
1933                          1, 0, 1,
1934                          PhysicalDefUse.mask,
1935                          PhysicalDefUse.mask),
1936         new Operator((char)(36 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FMOV
1937                          InstructionFormat.MIR_Move_format,
1938                          (move | InstructionFormat.MIR_Move_traits),
1939                          1, 0, 1,
1940                          PhysicalDefUse.mask,
1941                          PhysicalDefUse.mask),
1942         new Operator((char)(37 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_TRAPIF
1943                          InstructionFormat.MIR_TrapIf_format,
1944                          (immedPEI | InstructionFormat.MIR_TrapIf_traits),
1945                          1, 0, 4,
1946                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1947                          PhysicalDefUse.mask),
1948         new Operator((char)(38 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_OFFSET
1949                          InstructionFormat.MIR_CaseLabel_format,
1950                          (none | InstructionFormat.MIR_CaseLabel_traits),
1951                          0, 0, 2,
1952                          PhysicalDefUse.mask,
1953                          PhysicalDefUse.mask),
1954         new Operator((char)(39 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_LOCK_CMPXCHG
1955                          InstructionFormat.MIR_CompareExchange_format,
1956                          (compare | InstructionFormat.MIR_CompareExchange_traits),
1957                          0, 2, 1,
1958                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1959                          PhysicalDefUse.mask),
1960         new Operator((char)(40 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_LOCK_CMPXCHG8B
1961                          InstructionFormat.MIR_CompareExchange8B_format,
1962                          (compare | InstructionFormat.MIR_CompareExchange8B_traits),
1963                          0, 3, 2,
1964                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1965                          PhysicalDefUse.mask),
1966         new Operator((char)(41 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ADC
1967                          InstructionFormat.MIR_BinaryAcc_format,
1968                          (none | InstructionFormat.MIR_BinaryAcc_traits),
1969                          0, 1, 1,
1970                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1971                          PhysicalDefUse.maskCF),
1972         new Operator((char)(42 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ADD
1973                          InstructionFormat.MIR_BinaryAcc_format,
1974                          (none | InstructionFormat.MIR_BinaryAcc_traits),
1975                          0, 1, 1,
1976                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1977                          PhysicalDefUse.mask),
1978         new Operator((char)(43 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_AND
1979                          InstructionFormat.MIR_BinaryAcc_format,
1980                          (none | InstructionFormat.MIR_BinaryAcc_traits),
1981                          0, 1, 1,
1982                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
1983                          PhysicalDefUse.mask),
1984         new Operator((char)(44 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_BSWAP
1985                          InstructionFormat.MIR_UnaryAcc_format,
1986                          (none | InstructionFormat.MIR_UnaryAcc_traits),
1987                          0, 1, 0,
1988                          PhysicalDefUse.mask,
1989                          PhysicalDefUse.mask),
1990         new Operator((char)(45 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_BT
1991                          InstructionFormat.MIR_Test_format,
1992                          (none | InstructionFormat.MIR_Test_traits),
1993                          0, 0, 2,
1994                          PhysicalDefUse.maskCF,
1995                          PhysicalDefUse.mask),
1996         new Operator((char)(46 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_BTC
1997                          InstructionFormat.MIR_Test_format,
1998                          (none | InstructionFormat.MIR_Test_traits),
1999                          0, 0, 2,
2000                          PhysicalDefUse.maskCF,
2001                          PhysicalDefUse.mask),
2002         new Operator((char)(47 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_BTR
2003                          InstructionFormat.MIR_Test_format,
2004                          (none | InstructionFormat.MIR_Test_traits),
2005                          0, 0, 2,
2006                          PhysicalDefUse.maskCF,
2007                          PhysicalDefUse.mask),
2008         new Operator((char)(48 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_BTS
2009                          InstructionFormat.MIR_Test_format,
2010                          (none | InstructionFormat.MIR_Test_traits),
2011                          0, 0, 2,
2012                          PhysicalDefUse.maskCF,
2013                          PhysicalDefUse.mask),
2014         new Operator((char)(49 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SYSCALL
2015                          InstructionFormat.MIR_Call_format,
2016                          (call | InstructionFormat.MIR_Call_traits),
2017                          2, 0, 2,
2018                          PhysicalDefUse.maskcallDefs,
2019                          PhysicalDefUse.maskcallUses),
2020         new Operator((char)(50 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CALL
2021                          InstructionFormat.MIR_Call_format,
2022                          (call | immedPEI | InstructionFormat.MIR_Call_traits),
2023                          2, 0, 2,
2024                          PhysicalDefUse.maskcallDefs,
2025                          PhysicalDefUse.maskcallUses),
2026         new Operator((char)(51 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CDQ
2027                          InstructionFormat.MIR_ConvertDW2QW_format,
2028                          (none | InstructionFormat.MIR_ConvertDW2QW_traits),
2029                          1, 1, 0,
2030                          PhysicalDefUse.mask,
2031                          PhysicalDefUse.mask),
2032         new Operator((char)(52 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CDO
2033                          InstructionFormat.MIR_ConvertDW2QW_format,
2034                          (none | InstructionFormat.MIR_ConvertDW2QW_traits),
2035                          1, 1, 0,
2036                          PhysicalDefUse.mask,
2037                          PhysicalDefUse.mask),
2038         new Operator((char)(53 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CDQE
2039                          InstructionFormat.MIR_ConvertDW2QW_format,
2040                          (none | InstructionFormat.MIR_ConvertDW2QW_traits),
2041                          1, 1, 0,
2042                          PhysicalDefUse.mask,
2043                          PhysicalDefUse.mask),
2044         new Operator((char)(54 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMOV
2045                          InstructionFormat.MIR_CondMove_format,
2046                          (none | InstructionFormat.MIR_CondMove_traits),
2047                          0, 1, 2,
2048                          PhysicalDefUse.mask,
2049                          PhysicalDefUse.maskCF_OF_PF_SF_ZF),
2050         new Operator((char)(55 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMP
2051                          InstructionFormat.MIR_Compare_format,
2052                          (compare | InstructionFormat.MIR_Compare_traits),
2053                          0, 0, 2,
2054                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2055                          PhysicalDefUse.mask),
2056         new Operator((char)(56 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPXCHG
2057                          InstructionFormat.MIR_CompareExchange_format,
2058                          (compare | InstructionFormat.MIR_CompareExchange_traits),
2059                          0, 2, 1,
2060                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2061                          PhysicalDefUse.mask),
2062         new Operator((char)(57 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPXCHG8B
2063                          InstructionFormat.MIR_CompareExchange8B_format,
2064                          (compare | InstructionFormat.MIR_CompareExchange8B_traits),
2065                          0, 3, 2,
2066                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2067                          PhysicalDefUse.mask),
2068         new Operator((char)(58 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_DEC
2069                          InstructionFormat.MIR_UnaryAcc_format,
2070                          (none | InstructionFormat.MIR_UnaryAcc_traits),
2071                          0, 1, 0,
2072                          PhysicalDefUse.maskAF_OF_PF_SF_ZF,
2073                          PhysicalDefUse.mask),
2074         new Operator((char)(59 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_DIV
2075                          InstructionFormat.MIR_Divide_format,
2076                          (none | InstructionFormat.MIR_Divide_traits),
2077                          0, 2, 2,
2078                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2079                          PhysicalDefUse.mask),
2080         new Operator((char)(60 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FADD
2081                          InstructionFormat.MIR_BinaryAcc_format,
2082                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2083                          0, 1, 1,
2084                          PhysicalDefUse.maskC0_C1_C2_C3,
2085                          PhysicalDefUse.mask),
2086         new Operator((char)(61 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FADDP
2087                          InstructionFormat.MIR_BinaryAcc_format,
2088                          (fpPop | InstructionFormat.MIR_BinaryAcc_traits),
2089                          0, 1, 1,
2090                          PhysicalDefUse.maskC0_C1_C2_C3,
2091                          PhysicalDefUse.mask),
2092         new Operator((char)(62 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FCHS
2093                          InstructionFormat.MIR_UnaryAcc_format,
2094                          (none | InstructionFormat.MIR_UnaryAcc_traits),
2095                          0, 1, 0,
2096                          PhysicalDefUse.maskC0_C1_C2_C3,
2097                          PhysicalDefUse.mask),
2098         new Operator((char)(63 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FCMOV
2099                          InstructionFormat.MIR_CondMove_format,
2100                          (none | InstructionFormat.MIR_CondMove_traits),
2101                          0, 1, 2,
2102                          PhysicalDefUse.maskC0_C1_C2_C3,
2103                          PhysicalDefUse.maskCF_PF_ZF),
2104         new Operator((char)(64 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FCOMI
2105                          InstructionFormat.MIR_Compare_format,
2106                          (compare | InstructionFormat.MIR_Compare_traits),
2107                          0, 0, 2,
2108                          PhysicalDefUse.maskCF_PF_ZF,
2109                          PhysicalDefUse.mask),
2110         new Operator((char)(65 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FCOMIP
2111                          InstructionFormat.MIR_Compare_format,
2112                          (compare | fpPop | InstructionFormat.MIR_Compare_traits),
2113                          0, 0, 2,
2114                          PhysicalDefUse.maskCF_PF_ZF,
2115                          PhysicalDefUse.mask),
2116         new Operator((char)(66 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FDIV
2117                          InstructionFormat.MIR_BinaryAcc_format,
2118                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2119                          0, 1, 1,
2120                          PhysicalDefUse.maskC0_C1_C2_C3,
2121                          PhysicalDefUse.mask),
2122         new Operator((char)(67 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FDIVP
2123                          InstructionFormat.MIR_BinaryAcc_format,
2124                          (fpPop | InstructionFormat.MIR_BinaryAcc_traits),
2125                          0, 1, 1,
2126                          PhysicalDefUse.maskC0_C1_C2_C3,
2127                          PhysicalDefUse.mask),
2128         new Operator((char)(68 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FDIVR
2129                          InstructionFormat.MIR_BinaryAcc_format,
2130                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2131                          0, 1, 1,
2132                          PhysicalDefUse.maskC0_C1_C2_C3,
2133                          PhysicalDefUse.mask),
2134         new Operator((char)(69 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FDIVRP
2135                          InstructionFormat.MIR_BinaryAcc_format,
2136                          (fpPop | InstructionFormat.MIR_BinaryAcc_traits),
2137                          0, 1, 1,
2138                          PhysicalDefUse.maskC0_C1_C2_C3,
2139                          PhysicalDefUse.mask),
2140         new Operator((char)(70 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FEXAM
2141                          InstructionFormat.MIR_UnaryNoRes_format,
2142                          (none | InstructionFormat.MIR_UnaryNoRes_traits),
2143                          0, 0, 1,
2144                          PhysicalDefUse.maskC0_C1_C2_C3,
2145                          PhysicalDefUse.mask),
2146         new Operator((char)(71 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FXCH
2147                          InstructionFormat.MIR_XChng_format,
2148                          (none | InstructionFormat.MIR_XChng_traits),
2149                          0, 2, 0,
2150                          PhysicalDefUse.maskC0_C1_C2_C3,
2151                          PhysicalDefUse.mask),
2152         new Operator((char)(72 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FFREE
2153                          InstructionFormat.MIR_Nullary_format,
2154                          (none | InstructionFormat.MIR_Nullary_traits),
2155                          1, 0, 0,
2156                          PhysicalDefUse.maskC0_C1_C2_C3,
2157                          PhysicalDefUse.mask),
2158         new Operator((char)(73 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FIADD
2159                          InstructionFormat.MIR_BinaryAcc_format,
2160                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2161                          0, 1, 1,
2162                          PhysicalDefUse.maskC0_C1_C2_C3,
2163                          PhysicalDefUse.mask),
2164         new Operator((char)(74 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FIDIV
2165                          InstructionFormat.MIR_BinaryAcc_format,
2166                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2167                          0, 1, 1,
2168                          PhysicalDefUse.maskC0_C1_C2_C3,
2169                          PhysicalDefUse.mask),
2170         new Operator((char)(75 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FIDIVR
2171                          InstructionFormat.MIR_BinaryAcc_format,
2172                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2173                          0, 1, 1,
2174                          PhysicalDefUse.maskC0_C1_C2_C3,
2175                          PhysicalDefUse.mask),
2176         new Operator((char)(76 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FILD
2177                          InstructionFormat.MIR_Move_format,
2178                          (fpPush | InstructionFormat.MIR_Move_traits),
2179                          1, 0, 1,
2180                          PhysicalDefUse.maskC0_C1_C2_C3,
2181                          PhysicalDefUse.mask),
2182         new Operator((char)(77 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FIMUL
2183                          InstructionFormat.MIR_BinaryAcc_format,
2184                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2185                          0, 1, 1,
2186                          PhysicalDefUse.maskC0_C1_C2_C3,
2187                          PhysicalDefUse.mask),
2188         new Operator((char)(78 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FINIT
2189                          InstructionFormat.MIR_Empty_format,
2190                          (none | InstructionFormat.MIR_Empty_traits),
2191                          0, 0, 0,
2192                          PhysicalDefUse.maskC0_C1_C2_C3,
2193                          PhysicalDefUse.mask),
2194         new Operator((char)(79 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FIST
2195                          InstructionFormat.MIR_Move_format,
2196                          (none | InstructionFormat.MIR_Move_traits),
2197                          1, 0, 1,
2198                          PhysicalDefUse.maskC0_C1_C2_C3,
2199                          PhysicalDefUse.mask),
2200         new Operator((char)(80 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FISTP
2201                          InstructionFormat.MIR_Move_format,
2202                          (fpPop | InstructionFormat.MIR_Move_traits),
2203                          1, 0, 1,
2204                          PhysicalDefUse.maskC0_C1_C2_C3,
2205                          PhysicalDefUse.mask),
2206         new Operator((char)(81 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FISUB
2207                          InstructionFormat.MIR_BinaryAcc_format,
2208                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2209                          0, 1, 1,
2210                          PhysicalDefUse.maskC0_C1_C2_C3,
2211                          PhysicalDefUse.mask),
2212         new Operator((char)(82 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FISUBR
2213                          InstructionFormat.MIR_BinaryAcc_format,
2214                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2215                          0, 1, 1,
2216                          PhysicalDefUse.maskC0_C1_C2_C3,
2217                          PhysicalDefUse.mask),
2218         new Operator((char)(83 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLD
2219                          InstructionFormat.MIR_Move_format,
2220                          (fpPush | InstructionFormat.MIR_Move_traits),
2221                          1, 0, 1,
2222                          PhysicalDefUse.maskC0_C1_C2_C3,
2223                          PhysicalDefUse.mask),
2224         new Operator((char)(84 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDCW
2225                          InstructionFormat.MIR_UnaryNoRes_format,
2226                          (none | InstructionFormat.MIR_UnaryNoRes_traits),
2227                          0, 0, 1,
2228                          PhysicalDefUse.maskC0_C1_C2_C3,
2229                          PhysicalDefUse.mask),
2230         new Operator((char)(85 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLD1
2231                          InstructionFormat.MIR_Nullary_format,
2232                          (fpPush | InstructionFormat.MIR_Nullary_traits),
2233                          1, 0, 0,
2234                          PhysicalDefUse.maskC0_C1_C2_C3,
2235                          PhysicalDefUse.mask),
2236         new Operator((char)(86 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDL2T
2237                          InstructionFormat.MIR_Nullary_format,
2238                          (fpPush | InstructionFormat.MIR_Nullary_traits),
2239                          1, 0, 0,
2240                          PhysicalDefUse.maskC0_C1_C2_C3,
2241                          PhysicalDefUse.mask),
2242         new Operator((char)(87 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDL2E
2243                          InstructionFormat.MIR_Nullary_format,
2244                          (fpPush | InstructionFormat.MIR_Nullary_traits),
2245                          1, 0, 0,
2246                          PhysicalDefUse.maskC0_C1_C2_C3,
2247                          PhysicalDefUse.mask),
2248         new Operator((char)(88 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDPI
2249                          InstructionFormat.MIR_Nullary_format,
2250                          (fpPush | InstructionFormat.MIR_Nullary_traits),
2251                          1, 0, 0,
2252                          PhysicalDefUse.maskC0_C1_C2_C3,
2253                          PhysicalDefUse.mask),
2254         new Operator((char)(89 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDLG2
2255                          InstructionFormat.MIR_Nullary_format,
2256                          (fpPush | InstructionFormat.MIR_Nullary_traits),
2257                          1, 0, 0,
2258                          PhysicalDefUse.maskC0_C1_C2_C3,
2259                          PhysicalDefUse.mask),
2260         new Operator((char)(90 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDLN2
2261                          InstructionFormat.MIR_Nullary_format,
2262                          (fpPush | InstructionFormat.MIR_Nullary_traits),
2263                          1, 0, 0,
2264                          PhysicalDefUse.maskC0_C1_C2_C3,
2265                          PhysicalDefUse.mask),
2266         new Operator((char)(91 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FLDZ
2267                          InstructionFormat.MIR_Nullary_format,
2268                          (fpPush | InstructionFormat.MIR_Nullary_traits),
2269                          1, 0, 0,
2270                          PhysicalDefUse.maskC0_C1_C2_C3,
2271                          PhysicalDefUse.mask),
2272         new Operator((char)(92 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FMUL
2273                          InstructionFormat.MIR_BinaryAcc_format,
2274                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2275                          0, 1, 1,
2276                          PhysicalDefUse.maskC0_C1_C2_C3,
2277                          PhysicalDefUse.mask),
2278         new Operator((char)(93 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FMULP
2279                          InstructionFormat.MIR_BinaryAcc_format,
2280                          (fpPop | InstructionFormat.MIR_BinaryAcc_traits),
2281                          0, 1, 1,
2282                          PhysicalDefUse.maskC0_C1_C2_C3,
2283                          PhysicalDefUse.mask),
2284         new Operator((char)(94 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FNSTCW
2285                          InstructionFormat.MIR_UnaryNoRes_format,
2286                          (none | InstructionFormat.MIR_UnaryNoRes_traits),
2287                          0, 0, 1,
2288                          PhysicalDefUse.maskC0_C1_C2_C3,
2289                          PhysicalDefUse.mask),
2290         new Operator((char)(95 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FNINIT
2291                          InstructionFormat.MIR_Empty_format,
2292                          (none | InstructionFormat.MIR_Empty_traits),
2293                          0, 0, 0,
2294                          PhysicalDefUse.maskC0_C1_C2_C3,
2295                          PhysicalDefUse.mask),
2296         new Operator((char)(96 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FNSAVE
2297                          InstructionFormat.MIR_FSave_format,
2298                          (none | InstructionFormat.MIR_FSave_traits),
2299                          0, 0, 1,
2300                          PhysicalDefUse.maskC0_C1_C2_C3,
2301                          PhysicalDefUse.mask),
2302         new Operator((char)(97 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FPREM
2303                          InstructionFormat.MIR_BinaryAcc_format,
2304                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2305                          0, 1, 1,
2306                          PhysicalDefUse.maskC0_C1_C2_C3,
2307                          PhysicalDefUse.mask),
2308         new Operator((char)(98 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FRSTOR
2309                          InstructionFormat.MIR_FSave_format,
2310                          (none | InstructionFormat.MIR_FSave_traits),
2311                          0, 0, 1,
2312                          PhysicalDefUse.maskC0_C1_C2_C3,
2313                          PhysicalDefUse.mask),
2314         new Operator((char)(99 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FST
2315                          InstructionFormat.MIR_Move_format,
2316                          (none | InstructionFormat.MIR_Move_traits),
2317                          1, 0, 1,
2318                          PhysicalDefUse.maskC0_C1_C2_C3,
2319                          PhysicalDefUse.mask),
2320         new Operator((char)(100 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSTCW
2321                          InstructionFormat.MIR_UnaryNoRes_format,
2322                          (none | InstructionFormat.MIR_UnaryNoRes_traits),
2323                          0, 0, 1,
2324                          PhysicalDefUse.maskC0_C1_C2_C3,
2325                          PhysicalDefUse.mask),
2326         new Operator((char)(101 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSTP
2327                          InstructionFormat.MIR_Move_format,
2328                          (fpPop | InstructionFormat.MIR_Move_traits),
2329                          1, 0, 1,
2330                          PhysicalDefUse.maskC0_C1_C2_C3,
2331                          PhysicalDefUse.mask),
2332         new Operator((char)(102 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSUB
2333                          InstructionFormat.MIR_BinaryAcc_format,
2334                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2335                          0, 1, 1,
2336                          PhysicalDefUse.maskC0_C1_C2_C3,
2337                          PhysicalDefUse.mask),
2338         new Operator((char)(103 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSUBP
2339                          InstructionFormat.MIR_BinaryAcc_format,
2340                          (fpPop | InstructionFormat.MIR_BinaryAcc_traits),
2341                          0, 1, 1,
2342                          PhysicalDefUse.maskC0_C1_C2_C3,
2343                          PhysicalDefUse.mask),
2344         new Operator((char)(104 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSUBR
2345                          InstructionFormat.MIR_BinaryAcc_format,
2346                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2347                          0, 1, 1,
2348                          PhysicalDefUse.maskC0_C1_C2_C3,
2349                          PhysicalDefUse.mask),
2350         new Operator((char)(105 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FSUBRP
2351                          InstructionFormat.MIR_BinaryAcc_format,
2352                          (fpPop | InstructionFormat.MIR_BinaryAcc_traits),
2353                          0, 1, 1,
2354                          PhysicalDefUse.maskC0_C1_C2_C3,
2355                          PhysicalDefUse.mask),
2356         new Operator((char)(106 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FUCOMI
2357                          InstructionFormat.MIR_Compare_format,
2358                          (compare | InstructionFormat.MIR_Compare_traits),
2359                          0, 0, 2,
2360                          PhysicalDefUse.maskCF_PF_ZF,
2361                          PhysicalDefUse.mask),
2362         new Operator((char)(107 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_FUCOMIP
2363                          InstructionFormat.MIR_Compare_format,
2364                          (compare | InstructionFormat.MIR_Compare_traits),
2365                          0, 0, 2,
2366                          PhysicalDefUse.maskCF_PF_ZF,
2367                          PhysicalDefUse.mask),
2368         new Operator((char)(108 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_IDIV
2369                          InstructionFormat.MIR_Divide_format,
2370                          (none | InstructionFormat.MIR_Divide_traits),
2371                          0, 2, 2,
2372                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2373                          PhysicalDefUse.mask),
2374         new Operator((char)(109 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_IMUL1
2375                          InstructionFormat.MIR_Multiply_format,
2376                          (none | InstructionFormat.MIR_Multiply_traits),
2377                          1, 1, 1,
2378                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2379                          PhysicalDefUse.mask),
2380         new Operator((char)(110 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_IMUL2
2381                          InstructionFormat.MIR_BinaryAcc_format,
2382                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2383                          0, 1, 1,
2384                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2385                          PhysicalDefUse.mask),
2386         new Operator((char)(111 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_INC
2387                          InstructionFormat.MIR_UnaryAcc_format,
2388                          (none | InstructionFormat.MIR_UnaryAcc_traits),
2389                          0, 1, 0,
2390                          PhysicalDefUse.maskAF_OF_PF_SF_ZF,
2391                          PhysicalDefUse.mask),
2392         new Operator((char)(112 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_INT
2393                          InstructionFormat.MIR_Trap_format,
2394                          (immedPEI | InstructionFormat.MIR_Trap_traits),
2395                          1, 0, 1,
2396                          PhysicalDefUse.mask,
2397                          PhysicalDefUse.mask),
2398         new Operator((char)(113 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_JCC
2399                          InstructionFormat.MIR_CondBranch_format,
2400                          (branch | conditional | InstructionFormat.MIR_CondBranch_traits),
2401                          0, 0, 3,
2402                          PhysicalDefUse.mask,
2403                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF),
2404         new Operator((char)(114 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_JCC2
2405                          InstructionFormat.MIR_CondBranch2_format,
2406                          (branch | conditional | InstructionFormat.MIR_CondBranch2_traits),
2407                          0, 0, 6,
2408                          PhysicalDefUse.mask,
2409                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF),
2410         new Operator((char)(115 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_JMP
2411                          InstructionFormat.MIR_Branch_format,
2412                          (branch | InstructionFormat.MIR_Branch_traits),
2413                          0, 0, 1,
2414                          PhysicalDefUse.mask,
2415                          PhysicalDefUse.mask),
2416         new Operator((char)(116 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_LEA
2417                          InstructionFormat.MIR_Lea_format,
2418                          (none | InstructionFormat.MIR_Lea_traits),
2419                          1, 0, 1,
2420                          PhysicalDefUse.mask,
2421                          PhysicalDefUse.mask),
2422         new Operator((char)(117 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_LOCK
2423                          InstructionFormat.MIR_Empty_format,
2424                          (none | InstructionFormat.MIR_Empty_traits),
2425                          0, 0, 0,
2426                          PhysicalDefUse.mask,
2427                          PhysicalDefUse.mask),
2428         new Operator((char)(118 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOV
2429                          InstructionFormat.MIR_Move_format,
2430                          (move | InstructionFormat.MIR_Move_traits),
2431                          1, 0, 1,
2432                          PhysicalDefUse.mask,
2433                          PhysicalDefUse.mask),
2434         new Operator((char)(119 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVZX__B
2435                          InstructionFormat.MIR_Unary_format,
2436                          (move | InstructionFormat.MIR_Unary_traits),
2437                          1, 0, 1,
2438                          PhysicalDefUse.mask,
2439                          PhysicalDefUse.mask),
2440         new Operator((char)(120 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSX__B
2441                          InstructionFormat.MIR_Unary_format,
2442                          (move | InstructionFormat.MIR_Unary_traits),
2443                          1, 0, 1,
2444                          PhysicalDefUse.mask,
2445                          PhysicalDefUse.mask),
2446         new Operator((char)(121 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVZX__W
2447                          InstructionFormat.MIR_Unary_format,
2448                          (move | InstructionFormat.MIR_Unary_traits),
2449                          1, 0, 1,
2450                          PhysicalDefUse.mask,
2451                          PhysicalDefUse.mask),
2452         new Operator((char)(122 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSX__W
2453                          InstructionFormat.MIR_Unary_format,
2454                          (move | InstructionFormat.MIR_Unary_traits),
2455                          1, 0, 1,
2456                          PhysicalDefUse.mask,
2457                          PhysicalDefUse.mask),
2458         new Operator((char)(123 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVZXQ__B
2459                          InstructionFormat.MIR_Unary_format,
2460                          (move | InstructionFormat.MIR_Unary_traits),
2461                          1, 0, 1,
2462                          PhysicalDefUse.mask,
2463                          PhysicalDefUse.mask),
2464         new Operator((char)(124 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSXQ__B
2465                          InstructionFormat.MIR_Unary_format,
2466                          (move | InstructionFormat.MIR_Unary_traits),
2467                          1, 0, 1,
2468                          PhysicalDefUse.mask,
2469                          PhysicalDefUse.mask),
2470         new Operator((char)(125 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVZXQ__W
2471                          InstructionFormat.MIR_Unary_format,
2472                          (move | InstructionFormat.MIR_Unary_traits),
2473                          1, 0, 1,
2474                          PhysicalDefUse.mask,
2475                          PhysicalDefUse.mask),
2476         new Operator((char)(126 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSXQ__W
2477                          InstructionFormat.MIR_Unary_format,
2478                          (move | InstructionFormat.MIR_Unary_traits),
2479                          1, 0, 1,
2480                          PhysicalDefUse.mask,
2481                          PhysicalDefUse.mask),
2482         new Operator((char)(127 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MUL
2483                          InstructionFormat.MIR_Multiply_format,
2484                          (none | InstructionFormat.MIR_Multiply_traits),
2485                          1, 1, 1,
2486                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2487                          PhysicalDefUse.mask),
2488         new Operator((char)(128 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_NEG
2489                          InstructionFormat.MIR_UnaryAcc_format,
2490                          (none | InstructionFormat.MIR_UnaryAcc_traits),
2491                          0, 1, 0,
2492                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2493                          PhysicalDefUse.mask),
2494         new Operator((char)(129 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_NOT
2495                          InstructionFormat.MIR_UnaryAcc_format,
2496                          (none | InstructionFormat.MIR_UnaryAcc_traits),
2497                          0, 1, 0,
2498                          PhysicalDefUse.mask,
2499                          PhysicalDefUse.mask),
2500         new Operator((char)(130 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_OR
2501                          InstructionFormat.MIR_BinaryAcc_format,
2502                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2503                          0, 1, 1,
2504                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2505                          PhysicalDefUse.mask),
2506         new Operator((char)(131 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MFENCE
2507                          InstructionFormat.MIR_Empty_format,
2508                          (none | InstructionFormat.MIR_Empty_traits),
2509                          0, 0, 0,
2510                          PhysicalDefUse.mask,
2511                          PhysicalDefUse.mask),
2512         new Operator((char)(132 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_PAUSE
2513                          InstructionFormat.MIR_Empty_format,
2514                          (none | InstructionFormat.MIR_Empty_traits),
2515                          0, 0, 0,
2516                          PhysicalDefUse.mask,
2517                          PhysicalDefUse.mask),
2518         new Operator((char)(133 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_PREFETCHNTA
2519                          InstructionFormat.MIR_CacheOp_format,
2520                          (none | InstructionFormat.MIR_CacheOp_traits),
2521                          0, 0, 1,
2522                          PhysicalDefUse.mask,
2523                          PhysicalDefUse.mask),
2524         new Operator((char)(134 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_POP
2525                          InstructionFormat.MIR_Nullary_format,
2526                          (none | InstructionFormat.MIR_Nullary_traits),
2527                          1, 0, 0,
2528                          PhysicalDefUse.maskESP,
2529                          PhysicalDefUse.maskESP),
2530         new Operator((char)(135 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_PUSH
2531                          InstructionFormat.MIR_UnaryNoRes_format,
2532                          (none | InstructionFormat.MIR_UnaryNoRes_traits),
2533                          0, 0, 1,
2534                          PhysicalDefUse.maskESP,
2535                          PhysicalDefUse.maskESP),
2536         new Operator((char)(136 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_RCL
2537                          InstructionFormat.MIR_BinaryAcc_format,
2538                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2539                          0, 1, 1,
2540                          PhysicalDefUse.maskCF_OF,
2541                          PhysicalDefUse.maskCF),
2542         new Operator((char)(137 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_RCR
2543                          InstructionFormat.MIR_BinaryAcc_format,
2544                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2545                          0, 1, 1,
2546                          PhysicalDefUse.maskCF_OF,
2547                          PhysicalDefUse.maskCF),
2548         new Operator((char)(138 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ROL
2549                          InstructionFormat.MIR_BinaryAcc_format,
2550                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2551                          0, 1, 1,
2552                          PhysicalDefUse.maskCF_OF,
2553                          PhysicalDefUse.mask),
2554         new Operator((char)(139 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ROR
2555                          InstructionFormat.MIR_BinaryAcc_format,
2556                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2557                          0, 1, 1,
2558                          PhysicalDefUse.maskCF_OF,
2559                          PhysicalDefUse.mask),
2560         new Operator((char)(140 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_RET
2561                          InstructionFormat.MIR_Return_format,
2562                          (ret | InstructionFormat.MIR_Return_traits),
2563                          0, 0, 3,
2564                          PhysicalDefUse.maskESP,
2565                          PhysicalDefUse.maskESP),
2566         new Operator((char)(141 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SAL
2567                          InstructionFormat.MIR_BinaryAcc_format,
2568                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2569                          0, 1, 1,
2570                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2571                          PhysicalDefUse.mask),
2572         new Operator((char)(142 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SAR
2573                          InstructionFormat.MIR_BinaryAcc_format,
2574                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2575                          0, 1, 1,
2576                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2577                          PhysicalDefUse.mask),
2578         new Operator((char)(143 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SHL
2579                          InstructionFormat.MIR_BinaryAcc_format,
2580                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2581                          0, 1, 1,
2582                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2583                          PhysicalDefUse.mask),
2584         new Operator((char)(144 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SHR
2585                          InstructionFormat.MIR_BinaryAcc_format,
2586                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2587                          0, 1, 1,
2588                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2589                          PhysicalDefUse.mask),
2590         new Operator((char)(145 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SBB
2591                          InstructionFormat.MIR_BinaryAcc_format,
2592                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2593                          0, 1, 1,
2594                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2595                          PhysicalDefUse.maskCF),
2596         new Operator((char)(146 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SET__B
2597                          InstructionFormat.MIR_Set_format,
2598                          (none | InstructionFormat.MIR_Set_traits),
2599                          1, 0, 1,
2600                          PhysicalDefUse.mask,
2601                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF),
2602         new Operator((char)(147 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SHLD
2603                          InstructionFormat.MIR_DoubleShift_format,
2604                          (none | InstructionFormat.MIR_DoubleShift_traits),
2605                          0, 1, 2,
2606                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2607                          PhysicalDefUse.mask),
2608         new Operator((char)(148 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SHRD
2609                          InstructionFormat.MIR_DoubleShift_format,
2610                          (none | InstructionFormat.MIR_DoubleShift_traits),
2611                          0, 1, 2,
2612                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2613                          PhysicalDefUse.mask),
2614         new Operator((char)(149 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SUB
2615                          InstructionFormat.MIR_BinaryAcc_format,
2616                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2617                          0, 1, 1,
2618                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2619                          PhysicalDefUse.mask),
2620         new Operator((char)(150 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_TEST
2621                          InstructionFormat.MIR_Test_format,
2622                          (none | InstructionFormat.MIR_Test_traits),
2623                          0, 0, 2,
2624                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2625                          PhysicalDefUse.mask),
2626         new Operator((char)(151 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_XOR
2627                          InstructionFormat.MIR_BinaryAcc_format,
2628                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2629                          0, 1, 1,
2630                          PhysicalDefUse.maskAF_CF_OF_PF_SF_ZF,
2631                          PhysicalDefUse.mask),
2632         new Operator((char)(152 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_RDTSC
2633                          InstructionFormat.MIR_RDTSC_format,
2634                          (none | InstructionFormat.MIR_RDTSC_traits),
2635                          2, 0, 0,
2636                          PhysicalDefUse.maskCF_OF,
2637                          PhysicalDefUse.mask),
2638         new Operator((char)(153 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ADDSS
2639                          InstructionFormat.MIR_BinaryAcc_format,
2640                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2641                          0, 1, 1,
2642                          PhysicalDefUse.mask,
2643                          PhysicalDefUse.mask),
2644         new Operator((char)(154 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SUBSS
2645                          InstructionFormat.MIR_BinaryAcc_format,
2646                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2647                          0, 1, 1,
2648                          PhysicalDefUse.mask,
2649                          PhysicalDefUse.mask),
2650         new Operator((char)(155 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MULSS
2651                          InstructionFormat.MIR_BinaryAcc_format,
2652                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2653                          0, 1, 1,
2654                          PhysicalDefUse.mask,
2655                          PhysicalDefUse.mask),
2656         new Operator((char)(156 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_DIVSS
2657                          InstructionFormat.MIR_BinaryAcc_format,
2658                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2659                          0, 1, 1,
2660                          PhysicalDefUse.mask,
2661                          PhysicalDefUse.mask),
2662         new Operator((char)(157 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ADDSD
2663                          InstructionFormat.MIR_BinaryAcc_format,
2664                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2665                          0, 1, 1,
2666                          PhysicalDefUse.mask,
2667                          PhysicalDefUse.mask),
2668         new Operator((char)(158 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SUBSD
2669                          InstructionFormat.MIR_BinaryAcc_format,
2670                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2671                          0, 1, 1,
2672                          PhysicalDefUse.mask,
2673                          PhysicalDefUse.mask),
2674         new Operator((char)(159 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MULSD
2675                          InstructionFormat.MIR_BinaryAcc_format,
2676                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2677                          0, 1, 1,
2678                          PhysicalDefUse.mask,
2679                          PhysicalDefUse.mask),
2680         new Operator((char)(160 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_DIVSD
2681                          InstructionFormat.MIR_BinaryAcc_format,
2682                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2683                          0, 1, 1,
2684                          PhysicalDefUse.mask,
2685                          PhysicalDefUse.mask),
2686         new Operator((char)(161 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ANDPS
2687                          InstructionFormat.MIR_BinaryAcc_format,
2688                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2689                          0, 1, 1,
2690                          PhysicalDefUse.mask,
2691                          PhysicalDefUse.mask),
2692         new Operator((char)(162 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ANDPD
2693                          InstructionFormat.MIR_BinaryAcc_format,
2694                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2695                          0, 1, 1,
2696                          PhysicalDefUse.mask,
2697                          PhysicalDefUse.mask),
2698         new Operator((char)(163 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ANDNPS
2699                          InstructionFormat.MIR_BinaryAcc_format,
2700                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2701                          0, 1, 1,
2702                          PhysicalDefUse.mask,
2703                          PhysicalDefUse.mask),
2704         new Operator((char)(164 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ANDNPD
2705                          InstructionFormat.MIR_BinaryAcc_format,
2706                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2707                          0, 1, 1,
2708                          PhysicalDefUse.mask,
2709                          PhysicalDefUse.mask),
2710         new Operator((char)(165 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ORPS
2711                          InstructionFormat.MIR_BinaryAcc_format,
2712                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2713                          0, 1, 1,
2714                          PhysicalDefUse.mask,
2715                          PhysicalDefUse.mask),
2716         new Operator((char)(166 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_ORPD
2717                          InstructionFormat.MIR_BinaryAcc_format,
2718                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2719                          0, 1, 1,
2720                          PhysicalDefUse.mask,
2721                          PhysicalDefUse.mask),
2722         new Operator((char)(167 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_XORPS
2723                          InstructionFormat.MIR_BinaryAcc_format,
2724                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2725                          0, 1, 1,
2726                          PhysicalDefUse.mask,
2727                          PhysicalDefUse.mask),
2728         new Operator((char)(168 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_XORPD
2729                          InstructionFormat.MIR_BinaryAcc_format,
2730                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2731                          0, 1, 1,
2732                          PhysicalDefUse.mask,
2733                          PhysicalDefUse.mask),
2734         new Operator((char)(169 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_UCOMISS
2735                          InstructionFormat.MIR_Compare_format,
2736                          (compare | InstructionFormat.MIR_Compare_traits),
2737                          0, 0, 2,
2738                          PhysicalDefUse.maskCF_PF_ZF,
2739                          PhysicalDefUse.mask),
2740         new Operator((char)(170 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_UCOMISD
2741                          InstructionFormat.MIR_Compare_format,
2742                          (compare | InstructionFormat.MIR_Compare_traits),
2743                          0, 0, 2,
2744                          PhysicalDefUse.maskCF_PF_ZF,
2745                          PhysicalDefUse.mask),
2746         new Operator((char)(171 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPEQSS
2747                          InstructionFormat.MIR_BinaryAcc_format,
2748                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2749                          0, 1, 1,
2750                          PhysicalDefUse.mask,
2751                          PhysicalDefUse.mask),
2752         new Operator((char)(172 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPLTSS
2753                          InstructionFormat.MIR_BinaryAcc_format,
2754                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2755                          0, 1, 1,
2756                          PhysicalDefUse.mask,
2757                          PhysicalDefUse.mask),
2758         new Operator((char)(173 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPLESS
2759                          InstructionFormat.MIR_BinaryAcc_format,
2760                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2761                          0, 1, 1,
2762                          PhysicalDefUse.mask,
2763                          PhysicalDefUse.mask),
2764         new Operator((char)(174 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPUNORDSS
2765                          InstructionFormat.MIR_BinaryAcc_format,
2766                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2767                          0, 1, 1,
2768                          PhysicalDefUse.mask,
2769                          PhysicalDefUse.mask),
2770         new Operator((char)(175 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNESS
2771                          InstructionFormat.MIR_BinaryAcc_format,
2772                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2773                          0, 1, 1,
2774                          PhysicalDefUse.mask,
2775                          PhysicalDefUse.mask),
2776         new Operator((char)(176 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNLTSS
2777                          InstructionFormat.MIR_BinaryAcc_format,
2778                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2779                          0, 1, 1,
2780                          PhysicalDefUse.mask,
2781                          PhysicalDefUse.mask),
2782         new Operator((char)(177 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNLESS
2783                          InstructionFormat.MIR_BinaryAcc_format,
2784                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2785                          0, 1, 1,
2786                          PhysicalDefUse.mask,
2787                          PhysicalDefUse.mask),
2788         new Operator((char)(178 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPORDSS
2789                          InstructionFormat.MIR_BinaryAcc_format,
2790                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2791                          0, 1, 1,
2792                          PhysicalDefUse.mask,
2793                          PhysicalDefUse.mask),
2794         new Operator((char)(179 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPEQSD
2795                          InstructionFormat.MIR_BinaryAcc_format,
2796                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2797                          0, 1, 1,
2798                          PhysicalDefUse.mask,
2799                          PhysicalDefUse.mask),
2800         new Operator((char)(180 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPLTSD
2801                          InstructionFormat.MIR_BinaryAcc_format,
2802                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2803                          0, 1, 1,
2804                          PhysicalDefUse.mask,
2805                          PhysicalDefUse.mask),
2806         new Operator((char)(181 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPLESD
2807                          InstructionFormat.MIR_BinaryAcc_format,
2808                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2809                          0, 1, 1,
2810                          PhysicalDefUse.mask,
2811                          PhysicalDefUse.mask),
2812         new Operator((char)(182 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPUNORDSD
2813                          InstructionFormat.MIR_BinaryAcc_format,
2814                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2815                          0, 1, 1,
2816                          PhysicalDefUse.mask,
2817                          PhysicalDefUse.mask),
2818         new Operator((char)(183 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNESD
2819                          InstructionFormat.MIR_BinaryAcc_format,
2820                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2821                          0, 1, 1,
2822                          PhysicalDefUse.mask,
2823                          PhysicalDefUse.mask),
2824         new Operator((char)(184 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNLTSD
2825                          InstructionFormat.MIR_BinaryAcc_format,
2826                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2827                          0, 1, 1,
2828                          PhysicalDefUse.mask,
2829                          PhysicalDefUse.mask),
2830         new Operator((char)(185 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPNLESD
2831                          InstructionFormat.MIR_BinaryAcc_format,
2832                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2833                          0, 1, 1,
2834                          PhysicalDefUse.mask,
2835                          PhysicalDefUse.mask),
2836         new Operator((char)(186 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CMPORDSD
2837                          InstructionFormat.MIR_BinaryAcc_format,
2838                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2839                          0, 1, 1,
2840                          PhysicalDefUse.mask,
2841                          PhysicalDefUse.mask),
2842         new Operator((char)(187 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVLPD
2843                          InstructionFormat.MIR_Move_format,
2844                          (move | InstructionFormat.MIR_Move_traits),
2845                          1, 0, 1,
2846                          PhysicalDefUse.mask,
2847                          PhysicalDefUse.mask),
2848         new Operator((char)(188 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVLPS
2849                          InstructionFormat.MIR_Move_format,
2850                          (move | InstructionFormat.MIR_Move_traits),
2851                          1, 0, 1,
2852                          PhysicalDefUse.mask,
2853                          PhysicalDefUse.mask),
2854         new Operator((char)(189 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSS
2855                          InstructionFormat.MIR_Move_format,
2856                          (move | InstructionFormat.MIR_Move_traits),
2857                          1, 0, 1,
2858                          PhysicalDefUse.mask,
2859                          PhysicalDefUse.mask),
2860         new Operator((char)(190 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVSD
2861                          InstructionFormat.MIR_Move_format,
2862                          (move | InstructionFormat.MIR_Move_traits),
2863                          1, 0, 1,
2864                          PhysicalDefUse.mask,
2865                          PhysicalDefUse.mask),
2866         new Operator((char)(191 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVD
2867                          InstructionFormat.MIR_Move_format,
2868                          (move | InstructionFormat.MIR_Move_traits),
2869                          1, 0, 1,
2870                          PhysicalDefUse.mask,
2871                          PhysicalDefUse.mask),
2872         new Operator((char)(192 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_MOVQ
2873                          InstructionFormat.MIR_Move_format,
2874                          (move | InstructionFormat.MIR_Move_traits),
2875                          1, 0, 1,
2876                          PhysicalDefUse.mask,
2877                          PhysicalDefUse.mask),
2878         new Operator((char)(193 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_PSLLQ
2879                          InstructionFormat.MIR_BinaryAcc_format,
2880                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2881                          0, 1, 1,
2882                          PhysicalDefUse.mask,
2883                          PhysicalDefUse.mask),
2884         new Operator((char)(194 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_PSRLQ
2885                          InstructionFormat.MIR_BinaryAcc_format,
2886                          (none | InstructionFormat.MIR_BinaryAcc_traits),
2887                          0, 1, 1,
2888                          PhysicalDefUse.mask,
2889                          PhysicalDefUse.mask),
2890         new Operator((char)(195 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SQRTSS
2891                          InstructionFormat.MIR_Unary_format,
2892                          (none | InstructionFormat.MIR_Unary_traits),
2893                          1, 0, 1,
2894                          PhysicalDefUse.maskC0_C1_C2_C3,
2895                          PhysicalDefUse.mask),
2896         new Operator((char)(196 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_SQRTSD
2897                          InstructionFormat.MIR_Unary_format,
2898                          (none | InstructionFormat.MIR_Unary_traits),
2899                          1, 0, 1,
2900                          PhysicalDefUse.maskC0_C1_C2_C3,
2901                          PhysicalDefUse.mask),
2902         new Operator((char)(197 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSI2SS
2903                          InstructionFormat.MIR_Unary_format,
2904                          (move | InstructionFormat.MIR_Unary_traits),
2905                          1, 0, 1,
2906                          PhysicalDefUse.mask,
2907                          PhysicalDefUse.mask),
2908         new Operator((char)(198 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSS2SD
2909                          InstructionFormat.MIR_Unary_format,
2910                          (move | InstructionFormat.MIR_Unary_traits),
2911                          1, 0, 1,
2912                          PhysicalDefUse.mask,
2913                          PhysicalDefUse.mask),
2914         new Operator((char)(199 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSS2SI
2915                          InstructionFormat.MIR_Unary_format,
2916                          (move | InstructionFormat.MIR_Unary_traits),
2917                          1, 0, 1,
2918                          PhysicalDefUse.mask,
2919                          PhysicalDefUse.mask),
2920         new Operator((char)(200 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTTSS2SI
2921                          InstructionFormat.MIR_Unary_format,
2922                          (move | InstructionFormat.MIR_Unary_traits),
2923                          1, 0, 1,
2924                          PhysicalDefUse.mask,
2925                          PhysicalDefUse.mask),
2926         new Operator((char)(201 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSI2SD
2927                          InstructionFormat.MIR_Unary_format,
2928                          (move | InstructionFormat.MIR_Unary_traits),
2929                          1, 0, 1,
2930                          PhysicalDefUse.mask,
2931                          PhysicalDefUse.mask),
2932         new Operator((char)(202 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSD2SS
2933                          InstructionFormat.MIR_Unary_format,
2934                          (move | InstructionFormat.MIR_Unary_traits),
2935                          1, 0, 1,
2936                          PhysicalDefUse.mask,
2937                          PhysicalDefUse.mask),
2938         new Operator((char)(203 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSD2SI
2939                          InstructionFormat.MIR_Unary_format,
2940                          (move | InstructionFormat.MIR_Unary_traits),
2941                          1, 0, 1,
2942                          PhysicalDefUse.mask,
2943                          PhysicalDefUse.mask),
2944         new Operator((char)(204 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTTSD2SI
2945                          InstructionFormat.MIR_Unary_format,
2946                          (move | InstructionFormat.MIR_Unary_traits),
2947                          1, 0, 1,
2948                          PhysicalDefUse.mask,
2949                          PhysicalDefUse.mask),
2950         new Operator((char)(205 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSI2SDQ
2951                          InstructionFormat.MIR_Unary_format,
2952                          (move | InstructionFormat.MIR_Unary_traits),
2953                          1, 0, 1,
2954                          PhysicalDefUse.mask,
2955                          PhysicalDefUse.mask),
2956         new Operator((char)(206 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTSD2SIQ
2957                          InstructionFormat.MIR_Unary_format,
2958                          (move | InstructionFormat.MIR_Unary_traits),
2959                          1, 0, 1,
2960                          PhysicalDefUse.mask,
2961                          PhysicalDefUse.mask),
2962         new Operator((char)(207 + Operators.ARCH_INDEPENDENT_END_opcode),  //IA32_CVTTSD2SIQ
2963                          InstructionFormat.MIR_Unary_format,
2964                          (move | InstructionFormat.MIR_Unary_traits),
2965                          1, 0, 1,
2966                          PhysicalDefUse.mask,
2967                          PhysicalDefUse.mask),
2968         new Operator((char)(208 + Operators.ARCH_INDEPENDENT_END_opcode),  //MIR_END
2969                          InstructionFormat.Unassigned_format,
2970                          (none),
2971                          0,0,0,
2972                          PhysicalDefUse.mask,
2973                          PhysicalDefUse.mask),
2974         null };
2975    
2976      // For HIR/LIR
2977      private Operator(char opcode, byte format, int traits,
2978                           int numDefs, int numDefUses, int numUses,
2979                           int iDefs, int iUses) {
2980        this.opcode       = opcode;
2981        this.format       = format;
2982        this.traits       = traits;
2983        this.numberDefs   = numDefs;
2984        this.numberDefUses= numDefUses;
2985        this.numberUses   = numUses;
2986        this.implicitDefs = iDefs;
2987        this.implicitUses = iUses;
2988      }
2989    
2990    }