001/*
002 *  This file is part of the Jikes RVM project (http://jikesrvm.org).
003 *
004 *  This file is licensed to You under the Eclipse Public License (EPL);
005 *  You may not use this file except in compliance with the License. You
006 *  may obtain a copy of the License at
007 *
008 *      http://www.opensource.org/licenses/eclipse-1.0.php
009 *
010 *  See the COPYRIGHT.txt file distributed with this work for information
011 *  regarding copyright ownership.
012 */
013/*
014 * NOTE: ArchOperator.java is mechanically generated from
015 * ArchOperator.template using the operator definitions in
016 * OperatorList.dat and ppcOperatorList.dat
017 *
018 * DO NOT MANUALLY EDIT THE JAVA FILE.
019 */
020
021package org.jikesrvm.compilers.opt.ir.ppc;
022
023import org.jikesrvm.*;
024import org.jikesrvm.compilers.opt.ir.InstructionFormat;
025import org.jikesrvm.compilers.opt.ir.Operator;
026import org.jikesrvm.compilers.opt.ir.Operators;
027import org.jikesrvm.compilers.opt.*;
028import org.jikesrvm.util.Bits;
029import org.vmmagic.pragma.Pure;
030
031/**
032 * The implementation of operator that is specific to a particular
033 * architecture.
034 */
035public final class ArchOperator extends Operator {
036
037  /** Array holding all singleton operators */
038  private static final Operator[] OperatorArray = {
039     new ArchOperator((char)0, ArchInstructionFormat.Nullary_format,  //GET_CAUGHT_EXCEPTION
040                      (none | ArchInstructionFormat.Nullary_traits),
041                      1, 0, 0,
042                      PhysicalDefUse.mask,
043                      PhysicalDefUse.mask),
044     new ArchOperator((char)1, ArchInstructionFormat.CacheOp_format,  //SET_CAUGHT_EXCEPTION
045                      (none | ArchInstructionFormat.CacheOp_traits),
046                      0, 0, 1,
047                      PhysicalDefUse.mask,
048                      PhysicalDefUse.mask),
049     new ArchOperator((char)2, ArchInstructionFormat.New_format,  //NEW
050                      (alloc | immedPEI | ArchInstructionFormat.New_traits),
051                      1, 0, 1,
052                      PhysicalDefUse.mask,
053                      PhysicalDefUse.mask),
054     new ArchOperator((char)3, ArchInstructionFormat.New_format,  //NEW_UNRESOLVED
055                      (alloc | immedPEI | dynLink | ArchInstructionFormat.New_traits),
056                      1, 0, 1,
057                      PhysicalDefUse.mask,
058                      PhysicalDefUse.mask),
059     new ArchOperator((char)4, ArchInstructionFormat.NewArray_format,  //NEWARRAY
060                      (alloc | immedPEI | ArchInstructionFormat.NewArray_traits),
061                      1, 0, 2,
062                      PhysicalDefUse.mask,
063                      PhysicalDefUse.mask),
064     new ArchOperator((char)5, ArchInstructionFormat.NewArray_format,  //NEWARRAY_UNRESOLVED
065                      (alloc | immedPEI | dynLink | ArchInstructionFormat.NewArray_traits),
066                      1, 0, 2,
067                      PhysicalDefUse.mask,
068                      PhysicalDefUse.mask),
069     new ArchOperator((char)6, ArchInstructionFormat.Athrow_format,  //ATHROW
070                      (ethrow | ArchInstructionFormat.Athrow_traits),
071                      0, 0, 1,
072                      PhysicalDefUse.mask,
073                      PhysicalDefUse.mask),
074     new ArchOperator((char)7, ArchInstructionFormat.TypeCheck_format,  //CHECKCAST
075                      (immedPEI | ArchInstructionFormat.TypeCheck_traits),
076                      1, 0, 3,
077                      PhysicalDefUse.mask,
078                      PhysicalDefUse.mask),
079     new ArchOperator((char)8, ArchInstructionFormat.TypeCheck_format,  //CHECKCAST_NOTNULL
080                      (immedPEI | ArchInstructionFormat.TypeCheck_traits),
081                      1, 0, 3,
082                      PhysicalDefUse.mask,
083                      PhysicalDefUse.mask),
084     new ArchOperator((char)9, ArchInstructionFormat.TypeCheck_format,  //CHECKCAST_UNRESOLVED
085                      (immedPEI | dynLink | ArchInstructionFormat.TypeCheck_traits),
086                      1, 0, 3,
087                      PhysicalDefUse.mask,
088                      PhysicalDefUse.mask),
089     new ArchOperator((char)10, ArchInstructionFormat.TypeCheck_format,  //MUST_IMPLEMENT_INTERFACE
090                      (immedPEI | ArchInstructionFormat.TypeCheck_traits),
091                      1, 0, 3,
092                      PhysicalDefUse.mask,
093                      PhysicalDefUse.mask),
094     new ArchOperator((char)11, ArchInstructionFormat.InstanceOf_format,  //INSTANCEOF
095                      (none | ArchInstructionFormat.InstanceOf_traits),
096                      1, 0, 3,
097                      PhysicalDefUse.mask,
098                      PhysicalDefUse.mask),
099     new ArchOperator((char)12, ArchInstructionFormat.InstanceOf_format,  //INSTANCEOF_NOTNULL
100                      (none | ArchInstructionFormat.InstanceOf_traits),
101                      1, 0, 3,
102                      PhysicalDefUse.mask,
103                      PhysicalDefUse.mask),
104     new ArchOperator((char)13, ArchInstructionFormat.InstanceOf_format,  //INSTANCEOF_UNRESOLVED
105                      (immedPEI | dynLink | ArchInstructionFormat.InstanceOf_traits),
106                      1, 0, 3,
107                      PhysicalDefUse.mask,
108                      PhysicalDefUse.mask),
109     new ArchOperator((char)14, ArchInstructionFormat.MonitorOp_format,  //MONITORENTER
110                      (memAsLoad | memAsStore | acquire | tsp | ArchInstructionFormat.MonitorOp_traits),
111                      0, 0, 2,
112                      PhysicalDefUse.mask,
113                      PhysicalDefUse.mask),
114     new ArchOperator((char)15, ArchInstructionFormat.MonitorOp_format,  //MONITOREXIT
115                      (memAsLoad | memAsStore | release | tsp | immedPEI | ArchInstructionFormat.MonitorOp_traits),
116                      0, 0, 2,
117                      PhysicalDefUse.mask,
118                      PhysicalDefUse.mask),
119     new ArchOperator((char)16, ArchInstructionFormat.Multianewarray_format,  //NEWOBJMULTIARRAY
120                      (alloc | immedPEI | dynLink | ArchInstructionFormat.Multianewarray_traits),
121                      1, 0, 1,
122                      PhysicalDefUse.mask,
123                      PhysicalDefUse.mask),
124     new ArchOperator((char)17, ArchInstructionFormat.GetStatic_format,  //GETSTATIC
125                      (load | ArchInstructionFormat.GetStatic_traits),
126                      1, 0, 2,
127                      PhysicalDefUse.mask,
128                      PhysicalDefUse.mask),
129     new ArchOperator((char)18, ArchInstructionFormat.PutStatic_format,  //PUTSTATIC
130                      (store | ArchInstructionFormat.PutStatic_traits),
131                      0, 0, 3,
132                      PhysicalDefUse.mask,
133                      PhysicalDefUse.mask),
134     new ArchOperator((char)19, ArchInstructionFormat.GetField_format,  //GETFIELD
135                      (load | ArchInstructionFormat.GetField_traits),
136                      1, 0, 4,
137                      PhysicalDefUse.mask,
138                      PhysicalDefUse.mask),
139     new ArchOperator((char)20, ArchInstructionFormat.PutField_format,  //PUTFIELD
140                      (store | ArchInstructionFormat.PutField_traits),
141                      0, 0, 5,
142                      PhysicalDefUse.mask,
143                      PhysicalDefUse.mask),
144     new ArchOperator((char)21, ArchInstructionFormat.ZeroCheck_format,  //INT_ZERO_CHECK
145                      (immedPEI | ArchInstructionFormat.ZeroCheck_traits),
146                      1, 0, 1,
147                      PhysicalDefUse.mask,
148                      PhysicalDefUse.mask),
149     new ArchOperator((char)22, ArchInstructionFormat.ZeroCheck_format,  //LONG_ZERO_CHECK
150                      (immedPEI | ArchInstructionFormat.ZeroCheck_traits),
151                      1, 0, 1,
152                      PhysicalDefUse.mask,
153                      PhysicalDefUse.mask),
154     new ArchOperator((char)23, ArchInstructionFormat.BoundsCheck_format,  //BOUNDS_CHECK
155                      (immedPEI | ArchInstructionFormat.BoundsCheck_traits),
156                      1, 0, 3,
157                      PhysicalDefUse.mask,
158                      PhysicalDefUse.mask),
159     new ArchOperator((char)24, ArchInstructionFormat.StoreCheck_format,  //OBJARRAY_STORE_CHECK
160                      (immedPEI | ArchInstructionFormat.StoreCheck_traits),
161                      1, 0, 3,
162                      PhysicalDefUse.mask,
163                      PhysicalDefUse.mask),
164     new ArchOperator((char)25, ArchInstructionFormat.StoreCheck_format,  //OBJARRAY_STORE_CHECK_NOTNULL
165                      (immedPEI | ArchInstructionFormat.StoreCheck_traits),
166                      1, 0, 3,
167                      PhysicalDefUse.mask,
168                      PhysicalDefUse.mask),
169     new ArchOperator((char)26, ArchInstructionFormat.InlineGuard_format,  //IG_PATCH_POINT
170                      (branch | conditional | ArchInstructionFormat.InlineGuard_traits),
171                      0, 0, 5,
172                      PhysicalDefUse.mask,
173                      PhysicalDefUse.mask),
174     new ArchOperator((char)27, ArchInstructionFormat.InlineGuard_format,  //IG_CLASS_TEST
175                      (branch | conditional | ArchInstructionFormat.InlineGuard_traits),
176                      0, 0, 5,
177                      PhysicalDefUse.mask,
178                      PhysicalDefUse.mask),
179     new ArchOperator((char)28, ArchInstructionFormat.InlineGuard_format,  //IG_METHOD_TEST
180                      (branch | conditional | ArchInstructionFormat.InlineGuard_traits),
181                      0, 0, 5,
182                      PhysicalDefUse.mask,
183                      PhysicalDefUse.mask),
184     new ArchOperator((char)29, ArchInstructionFormat.TableSwitch_format,  //TABLESWITCH
185                      (branch | ArchInstructionFormat.TableSwitch_traits),
186                      0, 0, 7,
187                      PhysicalDefUse.mask,
188                      PhysicalDefUse.mask),
189     new ArchOperator((char)30, ArchInstructionFormat.LookupSwitch_format,  //LOOKUPSWITCH
190                      (branch | ArchInstructionFormat.LookupSwitch_traits),
191                      0, 0, 5,
192                      PhysicalDefUse.mask,
193                      PhysicalDefUse.mask),
194     new ArchOperator((char)31, ArchInstructionFormat.ALoad_format,  //INT_ALOAD
195                      (load | ArchInstructionFormat.ALoad_traits),
196                      1, 0, 4,
197                      PhysicalDefUse.mask,
198                      PhysicalDefUse.mask),
199     new ArchOperator((char)32, ArchInstructionFormat.ALoad_format,  //LONG_ALOAD
200                      (load | ArchInstructionFormat.ALoad_traits),
201                      1, 0, 4,
202                      PhysicalDefUse.mask,
203                      PhysicalDefUse.mask),
204     new ArchOperator((char)33, ArchInstructionFormat.ALoad_format,  //FLOAT_ALOAD
205                      (load | ArchInstructionFormat.ALoad_traits),
206                      1, 0, 4,
207                      PhysicalDefUse.mask,
208                      PhysicalDefUse.mask),
209     new ArchOperator((char)34, ArchInstructionFormat.ALoad_format,  //DOUBLE_ALOAD
210                      (load | ArchInstructionFormat.ALoad_traits),
211                      1, 0, 4,
212                      PhysicalDefUse.mask,
213                      PhysicalDefUse.mask),
214     new ArchOperator((char)35, ArchInstructionFormat.ALoad_format,  //REF_ALOAD
215                      (load | ArchInstructionFormat.ALoad_traits),
216                      1, 0, 4,
217                      PhysicalDefUse.mask,
218                      PhysicalDefUse.mask),
219     new ArchOperator((char)36, ArchInstructionFormat.ALoad_format,  //UBYTE_ALOAD
220                      (load | ArchInstructionFormat.ALoad_traits),
221                      1, 0, 4,
222                      PhysicalDefUse.mask,
223                      PhysicalDefUse.mask),
224     new ArchOperator((char)37, ArchInstructionFormat.ALoad_format,  //BYTE_ALOAD
225                      (load | ArchInstructionFormat.ALoad_traits),
226                      1, 0, 4,
227                      PhysicalDefUse.mask,
228                      PhysicalDefUse.mask),
229     new ArchOperator((char)38, ArchInstructionFormat.ALoad_format,  //USHORT_ALOAD
230                      (load | ArchInstructionFormat.ALoad_traits),
231                      1, 0, 4,
232                      PhysicalDefUse.mask,
233                      PhysicalDefUse.mask),
234     new ArchOperator((char)39, ArchInstructionFormat.ALoad_format,  //SHORT_ALOAD
235                      (load | ArchInstructionFormat.ALoad_traits),
236                      1, 0, 4,
237                      PhysicalDefUse.mask,
238                      PhysicalDefUse.mask),
239     new ArchOperator((char)40, ArchInstructionFormat.AStore_format,  //INT_ASTORE
240                      (store | ArchInstructionFormat.AStore_traits),
241                      0, 0, 5,
242                      PhysicalDefUse.mask,
243                      PhysicalDefUse.mask),
244     new ArchOperator((char)41, ArchInstructionFormat.AStore_format,  //LONG_ASTORE
245                      (store | ArchInstructionFormat.AStore_traits),
246                      0, 0, 5,
247                      PhysicalDefUse.mask,
248                      PhysicalDefUse.mask),
249     new ArchOperator((char)42, ArchInstructionFormat.AStore_format,  //FLOAT_ASTORE
250                      (store | ArchInstructionFormat.AStore_traits),
251                      0, 0, 5,
252                      PhysicalDefUse.mask,
253                      PhysicalDefUse.mask),
254     new ArchOperator((char)43, ArchInstructionFormat.AStore_format,  //DOUBLE_ASTORE
255                      (store | ArchInstructionFormat.AStore_traits),
256                      0, 0, 5,
257                      PhysicalDefUse.mask,
258                      PhysicalDefUse.mask),
259     new ArchOperator((char)44, ArchInstructionFormat.AStore_format,  //REF_ASTORE
260                      (store | ArchInstructionFormat.AStore_traits),
261                      0, 0, 5,
262                      PhysicalDefUse.mask,
263                      PhysicalDefUse.mask),
264     new ArchOperator((char)45, ArchInstructionFormat.AStore_format,  //BYTE_ASTORE
265                      (store | ArchInstructionFormat.AStore_traits),
266                      0, 0, 5,
267                      PhysicalDefUse.mask,
268                      PhysicalDefUse.mask),
269     new ArchOperator((char)46, ArchInstructionFormat.AStore_format,  //SHORT_ASTORE
270                      (store | ArchInstructionFormat.AStore_traits),
271                      0, 0, 5,
272                      PhysicalDefUse.mask,
273                      PhysicalDefUse.mask),
274     new ArchOperator((char)47, ArchInstructionFormat.IfCmp_format,  //INT_IFCMP
275                      (branch | conditional | ArchInstructionFormat.IfCmp_traits),
276                      1, 0, 5,
277                      PhysicalDefUse.mask,
278                      PhysicalDefUse.mask),
279     new ArchOperator((char)48, ArchInstructionFormat.IfCmp2_format,  //INT_IFCMP2
280                      (branch | conditional | ArchInstructionFormat.IfCmp2_traits),
281                      1, 0, 8,
282                      PhysicalDefUse.mask,
283                      PhysicalDefUse.mask),
284     new ArchOperator((char)49, ArchInstructionFormat.IfCmp_format,  //LONG_IFCMP
285                      (branch | conditional | ArchInstructionFormat.IfCmp_traits),
286                      1, 0, 5,
287                      PhysicalDefUse.mask,
288                      PhysicalDefUse.mask),
289     new ArchOperator((char)50, ArchInstructionFormat.IfCmp_format,  //FLOAT_IFCMP
290                      (branch | conditional | ArchInstructionFormat.IfCmp_traits),
291                      1, 0, 5,
292                      PhysicalDefUse.mask,
293                      PhysicalDefUse.mask),
294     new ArchOperator((char)51, ArchInstructionFormat.IfCmp_format,  //DOUBLE_IFCMP
295                      (branch | conditional | ArchInstructionFormat.IfCmp_traits),
296                      1, 0, 5,
297                      PhysicalDefUse.mask,
298                      PhysicalDefUse.mask),
299     new ArchOperator((char)52, ArchInstructionFormat.IfCmp_format,  //REF_IFCMP
300                      (branch | conditional | ArchInstructionFormat.IfCmp_traits),
301                      1, 0, 5,
302                      PhysicalDefUse.mask,
303                      PhysicalDefUse.mask),
304     new ArchOperator((char)53, ArchInstructionFormat.Label_format,  //LABEL
305                      (none | ArchInstructionFormat.Label_traits),
306                      0, 0, 1,
307                      PhysicalDefUse.mask,
308                      PhysicalDefUse.mask),
309     new ArchOperator((char)54, ArchInstructionFormat.BBend_format,  //BBEND
310                      (none | ArchInstructionFormat.BBend_traits),
311                      0, 0, 1,
312                      PhysicalDefUse.mask,
313                      PhysicalDefUse.mask),
314     new ArchOperator((char)55, ArchInstructionFormat.Empty_format,  //UNINT_BEGIN
315                      (none | ArchInstructionFormat.Empty_traits),
316                      0, 0, 0,
317                      PhysicalDefUse.mask,
318                      PhysicalDefUse.mask),
319     new ArchOperator((char)56, ArchInstructionFormat.Empty_format,  //UNINT_END
320                      (none | ArchInstructionFormat.Empty_traits),
321                      0, 0, 0,
322                      PhysicalDefUse.mask,
323                      PhysicalDefUse.mask),
324     new ArchOperator((char)57, ArchInstructionFormat.Empty_format,  //FENCE
325                      (memAsLoad | memAsStore | release | acquire | ArchInstructionFormat.Empty_traits),
326                      0, 0, 0,
327                      PhysicalDefUse.mask,
328                      PhysicalDefUse.mask),
329     new ArchOperator((char)58, ArchInstructionFormat.Empty_format,  //READ_CEILING
330                      (memAsLoad | memAsStore | acquire | ArchInstructionFormat.Empty_traits),
331                      0, 0, 0,
332                      PhysicalDefUse.mask,
333                      PhysicalDefUse.mask),
334     new ArchOperator((char)59, ArchInstructionFormat.Empty_format,  //WRITE_FLOOR
335                      (memAsLoad | memAsStore | release | ArchInstructionFormat.Empty_traits),
336                      0, 0, 0,
337                      PhysicalDefUse.mask,
338                      PhysicalDefUse.mask),
339     new ArchOperator((char)60, ArchInstructionFormat.Phi_format,  //PHI
340                      (none | ArchInstructionFormat.Phi_traits),
341                      1, 0, 0,
342                      PhysicalDefUse.mask,
343                      PhysicalDefUse.mask),
344     new ArchOperator((char)61, ArchInstructionFormat.Unary_format,  //SPLIT
345                      (none | ArchInstructionFormat.Unary_traits),
346                      1, 0, 1,
347                      PhysicalDefUse.mask,
348                      PhysicalDefUse.mask),
349     new ArchOperator((char)62, ArchInstructionFormat.GuardedUnary_format,  //PI
350                      (none | ArchInstructionFormat.GuardedUnary_traits),
351                      1, 0, 2,
352                      PhysicalDefUse.mask,
353                      PhysicalDefUse.mask),
354     new ArchOperator((char)63, ArchInstructionFormat.Empty_format,  //NOP
355                      (none | ArchInstructionFormat.Empty_traits),
356                      0, 0, 0,
357                      PhysicalDefUse.mask,
358                      PhysicalDefUse.mask),
359     new ArchOperator((char)64, ArchInstructionFormat.Move_format,  //INT_MOVE
360                      (move | ArchInstructionFormat.Move_traits),
361                      1, 0, 1,
362                      PhysicalDefUse.mask,
363                      PhysicalDefUse.mask),
364     new ArchOperator((char)65, ArchInstructionFormat.Move_format,  //LONG_MOVE
365                      (move | ArchInstructionFormat.Move_traits),
366                      1, 0, 1,
367                      PhysicalDefUse.mask,
368                      PhysicalDefUse.mask),
369     new ArchOperator((char)66, ArchInstructionFormat.Move_format,  //FLOAT_MOVE
370                      (move | ArchInstructionFormat.Move_traits),
371                      1, 0, 1,
372                      PhysicalDefUse.mask,
373                      PhysicalDefUse.mask),
374     new ArchOperator((char)67, ArchInstructionFormat.Move_format,  //DOUBLE_MOVE
375                      (move | ArchInstructionFormat.Move_traits),
376                      1, 0, 1,
377                      PhysicalDefUse.mask,
378                      PhysicalDefUse.mask),
379     new ArchOperator((char)68, ArchInstructionFormat.Move_format,  //REF_MOVE
380                      (move | ArchInstructionFormat.Move_traits),
381                      1, 0, 1,
382                      PhysicalDefUse.mask,
383                      PhysicalDefUse.mask),
384     new ArchOperator((char)69, ArchInstructionFormat.Move_format,  //GUARD_MOVE
385                      (move | ArchInstructionFormat.Move_traits),
386                      1, 0, 1,
387                      PhysicalDefUse.mask,
388                      PhysicalDefUse.mask),
389     new ArchOperator((char)70, ArchInstructionFormat.CondMove_format,  //INT_COND_MOVE
390                      (compare | ArchInstructionFormat.CondMove_traits),
391                      1, 0, 5,
392                      PhysicalDefUse.mask,
393                      PhysicalDefUse.mask),
394     new ArchOperator((char)71, ArchInstructionFormat.CondMove_format,  //LONG_COND_MOVE
395                      (compare | ArchInstructionFormat.CondMove_traits),
396                      1, 0, 5,
397                      PhysicalDefUse.mask,
398                      PhysicalDefUse.mask),
399     new ArchOperator((char)72, ArchInstructionFormat.CondMove_format,  //FLOAT_COND_MOVE
400                      (compare | ArchInstructionFormat.CondMove_traits),
401                      1, 0, 5,
402                      PhysicalDefUse.mask,
403                      PhysicalDefUse.mask),
404     new ArchOperator((char)73, ArchInstructionFormat.CondMove_format,  //DOUBLE_COND_MOVE
405                      (compare | ArchInstructionFormat.CondMove_traits),
406                      1, 0, 5,
407                      PhysicalDefUse.mask,
408                      PhysicalDefUse.mask),
409     new ArchOperator((char)74, ArchInstructionFormat.CondMove_format,  //REF_COND_MOVE
410                      (compare | ArchInstructionFormat.CondMove_traits),
411                      1, 0, 5,
412                      PhysicalDefUse.mask,
413                      PhysicalDefUse.mask),
414     new ArchOperator((char)75, ArchInstructionFormat.CondMove_format,  //GUARD_COND_MOVE
415                      (compare | ArchInstructionFormat.CondMove_traits),
416                      1, 0, 5,
417                      PhysicalDefUse.mask,
418                      PhysicalDefUse.mask),
419     new ArchOperator((char)76, ArchInstructionFormat.Binary_format,  //GUARD_COMBINE
420                      (none | ArchInstructionFormat.Binary_traits),
421                      1, 0, 2,
422                      PhysicalDefUse.mask,
423                      PhysicalDefUse.mask),
424     new ArchOperator((char)77, ArchInstructionFormat.Binary_format,  //REF_ADD
425                      (commutative | ArchInstructionFormat.Binary_traits),
426                      1, 0, 2,
427                      PhysicalDefUse.mask,
428                      PhysicalDefUse.mask),
429     new ArchOperator((char)78, ArchInstructionFormat.Binary_format,  //INT_ADD
430                      (commutative | ArchInstructionFormat.Binary_traits),
431                      1, 0, 2,
432                      PhysicalDefUse.mask,
433                      PhysicalDefUse.mask),
434     new ArchOperator((char)79, ArchInstructionFormat.Binary_format,  //LONG_ADD
435                      (commutative | ArchInstructionFormat.Binary_traits),
436                      1, 0, 2,
437                      PhysicalDefUse.mask,
438                      PhysicalDefUse.mask),
439     new ArchOperator((char)80, ArchInstructionFormat.Binary_format,  //FLOAT_ADD
440                      (commutative | ArchInstructionFormat.Binary_traits),
441                      1, 0, 2,
442                      PhysicalDefUse.mask,
443                      PhysicalDefUse.mask),
444     new ArchOperator((char)81, ArchInstructionFormat.Binary_format,  //DOUBLE_ADD
445                      (commutative | ArchInstructionFormat.Binary_traits),
446                      1, 0, 2,
447                      PhysicalDefUse.mask,
448                      PhysicalDefUse.mask),
449     new ArchOperator((char)82, ArchInstructionFormat.Binary_format,  //REF_SUB
450                      (none | ArchInstructionFormat.Binary_traits),
451                      1, 0, 2,
452                      PhysicalDefUse.mask,
453                      PhysicalDefUse.mask),
454     new ArchOperator((char)83, ArchInstructionFormat.Binary_format,  //INT_SUB
455                      (none | ArchInstructionFormat.Binary_traits),
456                      1, 0, 2,
457                      PhysicalDefUse.mask,
458                      PhysicalDefUse.mask),
459     new ArchOperator((char)84, ArchInstructionFormat.Binary_format,  //LONG_SUB
460                      (none | ArchInstructionFormat.Binary_traits),
461                      1, 0, 2,
462                      PhysicalDefUse.mask,
463                      PhysicalDefUse.mask),
464     new ArchOperator((char)85, ArchInstructionFormat.Binary_format,  //FLOAT_SUB
465                      (none | ArchInstructionFormat.Binary_traits),
466                      1, 0, 2,
467                      PhysicalDefUse.mask,
468                      PhysicalDefUse.mask),
469     new ArchOperator((char)86, ArchInstructionFormat.Binary_format,  //DOUBLE_SUB
470                      (none | ArchInstructionFormat.Binary_traits),
471                      1, 0, 2,
472                      PhysicalDefUse.mask,
473                      PhysicalDefUse.mask),
474     new ArchOperator((char)87, ArchInstructionFormat.Binary_format,  //INT_MUL
475                      (commutative | ArchInstructionFormat.Binary_traits),
476                      1, 0, 2,
477                      PhysicalDefUse.mask,
478                      PhysicalDefUse.mask),
479     new ArchOperator((char)88, ArchInstructionFormat.Binary_format,  //LONG_MUL
480                      (commutative | ArchInstructionFormat.Binary_traits),
481                      1, 0, 2,
482                      PhysicalDefUse.mask,
483                      PhysicalDefUse.mask),
484     new ArchOperator((char)89, ArchInstructionFormat.Binary_format,  //FLOAT_MUL
485                      (commutative | ArchInstructionFormat.Binary_traits),
486                      1, 0, 2,
487                      PhysicalDefUse.mask,
488                      PhysicalDefUse.mask),
489     new ArchOperator((char)90, ArchInstructionFormat.Binary_format,  //DOUBLE_MUL
490                      (commutative | ArchInstructionFormat.Binary_traits),
491                      1, 0, 2,
492                      PhysicalDefUse.mask,
493                      PhysicalDefUse.mask),
494     new ArchOperator((char)91, ArchInstructionFormat.GuardedBinary_format,  //INT_DIV
495                      (none | ArchInstructionFormat.GuardedBinary_traits),
496                      1, 0, 3,
497                      PhysicalDefUse.mask,
498                      PhysicalDefUse.mask),
499     new ArchOperator((char)92, ArchInstructionFormat.GuardedBinary_format,  //LONG_DIV
500                      (none | ArchInstructionFormat.GuardedBinary_traits),
501                      1, 0, 3,
502                      PhysicalDefUse.mask,
503                      PhysicalDefUse.mask),
504     new ArchOperator((char)93, ArchInstructionFormat.Binary_format,  //FLOAT_DIV
505                      (none | ArchInstructionFormat.Binary_traits),
506                      1, 0, 2,
507                      PhysicalDefUse.mask,
508                      PhysicalDefUse.mask),
509     new ArchOperator((char)94, ArchInstructionFormat.Binary_format,  //DOUBLE_DIV
510                      (none | ArchInstructionFormat.Binary_traits),
511                      1, 0, 2,
512                      PhysicalDefUse.mask,
513                      PhysicalDefUse.mask),
514     new ArchOperator((char)95, ArchInstructionFormat.GuardedBinary_format,  //INT_REM
515                      (none | ArchInstructionFormat.GuardedBinary_traits),
516                      1, 0, 3,
517                      PhysicalDefUse.mask,
518                      PhysicalDefUse.mask),
519     new ArchOperator((char)96, ArchInstructionFormat.GuardedBinary_format,  //LONG_REM
520                      (none | ArchInstructionFormat.GuardedBinary_traits),
521                      1, 0, 3,
522                      PhysicalDefUse.mask,
523                      PhysicalDefUse.mask),
524     new ArchOperator((char)97, ArchInstructionFormat.Binary_format,  //FLOAT_REM
525                      (none | ArchInstructionFormat.Binary_traits),
526                      1, 0, 2,
527                      PhysicalDefUse.maskIEEEMagicUses,
528                      PhysicalDefUse.mask),
529     new ArchOperator((char)98, ArchInstructionFormat.Binary_format,  //DOUBLE_REM
530                      (none | ArchInstructionFormat.Binary_traits),
531                      1, 0, 2,
532                      PhysicalDefUse.maskIEEEMagicUses,
533                      PhysicalDefUse.mask),
534     new ArchOperator((char)99, ArchInstructionFormat.Unary_format,  //REF_NEG
535                      (none | ArchInstructionFormat.Unary_traits),
536                      1, 0, 1,
537                      PhysicalDefUse.mask,
538                      PhysicalDefUse.mask),
539     new ArchOperator((char)100, ArchInstructionFormat.Unary_format,  //INT_NEG
540                      (none | ArchInstructionFormat.Unary_traits),
541                      1, 0, 1,
542                      PhysicalDefUse.mask,
543                      PhysicalDefUse.mask),
544     new ArchOperator((char)101, ArchInstructionFormat.Unary_format,  //LONG_NEG
545                      (none | ArchInstructionFormat.Unary_traits),
546                      1, 0, 1,
547                      PhysicalDefUse.mask,
548                      PhysicalDefUse.mask),
549     new ArchOperator((char)102, ArchInstructionFormat.Unary_format,  //FLOAT_NEG
550                      (none | ArchInstructionFormat.Unary_traits),
551                      1, 0, 1,
552                      PhysicalDefUse.mask,
553                      PhysicalDefUse.mask),
554     new ArchOperator((char)103, ArchInstructionFormat.Unary_format,  //DOUBLE_NEG
555                      (none | ArchInstructionFormat.Unary_traits),
556                      1, 0, 1,
557                      PhysicalDefUse.mask,
558                      PhysicalDefUse.mask),
559     new ArchOperator((char)104, ArchInstructionFormat.Unary_format,  //FLOAT_SQRT
560                      (none | ArchInstructionFormat.Unary_traits),
561                      1, 0, 1,
562                      PhysicalDefUse.mask,
563                      PhysicalDefUse.mask),
564     new ArchOperator((char)105, ArchInstructionFormat.Unary_format,  //DOUBLE_SQRT
565                      (none | ArchInstructionFormat.Unary_traits),
566                      1, 0, 1,
567                      PhysicalDefUse.mask,
568                      PhysicalDefUse.mask),
569     new ArchOperator((char)106, ArchInstructionFormat.Binary_format,  //REF_SHL
570                      (none | ArchInstructionFormat.Binary_traits),
571                      1, 0, 2,
572                      PhysicalDefUse.mask,
573                      PhysicalDefUse.mask),
574     new ArchOperator((char)107, ArchInstructionFormat.Binary_format,  //INT_SHL
575                      (none | ArchInstructionFormat.Binary_traits),
576                      1, 0, 2,
577                      PhysicalDefUse.mask,
578                      PhysicalDefUse.mask),
579     new ArchOperator((char)108, ArchInstructionFormat.Binary_format,  //LONG_SHL
580                      (none | ArchInstructionFormat.Binary_traits),
581                      1, 0, 2,
582                      PhysicalDefUse.mask,
583                      PhysicalDefUse.mask),
584     new ArchOperator((char)109, ArchInstructionFormat.Binary_format,  //REF_SHR
585                      (none | ArchInstructionFormat.Binary_traits),
586                      1, 0, 2,
587                      PhysicalDefUse.mask,
588                      PhysicalDefUse.mask),
589     new ArchOperator((char)110, ArchInstructionFormat.Binary_format,  //INT_SHR
590                      (none | ArchInstructionFormat.Binary_traits),
591                      1, 0, 2,
592                      PhysicalDefUse.mask,
593                      PhysicalDefUse.mask),
594     new ArchOperator((char)111, ArchInstructionFormat.Binary_format,  //LONG_SHR
595                      (none | ArchInstructionFormat.Binary_traits),
596                      1, 0, 2,
597                      PhysicalDefUse.mask,
598                      PhysicalDefUse.mask),
599     new ArchOperator((char)112, ArchInstructionFormat.Binary_format,  //REF_USHR
600                      (none | ArchInstructionFormat.Binary_traits),
601                      1, 0, 2,
602                      PhysicalDefUse.mask,
603                      PhysicalDefUse.mask),
604     new ArchOperator((char)113, ArchInstructionFormat.Binary_format,  //INT_USHR
605                      (none | ArchInstructionFormat.Binary_traits),
606                      1, 0, 2,
607                      PhysicalDefUse.mask,
608                      PhysicalDefUse.mask),
609     new ArchOperator((char)114, ArchInstructionFormat.Binary_format,  //LONG_USHR
610                      (none | ArchInstructionFormat.Binary_traits),
611                      1, 0, 2,
612                      PhysicalDefUse.mask,
613                      PhysicalDefUse.mask),
614     new ArchOperator((char)115, ArchInstructionFormat.Binary_format,  //REF_AND
615                      (commutative | ArchInstructionFormat.Binary_traits),
616                      1, 0, 2,
617                      PhysicalDefUse.mask,
618                      PhysicalDefUse.mask),
619     new ArchOperator((char)116, ArchInstructionFormat.Binary_format,  //INT_AND
620                      (commutative | ArchInstructionFormat.Binary_traits),
621                      1, 0, 2,
622                      PhysicalDefUse.mask,
623                      PhysicalDefUse.mask),
624     new ArchOperator((char)117, ArchInstructionFormat.Binary_format,  //LONG_AND
625                      (commutative | ArchInstructionFormat.Binary_traits),
626                      1, 0, 2,
627                      PhysicalDefUse.mask,
628                      PhysicalDefUse.mask),
629     new ArchOperator((char)118, ArchInstructionFormat.Binary_format,  //REF_OR
630                      (commutative | ArchInstructionFormat.Binary_traits),
631                      1, 0, 2,
632                      PhysicalDefUse.mask,
633                      PhysicalDefUse.mask),
634     new ArchOperator((char)119, ArchInstructionFormat.Binary_format,  //INT_OR
635                      (commutative | ArchInstructionFormat.Binary_traits),
636                      1, 0, 2,
637                      PhysicalDefUse.mask,
638                      PhysicalDefUse.mask),
639     new ArchOperator((char)120, ArchInstructionFormat.Binary_format,  //LONG_OR
640                      (commutative | ArchInstructionFormat.Binary_traits),
641                      1, 0, 2,
642                      PhysicalDefUse.mask,
643                      PhysicalDefUse.mask),
644     new ArchOperator((char)121, ArchInstructionFormat.Binary_format,  //REF_XOR
645                      (commutative | ArchInstructionFormat.Binary_traits),
646                      1, 0, 2,
647                      PhysicalDefUse.mask,
648                      PhysicalDefUse.mask),
649     new ArchOperator((char)122, ArchInstructionFormat.Binary_format,  //INT_XOR
650                      (commutative | ArchInstructionFormat.Binary_traits),
651                      1, 0, 2,
652                      PhysicalDefUse.mask,
653                      PhysicalDefUse.mask),
654     new ArchOperator((char)123, ArchInstructionFormat.Unary_format,  //REF_NOT
655                      (none | ArchInstructionFormat.Unary_traits),
656                      1, 0, 1,
657                      PhysicalDefUse.mask,
658                      PhysicalDefUse.mask),
659     new ArchOperator((char)124, ArchInstructionFormat.Unary_format,  //INT_NOT
660                      (none | ArchInstructionFormat.Unary_traits),
661                      1, 0, 1,
662                      PhysicalDefUse.mask,
663                      PhysicalDefUse.mask),
664     new ArchOperator((char)125, ArchInstructionFormat.Unary_format,  //LONG_NOT
665                      (none | ArchInstructionFormat.Unary_traits),
666                      1, 0, 1,
667                      PhysicalDefUse.mask,
668                      PhysicalDefUse.mask),
669     new ArchOperator((char)126, ArchInstructionFormat.Binary_format,  //LONG_XOR
670                      (commutative | ArchInstructionFormat.Binary_traits),
671                      1, 0, 2,
672                      PhysicalDefUse.mask,
673                      PhysicalDefUse.mask),
674     new ArchOperator((char)127, ArchInstructionFormat.Unary_format,  //INT_2ADDRSigExt
675                      (none | ArchInstructionFormat.Unary_traits),
676                      1, 0, 1,
677                      PhysicalDefUse.mask,
678                      PhysicalDefUse.mask),
679     new ArchOperator((char)128, ArchInstructionFormat.Unary_format,  //INT_2ADDRZerExt
680                      (none | ArchInstructionFormat.Unary_traits),
681                      1, 0, 1,
682                      PhysicalDefUse.mask,
683                      PhysicalDefUse.mask),
684     new ArchOperator((char)129, ArchInstructionFormat.Unary_format,  //LONG_2ADDR
685                      (none | ArchInstructionFormat.Unary_traits),
686                      1, 0, 1,
687                      PhysicalDefUse.mask,
688                      PhysicalDefUse.mask),
689     new ArchOperator((char)130, ArchInstructionFormat.Unary_format,  //ADDR_2INT
690                      (none | ArchInstructionFormat.Unary_traits),
691                      1, 0, 1,
692                      PhysicalDefUse.mask,
693                      PhysicalDefUse.mask),
694     new ArchOperator((char)131, ArchInstructionFormat.Unary_format,  //ADDR_2LONG
695                      (none | ArchInstructionFormat.Unary_traits),
696                      1, 0, 1,
697                      PhysicalDefUse.mask,
698                      PhysicalDefUse.mask),
699     new ArchOperator((char)132, ArchInstructionFormat.Unary_format,  //INT_2LONG
700                      (none | ArchInstructionFormat.Unary_traits),
701                      1, 0, 1,
702                      PhysicalDefUse.mask,
703                      PhysicalDefUse.mask),
704     new ArchOperator((char)133, ArchInstructionFormat.Unary_format,  //INT_2FLOAT
705                      (none | ArchInstructionFormat.Unary_traits),
706                      1, 0, 1,
707                      PhysicalDefUse.maskIEEEMagicUses,
708                      PhysicalDefUse.mask),
709     new ArchOperator((char)134, ArchInstructionFormat.Unary_format,  //INT_2DOUBLE
710                      (none | ArchInstructionFormat.Unary_traits),
711                      1, 0, 1,
712                      PhysicalDefUse.maskIEEEMagicUses,
713                      PhysicalDefUse.mask),
714     new ArchOperator((char)135, ArchInstructionFormat.Unary_format,  //LONG_2INT
715                      (none | ArchInstructionFormat.Unary_traits),
716                      1, 0, 1,
717                      PhysicalDefUse.mask,
718                      PhysicalDefUse.mask),
719     new ArchOperator((char)136, ArchInstructionFormat.Unary_format,  //LONG_2FLOAT
720                      (none | ArchInstructionFormat.Unary_traits),
721                      1, 0, 1,
722                      PhysicalDefUse.mask,
723                      PhysicalDefUse.mask),
724     new ArchOperator((char)137, ArchInstructionFormat.Unary_format,  //LONG_2DOUBLE
725                      (none | ArchInstructionFormat.Unary_traits),
726                      1, 0, 1,
727                      PhysicalDefUse.mask,
728                      PhysicalDefUse.mask),
729     new ArchOperator((char)138, ArchInstructionFormat.Unary_format,  //FLOAT_2INT
730                      (none | ArchInstructionFormat.Unary_traits),
731                      1, 0, 1,
732                      PhysicalDefUse.mask,
733                      PhysicalDefUse.mask),
734     new ArchOperator((char)139, ArchInstructionFormat.Unary_format,  //FLOAT_2LONG
735                      (none | ArchInstructionFormat.Unary_traits),
736                      1, 0, 1,
737                      PhysicalDefUse.mask,
738                      PhysicalDefUse.mask),
739     new ArchOperator((char)140, ArchInstructionFormat.Unary_format,  //FLOAT_2DOUBLE
740                      (none | ArchInstructionFormat.Unary_traits),
741                      1, 0, 1,
742                      PhysicalDefUse.mask,
743                      PhysicalDefUse.mask),
744     new ArchOperator((char)141, ArchInstructionFormat.Unary_format,  //DOUBLE_2INT
745                      (none | ArchInstructionFormat.Unary_traits),
746                      1, 0, 1,
747                      PhysicalDefUse.mask,
748                      PhysicalDefUse.mask),
749     new ArchOperator((char)142, ArchInstructionFormat.Unary_format,  //DOUBLE_2LONG
750                      (none | ArchInstructionFormat.Unary_traits),
751                      1, 0, 1,
752                      PhysicalDefUse.mask,
753                      PhysicalDefUse.mask),
754     new ArchOperator((char)143, ArchInstructionFormat.Unary_format,  //DOUBLE_2FLOAT
755                      (none | ArchInstructionFormat.Unary_traits),
756                      1, 0, 1,
757                      PhysicalDefUse.mask,
758                      PhysicalDefUse.mask),
759     new ArchOperator((char)144, ArchInstructionFormat.Unary_format,  //INT_2BYTE
760                      (none | ArchInstructionFormat.Unary_traits),
761                      1, 0, 1,
762                      PhysicalDefUse.mask,
763                      PhysicalDefUse.mask),
764     new ArchOperator((char)145, ArchInstructionFormat.Unary_format,  //INT_2USHORT
765                      (none | ArchInstructionFormat.Unary_traits),
766                      1, 0, 1,
767                      PhysicalDefUse.mask,
768                      PhysicalDefUse.mask),
769     new ArchOperator((char)146, ArchInstructionFormat.Unary_format,  //INT_2SHORT
770                      (none | ArchInstructionFormat.Unary_traits),
771                      1, 0, 1,
772                      PhysicalDefUse.mask,
773                      PhysicalDefUse.mask),
774     new ArchOperator((char)147, ArchInstructionFormat.Binary_format,  //LONG_CMP
775                      (compare | ArchInstructionFormat.Binary_traits),
776                      1, 0, 2,
777                      PhysicalDefUse.mask,
778                      PhysicalDefUse.mask),
779     new ArchOperator((char)148, ArchInstructionFormat.Binary_format,  //FLOAT_CMPL
780                      (compare | ArchInstructionFormat.Binary_traits),
781                      1, 0, 2,
782                      PhysicalDefUse.mask,
783                      PhysicalDefUse.mask),
784     new ArchOperator((char)149, ArchInstructionFormat.Binary_format,  //FLOAT_CMPG
785                      (compare | ArchInstructionFormat.Binary_traits),
786                      1, 0, 2,
787                      PhysicalDefUse.mask,
788                      PhysicalDefUse.mask),
789     new ArchOperator((char)150, ArchInstructionFormat.Binary_format,  //DOUBLE_CMPL
790                      (compare | ArchInstructionFormat.Binary_traits),
791                      1, 0, 2,
792                      PhysicalDefUse.mask,
793                      PhysicalDefUse.mask),
794     new ArchOperator((char)151, ArchInstructionFormat.Binary_format,  //DOUBLE_CMPG
795                      (compare | ArchInstructionFormat.Binary_traits),
796                      1, 0, 2,
797                      PhysicalDefUse.mask,
798                      PhysicalDefUse.mask),
799     new ArchOperator((char)152, ArchInstructionFormat.Return_format,  //RETURN
800                      (ret | ArchInstructionFormat.Return_traits),
801                      0, 0, 1,
802                      PhysicalDefUse.mask,
803                      PhysicalDefUse.mask),
804     new ArchOperator((char)153, ArchInstructionFormat.NullCheck_format,  //NULL_CHECK
805                      (immedPEI | ArchInstructionFormat.NullCheck_traits),
806                      1, 0, 1,
807                      PhysicalDefUse.mask,
808                      PhysicalDefUse.mask),
809     new ArchOperator((char)154, ArchInstructionFormat.Goto_format,  //GOTO
810                      (branch | ArchInstructionFormat.Goto_traits),
811                      0, 0, 1,
812                      PhysicalDefUse.mask,
813                      PhysicalDefUse.mask),
814     new ArchOperator((char)155, ArchInstructionFormat.Unary_format,  //BOOLEAN_NOT
815                      (none | ArchInstructionFormat.Unary_traits),
816                      1, 0, 1,
817                      PhysicalDefUse.mask,
818                      PhysicalDefUse.mask),
819     new ArchOperator((char)156, ArchInstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_INT
820                      (compare | ArchInstructionFormat.BooleanCmp_traits),
821                      1, 0, 4,
822                      PhysicalDefUse.mask,
823                      PhysicalDefUse.mask),
824     new ArchOperator((char)157, ArchInstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_ADDR
825                      (compare | ArchInstructionFormat.BooleanCmp_traits),
826                      1, 0, 4,
827                      PhysicalDefUse.mask,
828                      PhysicalDefUse.mask),
829     new ArchOperator((char)158, ArchInstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_LONG
830                      (compare | ArchInstructionFormat.BooleanCmp_traits),
831                      1, 0, 4,
832                      PhysicalDefUse.mask,
833                      PhysicalDefUse.mask),
834     new ArchOperator((char)159, ArchInstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_FLOAT
835                      (compare | ArchInstructionFormat.BooleanCmp_traits),
836                      1, 0, 4,
837                      PhysicalDefUse.mask,
838                      PhysicalDefUse.mask),
839     new ArchOperator((char)160, ArchInstructionFormat.BooleanCmp_format,  //BOOLEAN_CMP_DOUBLE
840                      (compare | ArchInstructionFormat.BooleanCmp_traits),
841                      1, 0, 4,
842                      PhysicalDefUse.mask,
843                      PhysicalDefUse.mask),
844     new ArchOperator((char)161, ArchInstructionFormat.Load_format,  //BYTE_LOAD
845                      (load | ArchInstructionFormat.Load_traits),
846                      1, 0, 4,
847                      PhysicalDefUse.mask,
848                      PhysicalDefUse.mask),
849     new ArchOperator((char)162, ArchInstructionFormat.Load_format,  //UBYTE_LOAD
850                      (load | ArchInstructionFormat.Load_traits),
851                      1, 0, 4,
852                      PhysicalDefUse.mask,
853                      PhysicalDefUse.mask),
854     new ArchOperator((char)163, ArchInstructionFormat.Load_format,  //SHORT_LOAD
855                      (load | ArchInstructionFormat.Load_traits),
856                      1, 0, 4,
857                      PhysicalDefUse.mask,
858                      PhysicalDefUse.mask),
859     new ArchOperator((char)164, ArchInstructionFormat.Load_format,  //USHORT_LOAD
860                      (load | ArchInstructionFormat.Load_traits),
861                      1, 0, 4,
862                      PhysicalDefUse.mask,
863                      PhysicalDefUse.mask),
864     new ArchOperator((char)165, ArchInstructionFormat.Load_format,  //REF_LOAD
865                      (load | ArchInstructionFormat.Load_traits),
866                      1, 0, 4,
867                      PhysicalDefUse.mask,
868                      PhysicalDefUse.mask),
869     new ArchOperator((char)166, ArchInstructionFormat.Store_format,  //REF_STORE
870                      (store | ArchInstructionFormat.Store_traits),
871                      0, 0, 5,
872                      PhysicalDefUse.mask,
873                      PhysicalDefUse.mask),
874     new ArchOperator((char)167, ArchInstructionFormat.Load_format,  //INT_LOAD
875                      (load | ArchInstructionFormat.Load_traits),
876                      1, 0, 4,
877                      PhysicalDefUse.mask,
878                      PhysicalDefUse.mask),
879     new ArchOperator((char)168, ArchInstructionFormat.Load_format,  //LONG_LOAD
880                      (load | ArchInstructionFormat.Load_traits),
881                      1, 0, 4,
882                      PhysicalDefUse.mask,
883                      PhysicalDefUse.mask),
884     new ArchOperator((char)169, ArchInstructionFormat.Load_format,  //FLOAT_LOAD
885                      (load | ArchInstructionFormat.Load_traits),
886                      1, 0, 4,
887                      PhysicalDefUse.mask,
888                      PhysicalDefUse.mask),
889     new ArchOperator((char)170, ArchInstructionFormat.Load_format,  //DOUBLE_LOAD
890                      (load | ArchInstructionFormat.Load_traits),
891                      1, 0, 4,
892                      PhysicalDefUse.mask,
893                      PhysicalDefUse.mask),
894     new ArchOperator((char)171, ArchInstructionFormat.Store_format,  //BYTE_STORE
895                      (store | ArchInstructionFormat.Store_traits),
896                      0, 0, 5,
897                      PhysicalDefUse.mask,
898                      PhysicalDefUse.mask),
899     new ArchOperator((char)172, ArchInstructionFormat.Store_format,  //SHORT_STORE
900                      (store | ArchInstructionFormat.Store_traits),
901                      0, 0, 5,
902                      PhysicalDefUse.mask,
903                      PhysicalDefUse.mask),
904     new ArchOperator((char)173, ArchInstructionFormat.Store_format,  //INT_STORE
905                      (store | ArchInstructionFormat.Store_traits),
906                      0, 0, 5,
907                      PhysicalDefUse.mask,
908                      PhysicalDefUse.mask),
909     new ArchOperator((char)174, ArchInstructionFormat.Store_format,  //LONG_STORE
910                      (store | ArchInstructionFormat.Store_traits),
911                      0, 0, 5,
912                      PhysicalDefUse.mask,
913                      PhysicalDefUse.mask),
914     new ArchOperator((char)175, ArchInstructionFormat.Store_format,  //FLOAT_STORE
915                      (store | ArchInstructionFormat.Store_traits),
916                      0, 0, 5,
917                      PhysicalDefUse.mask,
918                      PhysicalDefUse.mask),
919     new ArchOperator((char)176, ArchInstructionFormat.Store_format,  //DOUBLE_STORE
920                      (store | ArchInstructionFormat.Store_traits),
921                      0, 0, 5,
922                      PhysicalDefUse.mask,
923                      PhysicalDefUse.mask),
924     new ArchOperator((char)177, ArchInstructionFormat.Prepare_format,  //PREPARE_INT
925                      (load | acquire | ArchInstructionFormat.Prepare_traits),
926                      1, 0, 4,
927                      PhysicalDefUse.mask,
928                      PhysicalDefUse.mask),
929     new ArchOperator((char)178, ArchInstructionFormat.Prepare_format,  //PREPARE_ADDR
930                      (load | acquire | ArchInstructionFormat.Prepare_traits),
931                      1, 0, 4,
932                      PhysicalDefUse.mask,
933                      PhysicalDefUse.mask),
934     new ArchOperator((char)179, ArchInstructionFormat.Prepare_format,  //PREPARE_LONG
935                      (load | acquire | ArchInstructionFormat.Prepare_traits),
936                      1, 0, 4,
937                      PhysicalDefUse.mask,
938                      PhysicalDefUse.mask),
939     new ArchOperator((char)180, ArchInstructionFormat.Attempt_format,  //ATTEMPT_INT
940                      (load | store | compare | release | ArchInstructionFormat.Attempt_traits),
941                      1, 0, 6,
942                      PhysicalDefUse.mask,
943                      PhysicalDefUse.mask),
944     new ArchOperator((char)181, ArchInstructionFormat.Attempt_format,  //ATTEMPT_ADDR
945                      (load | store | compare | release | ArchInstructionFormat.Attempt_traits),
946                      1, 0, 6,
947                      PhysicalDefUse.mask,
948                      PhysicalDefUse.mask),
949     new ArchOperator((char)182, ArchInstructionFormat.Attempt_format,  //ATTEMPT_LONG
950                      (load | store | compare | release  | ArchInstructionFormat.Attempt_traits),
951                      1, 0, 6,
952                      PhysicalDefUse.mask,
953                      PhysicalDefUse.mask),
954     new ArchOperator((char)183, ArchInstructionFormat.Call_format,  //CALL
955                      (call | memAsLoad | memAsStore | dynLink | immedPEI | ArchInstructionFormat.Call_traits),
956                      1, 0, 3,
957                      PhysicalDefUse.maskcallDefs,
958                      PhysicalDefUse.maskcallUses),
959     new ArchOperator((char)184, ArchInstructionFormat.Call_format,  //SYSCALL
960                      (call | memAsLoad | memAsStore | ArchInstructionFormat.Call_traits),
961                      1, 0, 3,
962                      PhysicalDefUse.maskcallDefs,
963                      PhysicalDefUse.maskcallUses),
964     new ArchOperator((char)185, ArchInstructionFormat.Empty_format,  //YIELDPOINT_PROLOGUE
965                      (tsp | yieldPoint | ArchInstructionFormat.Empty_traits),
966                      0, 0, 0,
967                      PhysicalDefUse.mask,
968                      PhysicalDefUse.mask),
969     new ArchOperator((char)186, ArchInstructionFormat.Empty_format,  //YIELDPOINT_EPILOGUE
970                      (tsp | yieldPoint | ArchInstructionFormat.Empty_traits),
971                      0, 0, 0,
972                      PhysicalDefUse.mask,
973                      PhysicalDefUse.mask),
974     new ArchOperator((char)187, ArchInstructionFormat.Empty_format,  //YIELDPOINT_BACKEDGE
975                      (tsp | yieldPoint | ArchInstructionFormat.Empty_traits),
976                      0, 0, 0,
977                      PhysicalDefUse.mask,
978                      PhysicalDefUse.mask),
979     new ArchOperator((char)188, ArchInstructionFormat.OsrPoint_format,  //YIELDPOINT_OSR
980                      (tsp | yieldPoint | ArchInstructionFormat.OsrPoint_traits),
981                      0, 0, 1,
982                      PhysicalDefUse.mask,
983                      PhysicalDefUse.mask),
984     new ArchOperator((char)189, ArchInstructionFormat.OsrBarrier_format,  //OSR_BARRIER
985                      (none | ArchInstructionFormat.OsrBarrier_traits),
986                      0, 0, 1,
987                      PhysicalDefUse.mask,
988                      PhysicalDefUse.mask),
989     new ArchOperator((char)190, ArchInstructionFormat.Prologue_format,  //IR_PROLOGUE
990                      (immedPEI | ArchInstructionFormat.Prologue_traits),
991                      0, 0, 0,
992                      PhysicalDefUse.mask,
993                      PhysicalDefUse.mask),
994     new ArchOperator((char)191, ArchInstructionFormat.CacheOp_format,  //RESOLVE
995                      (tsp | dynLink | immedPEI | ArchInstructionFormat.CacheOp_traits),
996                      0, 0, 1,
997                      PhysicalDefUse.mask,
998                      PhysicalDefUse.mask),
999     new ArchOperator((char)192, ArchInstructionFormat.Unary_format,  //RESOLVE_MEMBER
1000                      (tsp | dynLink | immedPEI | ArchInstructionFormat.Unary_traits),
1001                      1, 0, 1,
1002                      PhysicalDefUse.mask,
1003                      PhysicalDefUse.mask),
1004     new ArchOperator((char)193, ArchInstructionFormat.Nullary_format,  //GET_TIME_BASE
1005                      (none | ArchInstructionFormat.Nullary_traits),
1006                      1, 0, 0,
1007                      PhysicalDefUse.mask,
1008                      PhysicalDefUse.mask),
1009     new ArchOperator((char)194, ArchInstructionFormat.InstrumentedCounter_format,  //INSTRUMENTED_EVENT_COUNTER
1010                      (none | ArchInstructionFormat.InstrumentedCounter_traits),
1011                      0, 0, 3,
1012                      PhysicalDefUse.mask,
1013                      PhysicalDefUse.mask),
1014     new ArchOperator((char)195, ArchInstructionFormat.TrapIf_format,  //TRAP_IF
1015                      (immedPEI | ArchInstructionFormat.TrapIf_traits),
1016                      1, 0, 4,
1017                      PhysicalDefUse.mask,
1018                      PhysicalDefUse.mask),
1019     new ArchOperator((char)196, ArchInstructionFormat.Trap_format,  //TRAP
1020                      (immedPEI | ArchInstructionFormat.Trap_traits),
1021                      1, 0, 1,
1022                      PhysicalDefUse.mask,
1023                      PhysicalDefUse.mask),
1024     new ArchOperator((char)197, ArchInstructionFormat.Unary_format,  //FLOAT_AS_INT_BITS
1025                      (none | ArchInstructionFormat.Unary_traits),
1026                      1, 0, 1,
1027                      PhysicalDefUse.mask,
1028                      PhysicalDefUse.mask),
1029     new ArchOperator((char)198, ArchInstructionFormat.Unary_format,  //INT_BITS_AS_FLOAT
1030                      (none | ArchInstructionFormat.Unary_traits),
1031                      1, 0, 1,
1032                      PhysicalDefUse.mask,
1033                      PhysicalDefUse.mask),
1034     new ArchOperator((char)199, ArchInstructionFormat.Unary_format,  //DOUBLE_AS_LONG_BITS
1035                      (none | ArchInstructionFormat.Unary_traits),
1036                      1, 0, 1,
1037                      PhysicalDefUse.mask,
1038                      PhysicalDefUse.mask),
1039     new ArchOperator((char)200, ArchInstructionFormat.Unary_format,  //LONG_BITS_AS_DOUBLE
1040                      (none | ArchInstructionFormat.Unary_traits),
1041                      1, 0, 1,
1042                      PhysicalDefUse.mask,
1043                      PhysicalDefUse.mask),
1044     new ArchOperator((char)201, ArchInstructionFormat.GuardedUnary_format,  //ARRAYLENGTH
1045                      (none | ArchInstructionFormat.GuardedUnary_traits),
1046                      1, 0, 2,
1047                      PhysicalDefUse.mask,
1048                      PhysicalDefUse.mask),
1049     new ArchOperator((char)202, ArchInstructionFormat.GuardedUnary_format,  //GET_OBJ_TIB
1050                      (none | ArchInstructionFormat.GuardedUnary_traits),
1051                      1, 0, 2,
1052                      PhysicalDefUse.mask,
1053                      PhysicalDefUse.mask),
1054     new ArchOperator((char)203, ArchInstructionFormat.Unary_format,  //GET_CLASS_TIB
1055                      (none | ArchInstructionFormat.Unary_traits),
1056                      1, 0, 1,
1057                      PhysicalDefUse.mask,
1058                      PhysicalDefUse.mask),
1059     new ArchOperator((char)204, ArchInstructionFormat.Unary_format,  //GET_TYPE_FROM_TIB
1060                      (none | ArchInstructionFormat.Unary_traits),
1061                      1, 0, 1,
1062                      PhysicalDefUse.mask,
1063                      PhysicalDefUse.mask),
1064     new ArchOperator((char)205, ArchInstructionFormat.Unary_format,  //GET_SUPERCLASS_IDS_FROM_TIB
1065                      (none | ArchInstructionFormat.Unary_traits),
1066                      1, 0, 1,
1067                      PhysicalDefUse.mask,
1068                      PhysicalDefUse.mask),
1069     new ArchOperator((char)206, ArchInstructionFormat.Unary_format,  //GET_DOES_IMPLEMENT_FROM_TIB
1070                      (none | ArchInstructionFormat.Unary_traits),
1071                      1, 0, 1,
1072                      PhysicalDefUse.mask,
1073                      PhysicalDefUse.mask),
1074     new ArchOperator((char)207, ArchInstructionFormat.Unary_format,  //GET_ARRAY_ELEMENT_TIB_FROM_TIB
1075                      (none | ArchInstructionFormat.Unary_traits),
1076                      1, 0, 1,
1077                      PhysicalDefUse.mask,
1078                      PhysicalDefUse.mask),
1079     new ArchOperator((char)208, ArchInstructionFormat.LowTableSwitch_format,  //LOWTABLESWITCH
1080                      (branch | ArchInstructionFormat.LowTableSwitch_traits),
1081                      0, 0, 1,
1082                      PhysicalDefUse.mask,
1083                      PhysicalDefUse.mask),
1084     new ArchOperator((char)209, ArchInstructionFormat.Unassigned_format,  //ADDRESS_CONSTANT
1085                      (none),
1086                      0,0,0,
1087                      PhysicalDefUse.mask,
1088                      PhysicalDefUse.mask),
1089     new ArchOperator((char)210, ArchInstructionFormat.Unassigned_format,  //INT_CONSTANT
1090                      (none),
1091                      0,0,0,
1092                      PhysicalDefUse.mask,
1093                      PhysicalDefUse.mask),
1094     new ArchOperator((char)211, ArchInstructionFormat.Unassigned_format,  //LONG_CONSTANT
1095                      (none),
1096                      0,0,0,
1097                      PhysicalDefUse.mask,
1098                      PhysicalDefUse.mask),
1099     new ArchOperator((char)212, ArchInstructionFormat.Unassigned_format,  //REGISTER
1100                      (none),
1101                      0,0,0,
1102                      PhysicalDefUse.mask,
1103                      PhysicalDefUse.mask),
1104     new ArchOperator((char)213, ArchInstructionFormat.Unassigned_format,  //OTHER_OPERAND
1105                      (none),
1106                      0,0,0,
1107                      PhysicalDefUse.mask,
1108                      PhysicalDefUse.mask),
1109     new ArchOperator((char)214, ArchInstructionFormat.Unassigned_format,  //NULL
1110                      (none),
1111                      0,0,0,
1112                      PhysicalDefUse.mask,
1113                      PhysicalDefUse.mask),
1114     new ArchOperator((char)215, ArchInstructionFormat.Unassigned_format,  //BRANCH_TARGET
1115                      (none),
1116                      0,0,0,
1117                      PhysicalDefUse.mask,
1118                      PhysicalDefUse.mask),
1119  //////////////////////////
1120  // END   Architecture Independent opcodes.
1121  // BEGIN Architecture Dependent opcodes & MIR.
1122  //////////////////////////
1123     new ArchOperator((char)(0 + Operators.ARCH_INDEPENDENT_END_opcode),  //DCBF
1124                      ArchInstructionFormat.CacheOp_format,
1125                      (memAsLoad | memAsStore | ArchInstructionFormat.CacheOp_traits),
1126                      0, 0, 1,
1127                      PhysicalDefUse.mask,
1128                      PhysicalDefUse.mask,
1129                      -1),
1130     new ArchOperator((char)(1 + Operators.ARCH_INDEPENDENT_END_opcode),  //DCBST
1131                      ArchInstructionFormat.CacheOp_format,
1132                      (memAsLoad | memAsStore | ArchInstructionFormat.CacheOp_traits),
1133                      0, 0, 1,
1134                      PhysicalDefUse.mask,
1135                      PhysicalDefUse.mask,
1136                      -1),
1137     new ArchOperator((char)(2 + Operators.ARCH_INDEPENDENT_END_opcode),  //DCBT
1138                      ArchInstructionFormat.CacheOp_format,
1139                      (memAsLoad | memAsStore | ArchInstructionFormat.CacheOp_traits),
1140                      0, 0, 1,
1141                      PhysicalDefUse.mask,
1142                      PhysicalDefUse.mask,
1143                      -1),
1144     new ArchOperator((char)(3 + Operators.ARCH_INDEPENDENT_END_opcode),  //DCBTST
1145                      ArchInstructionFormat.CacheOp_format,
1146                      (memAsLoad | memAsStore | ArchInstructionFormat.CacheOp_traits),
1147                      0, 0, 1,
1148                      PhysicalDefUse.mask,
1149                      PhysicalDefUse.mask,
1150                      -1),
1151     new ArchOperator((char)(4 + Operators.ARCH_INDEPENDENT_END_opcode),  //DCBZ
1152                      ArchInstructionFormat.CacheOp_format,
1153                      (memAsLoad | memAsStore | ArchInstructionFormat.CacheOp_traits),
1154                      0, 0, 1,
1155                      PhysicalDefUse.mask,
1156                      PhysicalDefUse.mask,
1157                      -1),
1158     new ArchOperator((char)(5 + Operators.ARCH_INDEPENDENT_END_opcode),  //DCBZL
1159                      ArchInstructionFormat.CacheOp_format,
1160                      (memAsLoad | memAsStore | ArchInstructionFormat.CacheOp_traits),
1161                      0, 0, 1,
1162                      PhysicalDefUse.mask,
1163                      PhysicalDefUse.mask,
1164                      -1),
1165     new ArchOperator((char)(6 + Operators.ARCH_INDEPENDENT_END_opcode),  //ICBI
1166                      ArchInstructionFormat.CacheOp_format,
1167                      (memAsLoad | memAsStore | ArchInstructionFormat.CacheOp_traits),
1168                      0, 0, 1,
1169                      PhysicalDefUse.mask,
1170                      PhysicalDefUse.mask,
1171                      -1),
1172     new ArchOperator((char)(7 + Operators.ARCH_INDEPENDENT_END_opcode),  //CALL_SAVE_VOLATILE
1173                      ArchInstructionFormat.MIR_Call_format,
1174                      (call | immedPEI | ArchInstructionFormat.MIR_Call_traits),
1175                      2, 0, 2,
1176                      PhysicalDefUse.mask,
1177                      PhysicalDefUse.mask,
1178                      -1),
1179     new ArchOperator((char)(8 + Operators.ARCH_INDEPENDENT_END_opcode),  //MIR_START
1180                      ArchInstructionFormat.Unassigned_format,
1181                      (none),
1182                      0,0,0,
1183                      PhysicalDefUse.mask,
1184                      PhysicalDefUse.mask,
1185                      -1),
1186     new ArchOperator((char)(9 + Operators.ARCH_INDEPENDENT_END_opcode),  //MIR_LOWTABLESWITCH
1187                      ArchInstructionFormat.MIR_LowTableSwitch_format,
1188                      (branch | ArchInstructionFormat.MIR_LowTableSwitch_traits),
1189                      0, 1, 0,
1190                      PhysicalDefUse.mask,
1191                      PhysicalDefUse.mask,
1192                      -1),
1193     new ArchOperator((char)(10 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_DATA_INT
1194                      ArchInstructionFormat.MIR_DataInt_format,
1195                      (none | ArchInstructionFormat.MIR_DataInt_traits),
1196                      0, 0, 1,
1197                      PhysicalDefUse.mask,
1198                      PhysicalDefUse.mask,
1199                      -1),
1200     new ArchOperator((char)(11 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_DATA_LABEL
1201                      ArchInstructionFormat.MIR_DataLabel_format,
1202                      (none | ArchInstructionFormat.MIR_DataLabel_traits),
1203                      0, 0, 1,
1204                      PhysicalDefUse.mask,
1205                      PhysicalDefUse.mask,
1206                      -1),
1207     new ArchOperator((char)(12 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ADD
1208                      ArchInstructionFormat.MIR_Binary_format,
1209                      (none | ArchInstructionFormat.MIR_Binary_traits),
1210                      1, 0, 2,
1211                      PhysicalDefUse.mask,
1212                      PhysicalDefUse.mask,
1213                      (31<<26 | 266<<1)),
1214     new ArchOperator((char)(13 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ADDr
1215                      ArchInstructionFormat.MIR_Binary_format,
1216                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1217                      1, 0, 2,
1218                      PhysicalDefUse.maskC0,
1219                      PhysicalDefUse.mask,
1220                      (31<<26 | 266<<1 | 1)),
1221     new ArchOperator((char)(14 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ADDC
1222                      ArchInstructionFormat.MIR_Binary_format,
1223                      (none | ArchInstructionFormat.MIR_Binary_traits),
1224                      1, 0, 2,
1225                      PhysicalDefUse.maskXER,
1226                      PhysicalDefUse.mask,
1227                      (31<<26 | 10<<1)),
1228     new ArchOperator((char)(15 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ADDE
1229                      ArchInstructionFormat.MIR_Binary_format,
1230                      (none | ArchInstructionFormat.MIR_Binary_traits),
1231                      1, 0, 2,
1232                      PhysicalDefUse.mask,
1233                      PhysicalDefUse.maskXER,
1234                      (31<<26 | 138<<1)),
1235     new ArchOperator((char)(16 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ADDZE
1236                      ArchInstructionFormat.MIR_Unary_format,
1237                      (none | ArchInstructionFormat.MIR_Unary_traits),
1238                      1, 0, 1,
1239                      PhysicalDefUse.mask,
1240                      PhysicalDefUse.maskXER,
1241                      (31<<26 | 202<<1)),
1242     new ArchOperator((char)(17 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ADDME
1243                      ArchInstructionFormat.MIR_Unary_format,
1244                      (none | ArchInstructionFormat.MIR_Unary_traits),
1245                      1, 0, 1,
1246                      PhysicalDefUse.mask,
1247                      PhysicalDefUse.maskXER,
1248                      (31<<26 | 234<<1)),
1249     new ArchOperator((char)(18 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ADDIC
1250                      ArchInstructionFormat.MIR_Binary_format,
1251                      (none | ArchInstructionFormat.MIR_Binary_traits),
1252                      1, 0, 2,
1253                      PhysicalDefUse.maskXER,
1254                      PhysicalDefUse.mask,
1255                      (12<<26)),
1256     new ArchOperator((char)(19 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ADDICr
1257                      ArchInstructionFormat.MIR_Binary_format,
1258                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1259                      1, 0, 2,
1260                      PhysicalDefUse.maskC0_XER,
1261                      PhysicalDefUse.mask,
1262                      (13<<26)),
1263     new ArchOperator((char)(20 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SUBF
1264                      ArchInstructionFormat.MIR_Binary_format,
1265                      (none | ArchInstructionFormat.MIR_Binary_traits),
1266                      1, 0, 2,
1267                      PhysicalDefUse.mask,
1268                      PhysicalDefUse.mask,
1269                      (31<<26 | 40<<1)),
1270     new ArchOperator((char)(21 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SUBFr
1271                      ArchInstructionFormat.MIR_Binary_format,
1272                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1273                      1, 0, 2,
1274                      PhysicalDefUse.maskC0,
1275                      PhysicalDefUse.mask,
1276                      (31<<26 | 40<<1 | 1)),
1277     new ArchOperator((char)(22 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SUBFC
1278                      ArchInstructionFormat.MIR_Binary_format,
1279                      (none | ArchInstructionFormat.MIR_Binary_traits),
1280                      1, 0, 2,
1281                      PhysicalDefUse.maskXER,
1282                      PhysicalDefUse.mask,
1283                      (31<<26 | 8<<1)),
1284     new ArchOperator((char)(23 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SUBFCr
1285                      ArchInstructionFormat.MIR_Binary_format,
1286                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1287                      1, 0, 2,
1288                      PhysicalDefUse.maskC0_XER,
1289                      PhysicalDefUse.mask,
1290                      (31<<26 | 8<<1 | 1)),
1291     new ArchOperator((char)(24 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SUBFIC
1292                      ArchInstructionFormat.MIR_Binary_format,
1293                      (none | ArchInstructionFormat.MIR_Binary_traits),
1294                      1, 0, 2,
1295                      PhysicalDefUse.maskXER,
1296                      PhysicalDefUse.mask,
1297                      (8<<26)),
1298     new ArchOperator((char)(25 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SUBFE
1299                      ArchInstructionFormat.MIR_Binary_format,
1300                      (none | ArchInstructionFormat.MIR_Binary_traits),
1301                      1, 0, 2,
1302                      PhysicalDefUse.mask,
1303                      PhysicalDefUse.maskXER,
1304                      (31<<26 | 136<<1)),
1305     new ArchOperator((char)(26 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SUBFZE
1306                      ArchInstructionFormat.MIR_Unary_format,
1307                      (none | ArchInstructionFormat.MIR_Unary_traits),
1308                      1, 0, 1,
1309                      PhysicalDefUse.mask,
1310                      PhysicalDefUse.maskXER,
1311                      (31<<26 | 200<<1)),
1312     new ArchOperator((char)(27 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SUBFME
1313                      ArchInstructionFormat.MIR_Unary_format,
1314                      (none | ArchInstructionFormat.MIR_Unary_traits),
1315                      1, 0, 1,
1316                      PhysicalDefUse.mask,
1317                      PhysicalDefUse.maskXER,
1318                      (31<<26 | 232<<1)),
1319     new ArchOperator((char)(28 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_AND
1320                      ArchInstructionFormat.MIR_Binary_format,
1321                      (none | ArchInstructionFormat.MIR_Binary_traits),
1322                      1, 0, 2,
1323                      PhysicalDefUse.mask,
1324                      PhysicalDefUse.mask,
1325                      (31<<26 | 28<<1)),
1326     new ArchOperator((char)(29 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ANDr
1327                      ArchInstructionFormat.MIR_Binary_format,
1328                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1329                      1, 0, 2,
1330                      PhysicalDefUse.maskC0,
1331                      PhysicalDefUse.mask,
1332                      (31<<26 | 28<<1 | 1)),
1333     new ArchOperator((char)(30 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ANDIr
1334                      ArchInstructionFormat.MIR_Binary_format,
1335                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1336                      1, 0, 2,
1337                      PhysicalDefUse.maskC0,
1338                      PhysicalDefUse.mask,
1339                      (28<<26)),
1340     new ArchOperator((char)(31 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ANDISr
1341                      ArchInstructionFormat.MIR_Binary_format,
1342                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1343                      1, 0, 2,
1344                      PhysicalDefUse.maskC0,
1345                      PhysicalDefUse.mask,
1346                      (29<<26)),
1347     new ArchOperator((char)(32 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_NAND
1348                      ArchInstructionFormat.MIR_Binary_format,
1349                      (none | ArchInstructionFormat.MIR_Binary_traits),
1350                      1, 0, 2,
1351                      PhysicalDefUse.mask,
1352                      PhysicalDefUse.mask,
1353                      (31<<26 | 476<<1)),
1354     new ArchOperator((char)(33 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_NANDr
1355                      ArchInstructionFormat.MIR_Binary_format,
1356                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1357                      1, 0, 2,
1358                      PhysicalDefUse.maskC0,
1359                      PhysicalDefUse.mask,
1360                      (31<<26 | 476<<1 | 1)),
1361     new ArchOperator((char)(34 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ANDC
1362                      ArchInstructionFormat.MIR_Binary_format,
1363                      (none | ArchInstructionFormat.MIR_Binary_traits),
1364                      1, 0, 2,
1365                      PhysicalDefUse.mask,
1366                      PhysicalDefUse.mask,
1367                      (31<<26 | 60<<1)),
1368     new ArchOperator((char)(35 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ANDCr
1369                      ArchInstructionFormat.MIR_Binary_format,
1370                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1371                      1, 0, 2,
1372                      PhysicalDefUse.maskC0,
1373                      PhysicalDefUse.mask,
1374                      (31<<26 | 60<<1 | 1)),
1375     new ArchOperator((char)(36 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_OR
1376                      ArchInstructionFormat.MIR_Binary_format,
1377                      (none | ArchInstructionFormat.MIR_Binary_traits),
1378                      1, 0, 2,
1379                      PhysicalDefUse.mask,
1380                      PhysicalDefUse.mask,
1381                      (31<<26 | 444<<1)),
1382     new ArchOperator((char)(37 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ORr
1383                      ArchInstructionFormat.MIR_Binary_format,
1384                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1385                      1, 0, 2,
1386                      PhysicalDefUse.maskC0,
1387                      PhysicalDefUse.mask,
1388                      (31<<26 | 444<<1 | 1)),
1389     new ArchOperator((char)(38 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_MOVE
1390                      ArchInstructionFormat.MIR_Move_format,
1391                      (move | ArchInstructionFormat.MIR_Move_traits),
1392                      1, 0, 1,
1393                      PhysicalDefUse.mask,
1394                      PhysicalDefUse.mask,
1395                      (24<<26)),
1396     new ArchOperator((char)(39 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ORI
1397                      ArchInstructionFormat.MIR_Binary_format,
1398                      (none | ArchInstructionFormat.MIR_Binary_traits),
1399                      1, 0, 2,
1400                      PhysicalDefUse.mask,
1401                      PhysicalDefUse.mask,
1402                      (24<<26)),
1403     new ArchOperator((char)(40 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ORIS
1404                      ArchInstructionFormat.MIR_Binary_format,
1405                      (none | ArchInstructionFormat.MIR_Binary_traits),
1406                      1, 0, 2,
1407                      PhysicalDefUse.mask,
1408                      PhysicalDefUse.mask,
1409                      (25<<26)),
1410     new ArchOperator((char)(41 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_NOR
1411                      ArchInstructionFormat.MIR_Binary_format,
1412                      (none | ArchInstructionFormat.MIR_Binary_traits),
1413                      1, 0, 2,
1414                      PhysicalDefUse.mask,
1415                      PhysicalDefUse.mask,
1416                      (31<<26 | 124<<1)),
1417     new ArchOperator((char)(42 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_NORr
1418                      ArchInstructionFormat.MIR_Binary_format,
1419                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1420                      1, 0, 2,
1421                      PhysicalDefUse.maskC0,
1422                      PhysicalDefUse.mask,
1423                      (31<<26 | 124<<1 | 1)),
1424     new ArchOperator((char)(43 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ORC
1425                      ArchInstructionFormat.MIR_Binary_format,
1426                      (none | ArchInstructionFormat.MIR_Binary_traits),
1427                      1, 0, 2,
1428                      PhysicalDefUse.mask,
1429                      PhysicalDefUse.mask,
1430                      (31<<26 | 412<<1)),
1431     new ArchOperator((char)(44 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ORCr
1432                      ArchInstructionFormat.MIR_Binary_format,
1433                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1434                      1, 0, 2,
1435                      PhysicalDefUse.maskC0,
1436                      PhysicalDefUse.mask,
1437                      (31<<26 | 412<<1 | 1)),
1438     new ArchOperator((char)(45 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_XOR
1439                      ArchInstructionFormat.MIR_Binary_format,
1440                      (none | ArchInstructionFormat.MIR_Binary_traits),
1441                      1, 0, 2,
1442                      PhysicalDefUse.mask,
1443                      PhysicalDefUse.mask,
1444                      (31<<26 | 316<<1)),
1445     new ArchOperator((char)(46 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_XORr
1446                      ArchInstructionFormat.MIR_Binary_format,
1447                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1448                      1, 0, 2,
1449                      PhysicalDefUse.maskC0,
1450                      PhysicalDefUse.mask,
1451                      (31<<26 | 316<<1 | 1)),
1452     new ArchOperator((char)(47 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_XORI
1453                      ArchInstructionFormat.MIR_Binary_format,
1454                      (none | ArchInstructionFormat.MIR_Binary_traits),
1455                      1, 0, 2,
1456                      PhysicalDefUse.mask,
1457                      PhysicalDefUse.mask,
1458                      (26<<26)),
1459     new ArchOperator((char)(48 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_XORIS
1460                      ArchInstructionFormat.MIR_Binary_format,
1461                      (none | ArchInstructionFormat.MIR_Binary_traits),
1462                      1, 0, 2,
1463                      PhysicalDefUse.mask,
1464                      PhysicalDefUse.mask,
1465                      (27<<26)),
1466     new ArchOperator((char)(49 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_EQV
1467                      ArchInstructionFormat.MIR_Binary_format,
1468                      (none | ArchInstructionFormat.MIR_Binary_traits),
1469                      1, 0, 2,
1470                      PhysicalDefUse.mask,
1471                      PhysicalDefUse.mask,
1472                      (31<<26 | 284<<1)),
1473     new ArchOperator((char)(50 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_EQVr
1474                      ArchInstructionFormat.MIR_Binary_format,
1475                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1476                      1, 0, 2,
1477                      PhysicalDefUse.maskC0,
1478                      PhysicalDefUse.mask,
1479                      (31<<26 | 284<<1 | 1)),
1480     new ArchOperator((char)(51 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_NEG
1481                      ArchInstructionFormat.MIR_Unary_format,
1482                      (none | ArchInstructionFormat.MIR_Unary_traits),
1483                      1, 0, 1,
1484                      PhysicalDefUse.mask,
1485                      PhysicalDefUse.mask,
1486                      (31<<26 | 104<<1)),
1487     new ArchOperator((char)(52 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_NEGr
1488                      ArchInstructionFormat.MIR_Unary_format,
1489                      (compare | ArchInstructionFormat.MIR_Unary_traits),
1490                      1, 0, 1,
1491                      PhysicalDefUse.maskC0,
1492                      PhysicalDefUse.mask,
1493                      (31<<26 | 104<<1 | 1)),
1494     new ArchOperator((char)(53 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_CNTLZW
1495                      ArchInstructionFormat.MIR_Unary_format,
1496                      (none | ArchInstructionFormat.MIR_Unary_traits),
1497                      1, 0, 1,
1498                      PhysicalDefUse.mask,
1499                      PhysicalDefUse.mask,
1500                      (31<<26 | 26<<1)),
1501     new ArchOperator((char)(54 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_EXTSB
1502                      ArchInstructionFormat.MIR_Unary_format,
1503                      (none | ArchInstructionFormat.MIR_Unary_traits),
1504                      1, 0, 1,
1505                      PhysicalDefUse.mask,
1506                      PhysicalDefUse.mask,
1507                      (31<<26 | 954<<1)),
1508     new ArchOperator((char)(55 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_EXTSBr
1509                      ArchInstructionFormat.MIR_Unary_format,
1510                      (compare | ArchInstructionFormat.MIR_Unary_traits),
1511                      1, 0, 1,
1512                      PhysicalDefUse.maskC0,
1513                      PhysicalDefUse.mask,
1514                      (31<<26 | 954<<1 | 1)),
1515     new ArchOperator((char)(56 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_EXTSH
1516                      ArchInstructionFormat.MIR_Unary_format,
1517                      (none | ArchInstructionFormat.MIR_Unary_traits),
1518                      1, 0, 1,
1519                      PhysicalDefUse.mask,
1520                      PhysicalDefUse.mask,
1521                      (31<<26 | 922<<1)),
1522     new ArchOperator((char)(57 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_EXTSHr
1523                      ArchInstructionFormat.MIR_Unary_format,
1524                      (compare | ArchInstructionFormat.MIR_Unary_traits),
1525                      1, 0, 1,
1526                      PhysicalDefUse.maskC0,
1527                      PhysicalDefUse.mask,
1528                      (31<<26 | 922<<1 | 1)),
1529     new ArchOperator((char)(58 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SLW
1530                      ArchInstructionFormat.MIR_Binary_format,
1531                      (none | ArchInstructionFormat.MIR_Binary_traits),
1532                      1, 0, 2,
1533                      PhysicalDefUse.mask,
1534                      PhysicalDefUse.mask,
1535                      (31<<26 | 24<<1)),
1536     new ArchOperator((char)(59 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SLWr
1537                      ArchInstructionFormat.MIR_Binary_format,
1538                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1539                      1, 0, 2,
1540                      PhysicalDefUse.maskC0,
1541                      PhysicalDefUse.mask,
1542                      (31<<26 | 24<<1 | 1)),
1543     new ArchOperator((char)(60 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SLWI
1544                      ArchInstructionFormat.MIR_Binary_format,
1545                      (none | ArchInstructionFormat.MIR_Binary_traits),
1546                      1, 0, 2,
1547                      PhysicalDefUse.mask,
1548                      PhysicalDefUse.mask,
1549                      (21<<26)),
1550     new ArchOperator((char)(61 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SLWIr
1551                      ArchInstructionFormat.MIR_Binary_format,
1552                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1553                      1, 0, 2,
1554                      PhysicalDefUse.maskC0,
1555                      PhysicalDefUse.mask,
1556                      (21<<26 | 1)),
1557     new ArchOperator((char)(62 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SRW
1558                      ArchInstructionFormat.MIR_Binary_format,
1559                      (none | ArchInstructionFormat.MIR_Binary_traits),
1560                      1, 0, 2,
1561                      PhysicalDefUse.maskXER,
1562                      PhysicalDefUse.mask,
1563                      (31<<26 | 536<<1)),
1564     new ArchOperator((char)(63 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SRWr
1565                      ArchInstructionFormat.MIR_Binary_format,
1566                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1567                      1, 0, 2,
1568                      PhysicalDefUse.maskC0_XER,
1569                      PhysicalDefUse.mask,
1570                      (31<<26 | 536<<1 | 1)),
1571     new ArchOperator((char)(64 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SRWI
1572                      ArchInstructionFormat.MIR_Binary_format,
1573                      (none | ArchInstructionFormat.MIR_Binary_traits),
1574                      1, 0, 2,
1575                      PhysicalDefUse.maskXER,
1576                      PhysicalDefUse.mask,
1577                      (21<<26 | 31<<1)),
1578     new ArchOperator((char)(65 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SRWIr
1579                      ArchInstructionFormat.MIR_Binary_format,
1580                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1581                      1, 0, 2,
1582                      PhysicalDefUse.maskC0_XER,
1583                      PhysicalDefUse.mask,
1584                      (21<<26 | 31<<1 | 1)),
1585     new ArchOperator((char)(66 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SRAW
1586                      ArchInstructionFormat.MIR_Binary_format,
1587                      (none | ArchInstructionFormat.MIR_Binary_traits),
1588                      1, 0, 2,
1589                      PhysicalDefUse.maskXER,
1590                      PhysicalDefUse.mask,
1591                      (31<<26 | 792<<1)),
1592     new ArchOperator((char)(67 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SRAWr
1593                      ArchInstructionFormat.MIR_Binary_format,
1594                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1595                      1, 0, 2,
1596                      PhysicalDefUse.maskC0_XER,
1597                      PhysicalDefUse.mask,
1598                      (31<<26 | 792<<1 | 1)),
1599     new ArchOperator((char)(68 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SRAWI
1600                      ArchInstructionFormat.MIR_Binary_format,
1601                      (none | ArchInstructionFormat.MIR_Binary_traits),
1602                      1, 0, 2,
1603                      PhysicalDefUse.maskXER,
1604                      PhysicalDefUse.mask,
1605                      (31<<26 | 824<<1)),
1606     new ArchOperator((char)(69 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SRAWIr
1607                      ArchInstructionFormat.MIR_Binary_format,
1608                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1609                      1, 0, 2,
1610                      PhysicalDefUse.maskC0_XER,
1611                      PhysicalDefUse.mask,
1612                      (31<<26 | 824<<1 | 1)),
1613     new ArchOperator((char)(70 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_RLWINM
1614                      ArchInstructionFormat.MIR_RotateAndMask_format,
1615                      (none | ArchInstructionFormat.MIR_RotateAndMask_traits),
1616                      1, 0, 5,
1617                      PhysicalDefUse.mask,
1618                      PhysicalDefUse.mask,
1619                      (21<<26)),
1620     new ArchOperator((char)(71 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_RLWINMr
1621                      ArchInstructionFormat.MIR_RotateAndMask_format,
1622                      (compare | ArchInstructionFormat.MIR_RotateAndMask_traits),
1623                      1, 0, 5,
1624                      PhysicalDefUse.maskC0,
1625                      PhysicalDefUse.mask,
1626                      (21<<26 | 1)),
1627     new ArchOperator((char)(72 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_RLWIMI
1628                      ArchInstructionFormat.MIR_RotateAndMask_format,
1629                      (none | ArchInstructionFormat.MIR_RotateAndMask_traits),
1630                      1, 0, 5,
1631                      PhysicalDefUse.mask,
1632                      PhysicalDefUse.mask,
1633                      (20<<26)),
1634     new ArchOperator((char)(73 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_RLWIMIr
1635                      ArchInstructionFormat.MIR_RotateAndMask_format,
1636                      (compare | ArchInstructionFormat.MIR_RotateAndMask_traits),
1637                      1, 0, 5,
1638                      PhysicalDefUse.maskC0,
1639                      PhysicalDefUse.mask,
1640                      (20<<26 | 1)),
1641     new ArchOperator((char)(74 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_RLWNM
1642                      ArchInstructionFormat.MIR_RotateAndMask_format,
1643                      (none | ArchInstructionFormat.MIR_RotateAndMask_traits),
1644                      1, 0, 5,
1645                      PhysicalDefUse.mask,
1646                      PhysicalDefUse.mask,
1647                      (23<<26)),
1648     new ArchOperator((char)(75 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_RLWNMr
1649                      ArchInstructionFormat.MIR_RotateAndMask_format,
1650                      (compare | ArchInstructionFormat.MIR_RotateAndMask_traits),
1651                      1, 0, 5,
1652                      PhysicalDefUse.maskC0,
1653                      PhysicalDefUse.mask,
1654                      (23<<26)),
1655     new ArchOperator((char)(76 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_B
1656                      ArchInstructionFormat.MIR_Branch_format,
1657                      (branch | ArchInstructionFormat.MIR_Branch_traits),
1658                      0, 0, 1,
1659                      PhysicalDefUse.mask,
1660                      PhysicalDefUse.mask,
1661                      (18<<26)),
1662     new ArchOperator((char)(77 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BL
1663                      ArchInstructionFormat.MIR_Call_format,
1664                      (call | dynLink | immedPEI | ArchInstructionFormat.MIR_Call_traits),
1665                      2, 0, 2,
1666                      PhysicalDefUse.maskLR,
1667                      PhysicalDefUse.maskJTOC,
1668                      (18<<26 | 1)),
1669     new ArchOperator((char)(78 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BL_SYS
1670                      ArchInstructionFormat.MIR_Call_format,
1671                      (call | dynLink | immedPEI | ArchInstructionFormat.MIR_Call_traits),
1672                      2, 0, 2,
1673                      PhysicalDefUse.maskLR,
1674                      PhysicalDefUse.maskJTOC,
1675                      (18<<26 | 1)),
1676     new ArchOperator((char)(79 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BLR
1677                      ArchInstructionFormat.MIR_Return_format,
1678                      (ret | ArchInstructionFormat.MIR_Return_traits),
1679                      0, 0, 2,
1680                      PhysicalDefUse.mask,
1681                      PhysicalDefUse.maskLR,
1682                      (19<<26 | 0x14<<21 | 16<<1)),
1683     new ArchOperator((char)(80 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BCTR
1684                      ArchInstructionFormat.MIR_Branch_format,
1685                      (branch | indirect | ArchInstructionFormat.MIR_Branch_traits),
1686                      0, 0, 1,
1687                      PhysicalDefUse.mask,
1688                      PhysicalDefUse.maskCTR,
1689                      (19<<26 | 0x14<<21 | 528<<1)),
1690     new ArchOperator((char)(81 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BCTRL
1691                      ArchInstructionFormat.MIR_Call_format,
1692                      (call | indirect | dynLink | immedPEI | ArchInstructionFormat.MIR_Call_traits),
1693                      2, 0, 2,
1694                      PhysicalDefUse.maskLR,
1695                      PhysicalDefUse.maskJTOC_CTR,
1696                      (19<<26 | 0x14<<21 | 528<<1 | 1)),
1697     new ArchOperator((char)(82 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BCTRL_SYS
1698                      ArchInstructionFormat.MIR_Call_format,
1699                      (call | indirect | dynLink | immedPEI | ArchInstructionFormat.MIR_Call_traits),
1700                      2, 0, 2,
1701                      PhysicalDefUse.maskLR,
1702                      PhysicalDefUse.maskJTOC_CTR,
1703                      (19<<26 | 0x14<<21 | 528<<1 | 1)),
1704     new ArchOperator((char)(83 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BCLR
1705                      ArchInstructionFormat.MIR_CondBranch_format,
1706                      (branch | conditional | indirect | ArchInstructionFormat.MIR_CondBranch_traits),
1707                      0, 0, 4,
1708                      PhysicalDefUse.mask,
1709                      PhysicalDefUse.maskLR,
1710                      (19<<26 | 16<<1)),
1711     new ArchOperator((char)(84 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BLRL
1712                      ArchInstructionFormat.MIR_Call_format,
1713                      (call | indirect | dynLink | immedPEI | ArchInstructionFormat.MIR_Call_traits),
1714                      2, 0, 2,
1715                      PhysicalDefUse.maskLR,
1716                      PhysicalDefUse.maskJTOC_LR,
1717                      (19<<26 | 0x14<<21 | 16<<1 | 1)),
1718     new ArchOperator((char)(85 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BCLRL
1719                      ArchInstructionFormat.MIR_CondCall_format,
1720                      (call | conditional | indirect | dynLink | immedPEI | ArchInstructionFormat.MIR_CondCall_traits),
1721                      2, 0, 3,
1722                      PhysicalDefUse.maskLR,
1723                      PhysicalDefUse.maskJTOC_LR,
1724                      (19<<26 | 16<<1 | 1)),
1725     new ArchOperator((char)(86 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BC
1726                      ArchInstructionFormat.MIR_CondBranch_format,
1727                      (branch | conditional | ArchInstructionFormat.MIR_CondBranch_traits),
1728                      0, 0, 4,
1729                      PhysicalDefUse.mask,
1730                      PhysicalDefUse.mask,
1731                      (16<<26)),
1732     new ArchOperator((char)(87 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BCL
1733                      ArchInstructionFormat.MIR_CondCall_format,
1734                      (call | conditional | dynLink | immedPEI | ArchInstructionFormat.MIR_CondCall_traits),
1735                      2, 0, 3,
1736                      PhysicalDefUse.maskLR,
1737                      PhysicalDefUse.maskJTOC,
1738                      (16<<26 | 1)),
1739     new ArchOperator((char)(88 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BCOND
1740                      ArchInstructionFormat.MIR_CondBranch_format,
1741                      (branch | conditional | ArchInstructionFormat.MIR_CondBranch_traits),
1742                      0, 0, 4,
1743                      PhysicalDefUse.mask,
1744                      PhysicalDefUse.mask,
1745                      (16<<26)),
1746     new ArchOperator((char)(89 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BCOND2
1747                      ArchInstructionFormat.MIR_CondBranch2_format,
1748                      (branch | conditional | ArchInstructionFormat.MIR_CondBranch2_traits),
1749                      0, 0, 7,
1750                      PhysicalDefUse.mask,
1751                      PhysicalDefUse.mask,
1752                      -1),
1753     new ArchOperator((char)(90 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BCCTR
1754                      ArchInstructionFormat.MIR_CondBranch_format,
1755                      (branch | conditional | indirect | ArchInstructionFormat.MIR_CondBranch_traits),
1756                      0, 0, 4,
1757                      PhysicalDefUse.mask,
1758                      PhysicalDefUse.maskCTR,
1759                      (19<<26) | (528<<1)),
1760     new ArchOperator((char)(91 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_BCC
1761                      ArchInstructionFormat.MIR_CondBranch_format,
1762                      (branch | conditional | ArchInstructionFormat.MIR_CondBranch_traits),
1763                      0, 0, 4,
1764                      PhysicalDefUse.maskCTR,
1765                      PhysicalDefUse.mask,
1766                      (16<<26)),
1767     new ArchOperator((char)(92 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ADDI
1768                      ArchInstructionFormat.MIR_Binary_format,
1769                      (none | ArchInstructionFormat.MIR_Binary_traits),
1770                      1, 0, 2,
1771                      PhysicalDefUse.mask,
1772                      PhysicalDefUse.mask,
1773                      (14<<26)),
1774     new ArchOperator((char)(93 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ADDIS
1775                      ArchInstructionFormat.MIR_Binary_format,
1776                      (none | ArchInstructionFormat.MIR_Binary_traits),
1777                      1, 0, 2,
1778                      PhysicalDefUse.mask,
1779                      PhysicalDefUse.mask,
1780                      (15<<26)),
1781     new ArchOperator((char)(94 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LDI
1782                      ArchInstructionFormat.MIR_Unary_format,
1783                      (none | ArchInstructionFormat.MIR_Unary_traits),
1784                      1, 0, 1,
1785                      PhysicalDefUse.mask,
1786                      PhysicalDefUse.mask,
1787                      (14<<26)),
1788     new ArchOperator((char)(95 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LDIS
1789                      ArchInstructionFormat.MIR_Unary_format,
1790                      (none | ArchInstructionFormat.MIR_Unary_traits),
1791                      1, 0, 1,
1792                      PhysicalDefUse.mask,
1793                      PhysicalDefUse.mask,
1794                      (15<<26)),
1795     new ArchOperator((char)(96 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_CMP
1796                      ArchInstructionFormat.MIR_Binary_format,
1797                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1798                      1, 0, 2,
1799                      PhysicalDefUse.mask,
1800                      PhysicalDefUse.mask,
1801                      (31<<26 | 0<<1)),
1802     new ArchOperator((char)(97 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_CMPI
1803                      ArchInstructionFormat.MIR_Binary_format,
1804                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1805                      1, 0, 2,
1806                      PhysicalDefUse.mask,
1807                      PhysicalDefUse.mask,
1808                      (11<<26)),
1809     new ArchOperator((char)(98 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_CMPL
1810                      ArchInstructionFormat.MIR_Binary_format,
1811                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1812                      1, 0, 2,
1813                      PhysicalDefUse.mask,
1814                      PhysicalDefUse.mask,
1815                      (31<<26 | 32<<1)),
1816     new ArchOperator((char)(99 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_CMPLI
1817                      ArchInstructionFormat.MIR_Binary_format,
1818                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1819                      1, 0, 2,
1820                      PhysicalDefUse.mask,
1821                      PhysicalDefUse.mask,
1822                      (10<<26)),
1823     new ArchOperator((char)(100 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_CRAND
1824                      ArchInstructionFormat.MIR_Condition_format,
1825                      (none | ArchInstructionFormat.MIR_Condition_traits),
1826                      1, 0, 2,
1827                      PhysicalDefUse.mask,
1828                      PhysicalDefUse.mask,
1829                      (19<<26 | 257<<1)),
1830     new ArchOperator((char)(101 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_CRANDC
1831                      ArchInstructionFormat.MIR_Condition_format,
1832                      (none | ArchInstructionFormat.MIR_Condition_traits),
1833                      1, 0, 2,
1834                      PhysicalDefUse.mask,
1835                      PhysicalDefUse.mask,
1836                      (19<<26 | 129<<1)),
1837     new ArchOperator((char)(102 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_CROR
1838                      ArchInstructionFormat.MIR_Condition_format,
1839                      (none | ArchInstructionFormat.MIR_Condition_traits),
1840                      1, 0, 2,
1841                      PhysicalDefUse.mask,
1842                      PhysicalDefUse.mask,
1843                      (19<<26 | 449<<1)),
1844     new ArchOperator((char)(103 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_CRORC
1845                      ArchInstructionFormat.MIR_Condition_format,
1846                      (none | ArchInstructionFormat.MIR_Condition_traits),
1847                      1, 0, 2,
1848                      PhysicalDefUse.mask,
1849                      PhysicalDefUse.mask,
1850                      (19<<26 | 417<<1)),
1851     new ArchOperator((char)(104 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FMR
1852                      ArchInstructionFormat.MIR_Move_format,
1853                      (move | ArchInstructionFormat.MIR_Move_traits),
1854                      1, 0, 1,
1855                      PhysicalDefUse.mask,
1856                      PhysicalDefUse.mask,
1857                      (63<<26 | 72<<1)),
1858     new ArchOperator((char)(105 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FRSP
1859                      ArchInstructionFormat.MIR_Unary_format,
1860                      (none | ArchInstructionFormat.MIR_Unary_traits),
1861                      1, 0, 1,
1862                      PhysicalDefUse.mask,
1863                      PhysicalDefUse.mask,
1864                      (63<<26 | 12<<1)),
1865     new ArchOperator((char)(106 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FCTIW
1866                      ArchInstructionFormat.MIR_Unary_format,
1867                      (none | ArchInstructionFormat.MIR_Unary_traits),
1868                      1, 0, 1,
1869                      PhysicalDefUse.mask,
1870                      PhysicalDefUse.mask,
1871                      (63<<26 | 14<<1)),
1872     new ArchOperator((char)(107 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FCTIWZ
1873                      ArchInstructionFormat.MIR_Unary_format,
1874                      (none | ArchInstructionFormat.MIR_Unary_traits),
1875                      1, 0, 1,
1876                      PhysicalDefUse.mask,
1877                      PhysicalDefUse.mask,
1878                      (63<<26 | 15<<1)),
1879     new ArchOperator((char)(108 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FADD
1880                      ArchInstructionFormat.MIR_Binary_format,
1881                      (none | ArchInstructionFormat.MIR_Binary_traits),
1882                      1, 0, 2,
1883                      PhysicalDefUse.mask,
1884                      PhysicalDefUse.mask,
1885                      (63<<26 | 21<<1)),
1886     new ArchOperator((char)(109 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FADDS
1887                      ArchInstructionFormat.MIR_Binary_format,
1888                      (none | ArchInstructionFormat.MIR_Binary_traits),
1889                      1, 0, 2,
1890                      PhysicalDefUse.mask,
1891                      PhysicalDefUse.mask,
1892                      (59<<26 | 21<<1)),
1893     new ArchOperator((char)(110 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FSQRT
1894                      ArchInstructionFormat.MIR_Unary_format,
1895                      (none | ArchInstructionFormat.MIR_Unary_traits),
1896                      1, 0, 1,
1897                      PhysicalDefUse.mask,
1898                      PhysicalDefUse.mask,
1899                      (63<<26 | 22<<1)),
1900     new ArchOperator((char)(111 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FSQRTS
1901                      ArchInstructionFormat.MIR_Unary_format,
1902                      (none | ArchInstructionFormat.MIR_Unary_traits),
1903                      1, 0, 1,
1904                      PhysicalDefUse.mask,
1905                      PhysicalDefUse.mask,
1906                      (59<<26 | 22<<1)),
1907     new ArchOperator((char)(112 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FABS
1908                      ArchInstructionFormat.MIR_Unary_format,
1909                      (none | ArchInstructionFormat.MIR_Unary_traits),
1910                      1, 0, 1,
1911                      PhysicalDefUse.mask,
1912                      PhysicalDefUse.mask,
1913                      (63<<26 | 264<<1)),
1914     new ArchOperator((char)(113 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FCMPO
1915                      ArchInstructionFormat.MIR_Binary_format,
1916                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1917                      1, 0, 2,
1918                      PhysicalDefUse.mask,
1919                      PhysicalDefUse.mask,
1920                      (63<<26 | 32<<1)),
1921     new ArchOperator((char)(114 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FCMPU
1922                      ArchInstructionFormat.MIR_Binary_format,
1923                      (compare | ArchInstructionFormat.MIR_Binary_traits),
1924                      1, 0, 2,
1925                      PhysicalDefUse.mask,
1926                      PhysicalDefUse.mask,
1927                      (63<<26)),
1928     new ArchOperator((char)(115 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FDIV
1929                      ArchInstructionFormat.MIR_Binary_format,
1930                      (none | ArchInstructionFormat.MIR_Binary_traits),
1931                      1, 0, 2,
1932                      PhysicalDefUse.mask,
1933                      PhysicalDefUse.mask,
1934                      (63<<26 | 18<<1)),
1935     new ArchOperator((char)(116 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FDIVS
1936                      ArchInstructionFormat.MIR_Binary_format,
1937                      (none | ArchInstructionFormat.MIR_Binary_traits),
1938                      1, 0, 2,
1939                      PhysicalDefUse.mask,
1940                      PhysicalDefUse.mask,
1941                      (59<<26 | 18<<1)),
1942     new ArchOperator((char)(117 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_DIVW
1943                      ArchInstructionFormat.MIR_Binary_format,
1944                      (none | ArchInstructionFormat.MIR_Binary_traits),
1945                      1, 0, 2,
1946                      PhysicalDefUse.mask,
1947                      PhysicalDefUse.mask,
1948                      (31<<26 | 491<<1)),
1949     new ArchOperator((char)(118 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_DIVWU
1950                      ArchInstructionFormat.MIR_Binary_format,
1951                      (none | ArchInstructionFormat.MIR_Binary_traits),
1952                      1, 0, 2,
1953                      PhysicalDefUse.mask,
1954                      PhysicalDefUse.mask,
1955                      (31<<26 | 459<<1)),
1956     new ArchOperator((char)(119 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FMUL
1957                      ArchInstructionFormat.MIR_Binary_format,
1958                      (none | ArchInstructionFormat.MIR_Binary_traits),
1959                      1, 0, 2,
1960                      PhysicalDefUse.mask,
1961                      PhysicalDefUse.mask,
1962                      (63<<26 | 25<<1)),
1963     new ArchOperator((char)(120 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FMULS
1964                      ArchInstructionFormat.MIR_Binary_format,
1965                      (none | ArchInstructionFormat.MIR_Binary_traits),
1966                      1, 0, 2,
1967                      PhysicalDefUse.mask,
1968                      PhysicalDefUse.mask,
1969                      (59<<26 | 25<<1)),
1970     new ArchOperator((char)(121 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FSEL
1971                      ArchInstructionFormat.MIR_Ternary_format,
1972                      (none | ArchInstructionFormat.MIR_Ternary_traits),
1973                      1, 0, 3,
1974                      PhysicalDefUse.mask,
1975                      PhysicalDefUse.mask,
1976                      (63<<26 | 23<<1)),
1977     new ArchOperator((char)(122 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FMADD
1978                      ArchInstructionFormat.MIR_Ternary_format,
1979                      (none | ArchInstructionFormat.MIR_Ternary_traits),
1980                      1, 0, 3,
1981                      PhysicalDefUse.mask,
1982                      PhysicalDefUse.mask,
1983                      (63<<26 | 29<<1)),
1984     new ArchOperator((char)(123 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FMADDS
1985                      ArchInstructionFormat.MIR_Ternary_format,
1986                      (none | ArchInstructionFormat.MIR_Ternary_traits),
1987                      1, 0, 3,
1988                      PhysicalDefUse.mask,
1989                      PhysicalDefUse.mask,
1990                      (59<<26 | 29<<1)),
1991     new ArchOperator((char)(124 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FMSUB
1992                      ArchInstructionFormat.MIR_Ternary_format,
1993                      (none | ArchInstructionFormat.MIR_Ternary_traits),
1994                      1, 0, 3,
1995                      PhysicalDefUse.mask,
1996                      PhysicalDefUse.mask,
1997                      (63<<26 | 28<<1)),
1998     new ArchOperator((char)(125 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FMSUBS
1999                      ArchInstructionFormat.MIR_Ternary_format,
2000                      (none | ArchInstructionFormat.MIR_Ternary_traits),
2001                      1, 0, 3,
2002                      PhysicalDefUse.mask,
2003                      PhysicalDefUse.mask,
2004                      (59<<26 | 28<<1)),
2005     new ArchOperator((char)(126 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FNMADD
2006                      ArchInstructionFormat.MIR_Ternary_format,
2007                      (none | ArchInstructionFormat.MIR_Ternary_traits),
2008                      1, 0, 3,
2009                      PhysicalDefUse.mask,
2010                      PhysicalDefUse.mask,
2011                      (63<<26 | 31<<1)),
2012     new ArchOperator((char)(127 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FNMADDS
2013                      ArchInstructionFormat.MIR_Ternary_format,
2014                      (none | ArchInstructionFormat.MIR_Ternary_traits),
2015                      1, 0, 3,
2016                      PhysicalDefUse.mask,
2017                      PhysicalDefUse.mask,
2018                      (59<<26 | 31<<1)),
2019     new ArchOperator((char)(128 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FNMSUB
2020                      ArchInstructionFormat.MIR_Ternary_format,
2021                      (none | ArchInstructionFormat.MIR_Ternary_traits),
2022                      1, 0, 3,
2023                      PhysicalDefUse.mask,
2024                      PhysicalDefUse.mask,
2025                      (63<<26 | 30<<1)),
2026     new ArchOperator((char)(129 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FNMSUBS
2027                      ArchInstructionFormat.MIR_Ternary_format,
2028                      (none | ArchInstructionFormat.MIR_Ternary_traits),
2029                      1, 0, 3,
2030                      PhysicalDefUse.mask,
2031                      PhysicalDefUse.mask,
2032                      (59<<26 | 30<<1)),
2033     new ArchOperator((char)(130 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_MULLI
2034                      ArchInstructionFormat.MIR_Binary_format,
2035                      (none | ArchInstructionFormat.MIR_Binary_traits),
2036                      1, 0, 2,
2037                      PhysicalDefUse.mask,
2038                      PhysicalDefUse.mask,
2039                      (7<<26)),
2040     new ArchOperator((char)(131 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_MULLW
2041                      ArchInstructionFormat.MIR_Binary_format,
2042                      (none | ArchInstructionFormat.MIR_Binary_traits),
2043                      1, 0, 2,
2044                      PhysicalDefUse.mask,
2045                      PhysicalDefUse.mask,
2046                      (31<<26 | 235<<1)),
2047     new ArchOperator((char)(132 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_MULHW
2048                      ArchInstructionFormat.MIR_Binary_format,
2049                      (none | ArchInstructionFormat.MIR_Binary_traits),
2050                      1, 0, 2,
2051                      PhysicalDefUse.mask,
2052                      PhysicalDefUse.mask,
2053                      (31<<26 | 75<<1)),
2054     new ArchOperator((char)(133 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_MULHWU
2055                      ArchInstructionFormat.MIR_Binary_format,
2056                      (none | ArchInstructionFormat.MIR_Binary_traits),
2057                      1, 0, 2,
2058                      PhysicalDefUse.mask,
2059                      PhysicalDefUse.mask,
2060                      (31<<26 | 11<<1)),
2061     new ArchOperator((char)(134 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FNEG
2062                      ArchInstructionFormat.MIR_Unary_format,
2063                      (none | ArchInstructionFormat.MIR_Unary_traits),
2064                      1, 0, 1,
2065                      PhysicalDefUse.mask,
2066                      PhysicalDefUse.mask,
2067                      (63<<26 | 40<<1)),
2068     new ArchOperator((char)(135 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FSUB
2069                      ArchInstructionFormat.MIR_Binary_format,
2070                      (none | ArchInstructionFormat.MIR_Binary_traits),
2071                      1, 0, 2,
2072                      PhysicalDefUse.mask,
2073                      PhysicalDefUse.mask,
2074                      (63<<26 | 20<<1)),
2075     new ArchOperator((char)(136 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_FSUBS
2076                      ArchInstructionFormat.MIR_Binary_format,
2077                      (none | ArchInstructionFormat.MIR_Binary_traits),
2078                      1, 0, 2,
2079                      PhysicalDefUse.mask,
2080                      PhysicalDefUse.mask,
2081                      (59<<26 | 20<<1)),
2082     new ArchOperator((char)(137 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LWZ
2083                      ArchInstructionFormat.MIR_Load_format,
2084                      (load | ArchInstructionFormat.MIR_Load_traits),
2085                      1, 0, 4,
2086                      PhysicalDefUse.mask,
2087                      PhysicalDefUse.mask,
2088                      (32<<26)),
2089     new ArchOperator((char)(138 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LWZU
2090                      ArchInstructionFormat.MIR_LoadUpdate_format,
2091                      (load | ArchInstructionFormat.MIR_LoadUpdate_traits),
2092                      1, 1, 3,
2093                      PhysicalDefUse.mask,
2094                      PhysicalDefUse.mask,
2095                      (33<<26)),
2096     new ArchOperator((char)(139 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LWZUX
2097                      ArchInstructionFormat.MIR_LoadUpdate_format,
2098                      (load | ArchInstructionFormat.MIR_LoadUpdate_traits),
2099                      1, 1, 3,
2100                      PhysicalDefUse.mask,
2101                      PhysicalDefUse.mask,
2102                      (31<<26 | 55<<1)),
2103     new ArchOperator((char)(140 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LWZX
2104                      ArchInstructionFormat.MIR_Load_format,
2105                      (load | ArchInstructionFormat.MIR_Load_traits),
2106                      1, 0, 4,
2107                      PhysicalDefUse.mask,
2108                      PhysicalDefUse.mask,
2109                      (31<<26 | 23<<1)),
2110     new ArchOperator((char)(141 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LWARX
2111                      ArchInstructionFormat.MIR_Load_format,
2112                      (memAsLoad | memAsStore | load | acquire | ArchInstructionFormat.MIR_Load_traits),
2113                      1, 0, 4,
2114                      PhysicalDefUse.mask,
2115                      PhysicalDefUse.mask,
2116                      (31<<26 | 20<<1)),
2117     new ArchOperator((char)(142 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LBZ
2118                      ArchInstructionFormat.MIR_Load_format,
2119                      (load | ArchInstructionFormat.MIR_Load_traits),
2120                      1, 0, 4,
2121                      PhysicalDefUse.mask,
2122                      PhysicalDefUse.mask,
2123                      (34<<26)),
2124     new ArchOperator((char)(143 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LBZUX
2125                      ArchInstructionFormat.MIR_LoadUpdate_format,
2126                      (load | ArchInstructionFormat.MIR_LoadUpdate_traits),
2127                      1, 1, 3,
2128                      PhysicalDefUse.mask,
2129                      PhysicalDefUse.mask,
2130                      (31<<26 | 119<<1)),
2131     new ArchOperator((char)(144 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LBZX
2132                      ArchInstructionFormat.MIR_Load_format,
2133                      (load | ArchInstructionFormat.MIR_Load_traits),
2134                      1, 0, 4,
2135                      PhysicalDefUse.mask,
2136                      PhysicalDefUse.mask,
2137                      (31<<26 | 87<<1)),
2138     new ArchOperator((char)(145 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LHA
2139                      ArchInstructionFormat.MIR_Load_format,
2140                      (load | ArchInstructionFormat.MIR_Load_traits),
2141                      1, 0, 4,
2142                      PhysicalDefUse.mask,
2143                      PhysicalDefUse.mask,
2144                      (42<<26)),
2145     new ArchOperator((char)(146 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LHAX
2146                      ArchInstructionFormat.MIR_Load_format,
2147                      (load | ArchInstructionFormat.MIR_Load_traits),
2148                      1, 0, 4,
2149                      PhysicalDefUse.mask,
2150                      PhysicalDefUse.mask,
2151                      (31<<26 | 343<<1)),
2152     new ArchOperator((char)(147 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LHZ
2153                      ArchInstructionFormat.MIR_Load_format,
2154                      (load | ArchInstructionFormat.MIR_Load_traits),
2155                      1, 0, 4,
2156                      PhysicalDefUse.mask,
2157                      PhysicalDefUse.mask,
2158                      (40<<26)),
2159     new ArchOperator((char)(148 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LHZX
2160                      ArchInstructionFormat.MIR_Load_format,
2161                      (load | ArchInstructionFormat.MIR_Load_traits),
2162                      1, 0, 4,
2163                      PhysicalDefUse.mask,
2164                      PhysicalDefUse.mask,
2165                      (31<<26 | 279<<1)),
2166     new ArchOperator((char)(149 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LFD
2167                      ArchInstructionFormat.MIR_Load_format,
2168                      (load | ArchInstructionFormat.MIR_Load_traits),
2169                      1, 0, 4,
2170                      PhysicalDefUse.mask,
2171                      PhysicalDefUse.mask,
2172                      (50<<26)),
2173     new ArchOperator((char)(150 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LFDX
2174                      ArchInstructionFormat.MIR_Load_format,
2175                      (load | ArchInstructionFormat.MIR_Load_traits),
2176                      1, 0, 4,
2177                      PhysicalDefUse.mask,
2178                      PhysicalDefUse.mask,
2179                      (31<<26 | 599<<1)),
2180     new ArchOperator((char)(151 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LFS
2181                      ArchInstructionFormat.MIR_Load_format,
2182                      (load | ArchInstructionFormat.MIR_Load_traits),
2183                      1, 0, 4,
2184                      PhysicalDefUse.mask,
2185                      PhysicalDefUse.mask,
2186                      (48<<26)),
2187     new ArchOperator((char)(152 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LFSX
2188                      ArchInstructionFormat.MIR_Load_format,
2189                      (load | ArchInstructionFormat.MIR_Load_traits),
2190                      1, 0, 4,
2191                      PhysicalDefUse.mask,
2192                      PhysicalDefUse.mask,
2193                      (31<<26 | 535<<1)),
2194     new ArchOperator((char)(153 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LMW
2195                      ArchInstructionFormat.MIR_Load_format,
2196                      (load | ArchInstructionFormat.MIR_Load_traits),
2197                      1, 0, 4,
2198                      PhysicalDefUse.mask,
2199                      PhysicalDefUse.mask,
2200                      (46<<26)),
2201     new ArchOperator((char)(154 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STW
2202                      ArchInstructionFormat.MIR_Store_format,
2203                      (store | ArchInstructionFormat.MIR_Store_traits),
2204                      0, 0, 5,
2205                      PhysicalDefUse.mask,
2206                      PhysicalDefUse.mask,
2207                      (36<<26)),
2208     new ArchOperator((char)(155 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STWX
2209                      ArchInstructionFormat.MIR_Store_format,
2210                      (store | ArchInstructionFormat.MIR_Store_traits),
2211                      0, 0, 5,
2212                      PhysicalDefUse.mask,
2213                      PhysicalDefUse.mask,
2214                      (31<<26 | 151<<1)),
2215     new ArchOperator((char)(156 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STWCXr
2216                      ArchInstructionFormat.MIR_Store_format,
2217                      (memAsLoad | memAsStore | store | compare | ArchInstructionFormat.MIR_Store_traits),
2218                      0, 0, 5,
2219                      PhysicalDefUse.maskC0,
2220                      PhysicalDefUse.mask,
2221                      (31<<26 | 150<<1 | 1)),
2222     new ArchOperator((char)(157 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STWU
2223                      ArchInstructionFormat.MIR_StoreUpdate_format,
2224                      (store | ArchInstructionFormat.MIR_StoreUpdate_traits),
2225                      0, 1, 4,
2226                      PhysicalDefUse.mask,
2227                      PhysicalDefUse.mask,
2228                      (37<<26)),
2229     new ArchOperator((char)(158 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STB
2230                      ArchInstructionFormat.MIR_Store_format,
2231                      (store | ArchInstructionFormat.MIR_Store_traits),
2232                      0, 0, 5,
2233                      PhysicalDefUse.mask,
2234                      PhysicalDefUse.mask,
2235                      (38<<26)),
2236     new ArchOperator((char)(159 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STBX
2237                      ArchInstructionFormat.MIR_Store_format,
2238                      (store | ArchInstructionFormat.MIR_Store_traits),
2239                      0, 0, 5,
2240                      PhysicalDefUse.mask,
2241                      PhysicalDefUse.mask,
2242                      (31<<26 | 215<<1)),
2243     new ArchOperator((char)(160 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STH
2244                      ArchInstructionFormat.MIR_Store_format,
2245                      (store | ArchInstructionFormat.MIR_Store_traits),
2246                      0, 0, 5,
2247                      PhysicalDefUse.mask,
2248                      PhysicalDefUse.mask,
2249                      (44<<26)),
2250     new ArchOperator((char)(161 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STHX
2251                      ArchInstructionFormat.MIR_Store_format,
2252                      (store | ArchInstructionFormat.MIR_Store_traits),
2253                      0, 0, 5,
2254                      PhysicalDefUse.mask,
2255                      PhysicalDefUse.mask,
2256                      (31<<26 | 407<<1)),
2257     new ArchOperator((char)(162 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STFD
2258                      ArchInstructionFormat.MIR_Store_format,
2259                      (store | ArchInstructionFormat.MIR_Store_traits),
2260                      0, 0, 5,
2261                      PhysicalDefUse.mask,
2262                      PhysicalDefUse.mask,
2263                      (54<<26)),
2264     new ArchOperator((char)(163 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STFDX
2265                      ArchInstructionFormat.MIR_Store_format,
2266                      (store | ArchInstructionFormat.MIR_Store_traits),
2267                      0, 0, 5,
2268                      PhysicalDefUse.mask,
2269                      PhysicalDefUse.mask,
2270                      (31<<26 | 727<<1)),
2271     new ArchOperator((char)(164 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STFDU
2272                      ArchInstructionFormat.MIR_StoreUpdate_format,
2273                      (store | ArchInstructionFormat.MIR_StoreUpdate_traits),
2274                      0, 1, 4,
2275                      PhysicalDefUse.mask,
2276                      PhysicalDefUse.mask,
2277                      (31<<26 | 759<<1)),
2278     new ArchOperator((char)(165 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STFS
2279                      ArchInstructionFormat.MIR_Store_format,
2280                      (store | ArchInstructionFormat.MIR_Store_traits),
2281                      0, 0, 5,
2282                      PhysicalDefUse.mask,
2283                      PhysicalDefUse.mask,
2284                      (52<<26)),
2285     new ArchOperator((char)(166 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STFSX
2286                      ArchInstructionFormat.MIR_Store_format,
2287                      (store | ArchInstructionFormat.MIR_Store_traits),
2288                      0, 0, 5,
2289                      PhysicalDefUse.mask,
2290                      PhysicalDefUse.mask,
2291                      (31<<26 | 663<<1)),
2292     new ArchOperator((char)(167 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STFSU
2293                      ArchInstructionFormat.MIR_StoreUpdate_format,
2294                      (store | ArchInstructionFormat.MIR_StoreUpdate_traits),
2295                      0, 1, 4,
2296                      PhysicalDefUse.mask,
2297                      PhysicalDefUse.mask,
2298                      (53<<26)),
2299     new ArchOperator((char)(168 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STMW
2300                      ArchInstructionFormat.MIR_Store_format,
2301                      (store | ArchInstructionFormat.MIR_Store_traits),
2302                      0, 0, 5,
2303                      PhysicalDefUse.mask,
2304                      PhysicalDefUse.mask,
2305                      (47<<26)),
2306     new ArchOperator((char)(169 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_TW
2307                      ArchInstructionFormat.MIR_Trap_format,
2308                      (immedPEI | dynLink | ArchInstructionFormat.MIR_Trap_traits),
2309                      1, 0, 4,
2310                      PhysicalDefUse.mask,
2311                      PhysicalDefUse.mask,
2312                      (31<<26 | 4<<1)),
2313     new ArchOperator((char)(170 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_TWI
2314                      ArchInstructionFormat.MIR_Trap_format,
2315                      (immedPEI | dynLink | ArchInstructionFormat.MIR_Trap_traits),
2316                      1, 0, 4,
2317                      PhysicalDefUse.mask,
2318                      PhysicalDefUse.mask,
2319                      (3<<26)),
2320     new ArchOperator((char)(171 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_MFSPR
2321                      ArchInstructionFormat.MIR_Move_format,
2322                      (move | ArchInstructionFormat.MIR_Move_traits),
2323                      1, 0, 1,
2324                      PhysicalDefUse.mask,
2325                      PhysicalDefUse.mask,
2326                      (31<<26 | 339<<1)),
2327     new ArchOperator((char)(172 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_MTSPR
2328                      ArchInstructionFormat.MIR_Move_format,
2329                      (move | ArchInstructionFormat.MIR_Move_traits),
2330                      1, 0, 1,
2331                      PhysicalDefUse.mask,
2332                      PhysicalDefUse.mask,
2333                      (31<<26 | 467<<1)),
2334     new ArchOperator((char)(173 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_MFTB
2335                      ArchInstructionFormat.MIR_Move_format,
2336                      (move | ArchInstructionFormat.MIR_Move_traits),
2337                      1, 0, 1,
2338                      PhysicalDefUse.mask,
2339                      PhysicalDefUse.mask,
2340                      (31<<26 | 392<<11 | 371<<1)),
2341     new ArchOperator((char)(174 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_MFTBU
2342                      ArchInstructionFormat.MIR_Move_format,
2343                      (move | ArchInstructionFormat.MIR_Move_traits),
2344                      1, 0, 1,
2345                      PhysicalDefUse.mask,
2346                      PhysicalDefUse.mask,
2347                      (31<<26 | 424<<11 | 371<<1)),
2348     new ArchOperator((char)(175 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_HWSYNC
2349                      ArchInstructionFormat.MIR_Empty_format,
2350                      (memAsLoad | memAsStore | ArchInstructionFormat.MIR_Empty_traits),
2351                      0, 0, 0,
2352                      PhysicalDefUse.mask,
2353                      PhysicalDefUse.mask,
2354                      (31<<26 | 598<<1)),
2355     new ArchOperator((char)(176 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SYNC
2356                      ArchInstructionFormat.MIR_Empty_format,
2357                      (memAsLoad | memAsStore | ArchInstructionFormat.MIR_Empty_traits),
2358                      0, 0, 0,
2359                      PhysicalDefUse.mask,
2360                      PhysicalDefUse.mask,
2361                      (31<<26 | 1<<21 | 598<<1)),
2362     new ArchOperator((char)(177 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ISYNC
2363                      ArchInstructionFormat.MIR_Empty_format,
2364                      (memAsLoad | memAsStore | ArchInstructionFormat.MIR_Empty_traits),
2365                      0, 0, 0,
2366                      PhysicalDefUse.mask,
2367                      PhysicalDefUse.mask,
2368                      (19<<26 | 150<<1)),
2369     new ArchOperator((char)(178 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_DCBF
2370                      ArchInstructionFormat.MIR_CacheOp_format,
2371                      (memAsLoad | memAsStore | ArchInstructionFormat.MIR_CacheOp_traits),
2372                      0, 0, 2,
2373                      PhysicalDefUse.mask,
2374                      PhysicalDefUse.mask,
2375                      (31<<26 | 86<<1)),
2376     new ArchOperator((char)(179 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_DCBST
2377                      ArchInstructionFormat.MIR_CacheOp_format,
2378                      (memAsLoad | memAsStore | ArchInstructionFormat.MIR_CacheOp_traits),
2379                      0, 0, 2,
2380                      PhysicalDefUse.mask,
2381                      PhysicalDefUse.mask,
2382                      (31<<26 | 54<<1)),
2383     new ArchOperator((char)(180 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_DCBT
2384                      ArchInstructionFormat.MIR_CacheOp_format,
2385                      (memAsLoad | memAsStore | ArchInstructionFormat.MIR_CacheOp_traits),
2386                      0, 0, 2,
2387                      PhysicalDefUse.mask,
2388                      PhysicalDefUse.mask,
2389                      (31<<26 | 278<<1)),
2390     new ArchOperator((char)(181 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_DCBTST
2391                      ArchInstructionFormat.MIR_CacheOp_format,
2392                      (memAsLoad | memAsStore | ArchInstructionFormat.MIR_CacheOp_traits),
2393                      0, 0, 2,
2394                      PhysicalDefUse.mask,
2395                      PhysicalDefUse.mask,
2396                      (31<<26 | 246<<1)),
2397     new ArchOperator((char)(182 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_DCBZ
2398                      ArchInstructionFormat.MIR_CacheOp_format,
2399                      (memAsLoad | memAsStore | ArchInstructionFormat.MIR_CacheOp_traits),
2400                      0, 0, 2,
2401                      PhysicalDefUse.mask,
2402                      PhysicalDefUse.mask,
2403                      (31<<26 | 1014<<1)),
2404     new ArchOperator((char)(183 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_DCBZL
2405                      ArchInstructionFormat.MIR_CacheOp_format,
2406                      (memAsLoad | memAsStore | ArchInstructionFormat.MIR_CacheOp_traits),
2407                      0, 0, 2,
2408                      PhysicalDefUse.mask,
2409                      PhysicalDefUse.mask,
2410                      (31<<26 | 1<<21 | 1014<<1)),
2411     new ArchOperator((char)(184 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_ICBI
2412                      ArchInstructionFormat.MIR_CacheOp_format,
2413                      (memAsLoad | memAsStore | ArchInstructionFormat.MIR_CacheOp_traits),
2414                      0, 0, 2,
2415                      PhysicalDefUse.mask,
2416                      PhysicalDefUse.mask,
2417                      (31<<26 | 982<<1)),
2418     new ArchOperator((char)(185 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_EXTSW
2419                      ArchInstructionFormat.MIR_Unary_format,
2420                      (none | ArchInstructionFormat.MIR_Unary_traits),
2421                      1, 0, 1,
2422                      PhysicalDefUse.mask,
2423                      PhysicalDefUse.mask,
2424                      (31<<26 | 986<<1)),
2425     new ArchOperator((char)(186 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_EXTSWr
2426                      ArchInstructionFormat.MIR_Unary_format,
2427                      (none | ArchInstructionFormat.MIR_Unary_traits),
2428                      1, 0, 1,
2429                      PhysicalDefUse.mask,
2430                      PhysicalDefUse.mask,
2431                      (31<<26 | 986<<1 | 1)),
2432     new ArchOperator((char)(187 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_EXTZW
2433                      ArchInstructionFormat.MIR_Unary_format,
2434                      (none | ArchInstructionFormat.MIR_Unary_traits),
2435                      1, 0, 1,
2436                      PhysicalDefUse.mask,
2437                      PhysicalDefUse.mask,
2438                      (30<<26 | 0<<2)),
2439     new ArchOperator((char)(188 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_RLDICL
2440                      ArchInstructionFormat.MIR_RotateAndMask_format,
2441                      (none | ArchInstructionFormat.MIR_RotateAndMask_traits),
2442                      1, 0, 5,
2443                      PhysicalDefUse.mask,
2444                      PhysicalDefUse.mask,
2445                      (30<<26)),
2446     new ArchOperator((char)(189 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_RLDICR
2447                      ArchInstructionFormat.MIR_RotateAndMask_format,
2448                      (none | ArchInstructionFormat.MIR_RotateAndMask_traits),
2449                      1, 0, 5,
2450                      PhysicalDefUse.mask,
2451                      PhysicalDefUse.mask,
2452                      (30<<26 | 1<<2)),
2453     new ArchOperator((char)(190 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_SLD
2454                      ArchInstructionFormat.MIR_Binary_format,
2455                      (none | ArchInstructionFormat.MIR_Binary_traits),
2456                      1, 0, 2,
2457                      PhysicalDefUse.mask,
2458                      PhysicalDefUse.mask,
2459                      (31<<26 | 27<<1)),
2460     new ArchOperator((char)(191 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_SLDr
2461                      ArchInstructionFormat.MIR_Binary_format,
2462                      (compare | ArchInstructionFormat.MIR_Binary_traits),
2463                      1, 0, 2,
2464                      PhysicalDefUse.maskC0,
2465                      PhysicalDefUse.mask,
2466                      (31<<26 | 27<<1 | 1)),
2467     new ArchOperator((char)(192 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_SLDI
2468                      ArchInstructionFormat.MIR_Binary_format,
2469                      (none | ArchInstructionFormat.MIR_Binary_traits),
2470                      1, 0, 2,
2471                      PhysicalDefUse.mask,
2472                      PhysicalDefUse.mask,
2473                      (30<<26 | 1<<2)),
2474     new ArchOperator((char)(193 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_SRD
2475                      ArchInstructionFormat.MIR_Binary_format,
2476                      (none | ArchInstructionFormat.MIR_Binary_traits),
2477                      1, 0, 2,
2478                      PhysicalDefUse.maskXER,
2479                      PhysicalDefUse.mask,
2480                      (31<<26 | 539<<1)),
2481     new ArchOperator((char)(194 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_SRDr
2482                      ArchInstructionFormat.MIR_Binary_format,
2483                      (compare | ArchInstructionFormat.MIR_Binary_traits),
2484                      1, 0, 2,
2485                      PhysicalDefUse.maskC0_XER,
2486                      PhysicalDefUse.mask,
2487                      (31<<26 | 539<<1 | 1)),
2488     new ArchOperator((char)(195 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_SRAD
2489                      ArchInstructionFormat.MIR_Binary_format,
2490                      (none | ArchInstructionFormat.MIR_Binary_traits),
2491                      1, 0, 2,
2492                      PhysicalDefUse.maskXER,
2493                      PhysicalDefUse.mask,
2494                      (31<<26 | 794<<1)),
2495     new ArchOperator((char)(196 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_SRADr
2496                      ArchInstructionFormat.MIR_Binary_format,
2497                      (compare | ArchInstructionFormat.MIR_Binary_traits),
2498                      1, 0, 2,
2499                      PhysicalDefUse.maskC0_XER,
2500                      PhysicalDefUse.mask,
2501                      (31<<26 | 794<<1 | 1)),
2502     new ArchOperator((char)(197 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_SRADI
2503                      ArchInstructionFormat.MIR_Binary_format,
2504                      (none | ArchInstructionFormat.MIR_Binary_traits),
2505                      1, 0, 2,
2506                      PhysicalDefUse.maskXER,
2507                      PhysicalDefUse.mask,
2508                      (31<<26 | 413<<2)),
2509     new ArchOperator((char)(198 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_SRADIr
2510                      ArchInstructionFormat.MIR_Binary_format,
2511                      (compare | ArchInstructionFormat.MIR_Binary_traits),
2512                      1, 0, 2,
2513                      PhysicalDefUse.maskC0_XER,
2514                      PhysicalDefUse.mask,
2515                      (31<<26 | 413<<2 | 1)),
2516     new ArchOperator((char)(199 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_SRDI
2517                      ArchInstructionFormat.MIR_Binary_format,
2518                      (none | ArchInstructionFormat.MIR_Binary_traits),
2519                      1, 0, 2,
2520                      PhysicalDefUse.mask,
2521                      PhysicalDefUse.mask,
2522                      (30<<26 | 0<<2)),
2523     new ArchOperator((char)(200 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_RLDIMI
2524                      ArchInstructionFormat.MIR_RotateAndMask_format,
2525                      (none | ArchInstructionFormat.MIR_RotateAndMask_traits),
2526                      1, 0, 5,
2527                      PhysicalDefUse.mask,
2528                      PhysicalDefUse.mask,
2529                      (30<<26 | 3<<2)),
2530     new ArchOperator((char)(201 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_RLDIMIr
2531                      ArchInstructionFormat.MIR_RotateAndMask_format,
2532                      (compare | ArchInstructionFormat.MIR_RotateAndMask_traits),
2533                      1, 0, 5,
2534                      PhysicalDefUse.maskC0,
2535                      PhysicalDefUse.mask,
2536                      (30<<26 | 3<<2 | 1)),
2537     new ArchOperator((char)(202 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_CMP
2538                      ArchInstructionFormat.MIR_Binary_format,
2539                      (compare | ArchInstructionFormat.MIR_Binary_traits),
2540                      1, 0, 2,
2541                      PhysicalDefUse.mask,
2542                      PhysicalDefUse.mask,
2543                      (31<<26 | 0<<1 | 1<<21)),
2544     new ArchOperator((char)(203 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_CMPI
2545                      ArchInstructionFormat.MIR_Binary_format,
2546                      (compare | ArchInstructionFormat.MIR_Binary_traits),
2547                      1, 0, 2,
2548                      PhysicalDefUse.mask,
2549                      PhysicalDefUse.mask,
2550                      (11<<26 | 1<<21)),
2551     new ArchOperator((char)(204 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_CMPL
2552                      ArchInstructionFormat.MIR_Binary_format,
2553                      (compare | ArchInstructionFormat.MIR_Binary_traits),
2554                      1, 0, 2,
2555                      PhysicalDefUse.mask,
2556                      PhysicalDefUse.mask,
2557                      (31<<26 | 32<<1 | 1<<21)),
2558     new ArchOperator((char)(205 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_CMPLI
2559                      ArchInstructionFormat.MIR_Binary_format,
2560                      (compare | ArchInstructionFormat.MIR_Binary_traits),
2561                      1, 0, 2,
2562                      PhysicalDefUse.mask,
2563                      PhysicalDefUse.mask,
2564                      (10<<26 | 1<<21)),
2565     new ArchOperator((char)(206 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_FCFID
2566                      ArchInstructionFormat.MIR_Unary_format,
2567                      (none | ArchInstructionFormat.MIR_Unary_traits),
2568                      1, 0, 1,
2569                      PhysicalDefUse.mask,
2570                      PhysicalDefUse.mask,
2571                      0),
2572     new ArchOperator((char)(207 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_FCTIDZ
2573                      ArchInstructionFormat.MIR_Unary_format,
2574                      (none | ArchInstructionFormat.MIR_Unary_traits),
2575                      1, 0, 1,
2576                      PhysicalDefUse.mask,
2577                      PhysicalDefUse.mask,
2578                      (63<<26 | 815<<1)),
2579     new ArchOperator((char)(208 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_DIVD
2580                      ArchInstructionFormat.MIR_Binary_format,
2581                      (none | ArchInstructionFormat.MIR_Binary_traits),
2582                      1, 0, 2,
2583                      PhysicalDefUse.mask,
2584                      PhysicalDefUse.mask,
2585                      (31<<26 | 489<<1)),
2586     new ArchOperator((char)(209 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_MULLD
2587                      ArchInstructionFormat.MIR_Binary_format,
2588                      (none | ArchInstructionFormat.MIR_Binary_traits),
2589                      1, 0, 2,
2590                      PhysicalDefUse.mask,
2591                      PhysicalDefUse.mask,
2592                      (31<<26 | 233<<1)),
2593     new ArchOperator((char)(210 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_LD
2594                      ArchInstructionFormat.MIR_Load_format,
2595                      (load | ArchInstructionFormat.MIR_Load_traits),
2596                      1, 0, 4,
2597                      PhysicalDefUse.mask,
2598                      PhysicalDefUse.mask,
2599                      (58<<26)),
2600     new ArchOperator((char)(211 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_LDX
2601                      ArchInstructionFormat.MIR_Load_format,
2602                      (load | ArchInstructionFormat.MIR_Load_traits),
2603                      1, 0, 4,
2604                      PhysicalDefUse.mask,
2605                      PhysicalDefUse.mask,
2606                      (31<<26 | 21<<1)),
2607     new ArchOperator((char)(212 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_STD
2608                      ArchInstructionFormat.MIR_Store_format,
2609                      (store | ArchInstructionFormat.MIR_Store_traits),
2610                      0, 0, 5,
2611                      PhysicalDefUse.mask,
2612                      PhysicalDefUse.mask,
2613                      (62<<26)),
2614     new ArchOperator((char)(213 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_STDX
2615                      ArchInstructionFormat.MIR_Store_format,
2616                      (store | ArchInstructionFormat.MIR_Store_traits),
2617                      0, 0, 5,
2618                      PhysicalDefUse.mask,
2619                      PhysicalDefUse.mask,
2620                      (31<<26 | 149<<1)),
2621     new ArchOperator((char)(214 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_TD
2622                      ArchInstructionFormat.MIR_Trap_format,
2623                      (immedPEI | dynLink | ArchInstructionFormat.MIR_Trap_traits),
2624                      1, 0, 4,
2625                      PhysicalDefUse.mask,
2626                      PhysicalDefUse.mask,
2627                      (31<<26 | 68<<1)),
2628     new ArchOperator((char)(215 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_TDI
2629                      ArchInstructionFormat.MIR_Trap_format,
2630                      (immedPEI | dynLink | ArchInstructionFormat.MIR_Trap_traits),
2631                      1, 0, 4,
2632                      PhysicalDefUse.mask,
2633                      PhysicalDefUse.mask,
2634                      (2<<26)),
2635     new ArchOperator((char)(216 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_CNTLZAddr
2636                      ArchInstructionFormat.MIR_Unary_format,
2637                      (none | ArchInstructionFormat.MIR_Unary_traits),
2638                      1, 0, 1,
2639                      PhysicalDefUse.mask,
2640                      PhysicalDefUse.mask,
2641                      VM.BuildFor32Addr ? (31<<26 | 26<<1) : (31<<26 | 58<<1)),
2642     new ArchOperator((char)(217 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SRAAddrI
2643                      ArchInstructionFormat.MIR_Binary_format,
2644                      (none | ArchInstructionFormat.MIR_Binary_traits),
2645                      1, 0, 2,
2646                      PhysicalDefUse.maskXER,
2647                      PhysicalDefUse.mask,
2648                      VM.BuildFor32Addr ? (31<<26 | 824<<1) : (31<<26 | 413<<2)),
2649     new ArchOperator((char)(218 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_SRAddrI
2650                      ArchInstructionFormat.MIR_Binary_format,
2651                      (none | ArchInstructionFormat.MIR_Binary_traits),
2652                      1, 0, 2,
2653                      PhysicalDefUse.maskXER_32,
2654                      PhysicalDefUse.mask,
2655                      VM.BuildFor32Addr ? (21<<26 |  31<<1) : (30<<26 | 0<<2)),
2656     new ArchOperator((char)(219 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_LWA
2657                      ArchInstructionFormat.MIR_Load_format,
2658                      (load | ArchInstructionFormat.MIR_Load_traits),
2659                      1, 0, 4,
2660                      PhysicalDefUse.mask,
2661                      PhysicalDefUse.mask,
2662                      (58<<26 | 2)),
2663     new ArchOperator((char)(220 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LInt
2664                      ArchInstructionFormat.MIR_Load_format,
2665                      (load | ArchInstructionFormat.MIR_Load_traits),
2666                      1, 0, 4,
2667                      PhysicalDefUse.mask,
2668                      PhysicalDefUse.mask,
2669                      VM.BuildFor32Addr ? (32<<26) : (58<<26 | 2)),
2670     new ArchOperator((char)(221 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC64_LWAX
2671                      ArchInstructionFormat.MIR_Load_format,
2672                      (load | ArchInstructionFormat.MIR_Load_traits),
2673                      1, 0, 4,
2674                      PhysicalDefUse.mask,
2675                      PhysicalDefUse.mask,
2676                      (31<<26 | 341<<1)),
2677     new ArchOperator((char)(222 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LIntX
2678                      ArchInstructionFormat.MIR_Load_format,
2679                      (load | ArchInstructionFormat.MIR_Load_traits),
2680                      1, 0, 4,
2681                      PhysicalDefUse.mask,
2682                      PhysicalDefUse.mask,
2683                      VM.BuildFor32Addr ? (31<<26 | 23<<1) : (31<<26 | 341<<1)),
2684     new ArchOperator((char)(223 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LIntUX
2685                      ArchInstructionFormat.MIR_LoadUpdate_format,
2686                      (load | ArchInstructionFormat.MIR_LoadUpdate_traits),
2687                      1, 1, 3,
2688                      PhysicalDefUse.mask,
2689                      PhysicalDefUse.mask,
2690                      VM.BuildFor32Addr ? (31<<26 | 55<<1) : (31<<26 | 373<<1)),
2691     new ArchOperator((char)(224 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LAddr
2692                      ArchInstructionFormat.MIR_Load_format,
2693                      (load | ArchInstructionFormat.MIR_Load_traits),
2694                      1, 0, 4,
2695                      PhysicalDefUse.mask,
2696                      PhysicalDefUse.mask,
2697                      VM.BuildFor32Addr ? (32<<26) : (58<<26)),
2698     new ArchOperator((char)(225 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LAddrX
2699                      ArchInstructionFormat.MIR_Load_format,
2700                      (load | ArchInstructionFormat.MIR_Load_traits),
2701                      1, 0, 4,
2702                      PhysicalDefUse.mask,
2703                      PhysicalDefUse.mask,
2704                      VM.BuildFor32Addr ? (31<<26 | 23<<1) : (31<<26 | 21<<1)),
2705     new ArchOperator((char)(226 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LAddrU
2706                      ArchInstructionFormat.MIR_Load_format,
2707                      (load | ArchInstructionFormat.MIR_Load_traits),
2708                      1, 0, 4,
2709                      PhysicalDefUse.mask,
2710                      PhysicalDefUse.mask,
2711                      VM.BuildFor32Addr ? (33<<26) : (58<<26 | 1)),
2712     new ArchOperator((char)(227 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LAddrUX
2713                      ArchInstructionFormat.MIR_LoadUpdate_format,
2714                      (load | ArchInstructionFormat.MIR_LoadUpdate_traits),
2715                      1, 1, 3,
2716                      PhysicalDefUse.mask,
2717                      PhysicalDefUse.mask,
2718                      VM.BuildFor32Addr ? (31<<26 | 55<<1) : (31<<26 | 53<<1)),
2719     new ArchOperator((char)(228 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_LAddrARX
2720                      ArchInstructionFormat.MIR_Load_format,
2721                      (memAsLoad | memAsStore | load | acquire | ArchInstructionFormat.MIR_Load_traits),
2722                      1, 0, 4,
2723                      PhysicalDefUse.mask,
2724                      PhysicalDefUse.mask,
2725                      VM.BuildFor32Addr ? (31<<26 | 20<<1) : (31<<26 | 84<<1)),
2726     new ArchOperator((char)(229 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STAddr
2727                      ArchInstructionFormat.MIR_Store_format,
2728                      (store | ArchInstructionFormat.MIR_Store_traits),
2729                      0, 0, 5,
2730                      PhysicalDefUse.mask,
2731                      PhysicalDefUse.mask,
2732                      VM.BuildFor32Addr ? (36<<26) : (62<<26)),
2733     new ArchOperator((char)(230 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STAddrX
2734                      ArchInstructionFormat.MIR_Store_format,
2735                      (store | ArchInstructionFormat.MIR_Store_traits),
2736                      0, 0, 5,
2737                      PhysicalDefUse.mask,
2738                      PhysicalDefUse.mask,
2739                      VM.BuildFor32Addr ? (31<<26 | 151<<1) : (31<<26 | 149<<1)),
2740     new ArchOperator((char)(231 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STAddrU
2741                      ArchInstructionFormat.MIR_StoreUpdate_format,
2742                      (store | ArchInstructionFormat.MIR_StoreUpdate_traits),
2743                      0, 1, 4,
2744                      PhysicalDefUse.mask,
2745                      PhysicalDefUse.mask,
2746                      VM.BuildFor32Addr ? (37<<26) : (62<<26 | 1)),
2747     new ArchOperator((char)(232 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STAddrUX
2748                      ArchInstructionFormat.MIR_StoreUpdate_format,
2749                      (store | ArchInstructionFormat.MIR_StoreUpdate_traits),
2750                      0, 1, 4,
2751                      PhysicalDefUse.mask,
2752                      PhysicalDefUse.mask,
2753                      VM.BuildFor32Addr ? (31<<26 | 183<<1) : (31<<26 | 181<<1)),
2754     new ArchOperator((char)(233 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_STAddrCXr
2755                      ArchInstructionFormat.MIR_Store_format,
2756                      (memAsLoad | memAsStore | store | compare | ArchInstructionFormat.MIR_Store_traits),
2757                      0, 0, 5,
2758                      PhysicalDefUse.maskC0_32,
2759                      PhysicalDefUse.mask,
2760                      VM.BuildFor32Addr ? (31<<26 | 150<<1 | 1) : (31<<26 | 214<<1 | 1)),
2761     new ArchOperator((char)(234 + Operators.ARCH_INDEPENDENT_END_opcode),  //PPC_TAddr
2762                      ArchInstructionFormat.MIR_Trap_format,
2763                      (immedPEI | dynLink | ArchInstructionFormat.MIR_Trap_traits),
2764                      1, 0, 4,
2765                      PhysicalDefUse.mask,
2766                      PhysicalDefUse.mask,
2767                      VM.BuildFor32Addr ? (31<<26 | 4<<1) : (31<<26 | 68<<1)),
2768     new ArchOperator((char)(235 + Operators.ARCH_INDEPENDENT_END_opcode),  //MIR_END
2769                      ArchInstructionFormat.Unassigned_format,
2770                      (none),
2771                      0,0,0,
2772                      PhysicalDefUse.mask,
2773                      PhysicalDefUse.mask,
2774                      -1),
2775     null };
2776
2777  /**
2778   * Instruction template used by the assembler to
2779   * generate binary code.  Only valid on MIR operators.
2780   */
2781  private final int instTemplate;
2782 
2783  @Pure
2784  public static Operator lookupOpcode(int opcode) {
2785    return OperatorArray[opcode];
2786  }
2787
2788  /** @return array that holds all operators for this architecture */
2789  public static Operator[] operatorArray() {
2790    return OperatorArray;
2791  }
2792
2793  /**
2794   * Instruction template used by the assembler to
2795   * generate binary code.  Only valid on MIR operators.
2796   */
2797  @Override
2798  public int instTemplate() {
2799    return instTemplate;
2800  }
2801
2802  /* Constructor for HIR/LIR */
2803  private ArchOperator(char opcode, byte format, int traits,
2804                       int numDefs, int numDefUses, int numUses,
2805                       int iDefs, int iUses) {
2806    super(opcode, format, traits, numDefs, numDefUses, numUses, iDefs, iUses);
2807    this.instTemplate = 0;
2808  }
2809
2810  /* Constructor for MIR */
2811  private ArchOperator(char opcode, byte format, int traits,
2812                       int numDefs, int numDefUses, int numUses,
2813                       int iDefs, int iUses,
2814                       int iTemp) {
2815    super(opcode, format, traits, numDefs, numDefUses, numUses, iDefs, iUses);
2816    this.instTemplate = iTemp;
2817  }
2818}