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 */
013package org.jikesrvm.compilers.opt.ir.ppc;
014
015import org.vmmagic.pragma.Pure;
016import org.jikesrvm.compilers.opt.ir.Operator;
017
018/**
019 * Class to store the string representations of different operators.<p>
020 * 
021 * THIS FILE IS MACHINE_GENERATED. DO NOT EDIT.
022 * See ArchOperatorNames.template, OperatorList.dat, etc
023 */
024public abstract class ArchOperatorNames {
025
026  /** Lookup for operator names based on their opcode */
027  private static final String[] operatorName = new String[] {
028      "get_caught_exception    ",
029      "set_caught_exception    ",
030      "new                     ",
031      "new_unresolved          ",
032      "newarray                ",
033      "newarray_unresolved     ",
034      "athrow                  ",
035      "checkcast               ",
036      "checkcast_notnull       ",
037      "checkcast_unresolved    ",
038      "must_implement_interface ",
039      "instanceof              ",
040      "instanceof_notnull      ",
041      "instanceof_unresolved   ",
042      "monitorenter            ",
043      "monitorexit             ",
044      "newobjmultiarray        ",
045      "getstatic               ",
046      "putstatic               ",
047      "getfield                ",
048      "putfield                ",
049      "int_zero_check          ",
050      "long_zero_check         ",
051      "bounds_check            ",
052      "objarray_store_check    ",
053      "objarray_store_check_notnull ",
054      "ig_patch_point          ",
055      "ig_class_test           ",
056      "ig_method_test          ",
057      "tableswitch             ",
058      "lookupswitch            ",
059      "int_aload               ",
060      "long_aload              ",
061      "float_aload             ",
062      "double_aload            ",
063      "ref_aload               ",
064      "ubyte_aload             ",
065      "byte_aload              ",
066      "ushort_aload            ",
067      "short_aload             ",
068      "int_astore              ",
069      "long_astore             ",
070      "float_astore            ",
071      "double_astore           ",
072      "ref_astore              ",
073      "byte_astore             ",
074      "short_astore            ",
075      "int_ifcmp               ",
076      "int_ifcmp2              ",
077      "long_ifcmp              ",
078      "float_ifcmp             ",
079      "double_ifcmp            ",
080      "ref_ifcmp               ",
081      "label                   ",
082      "bbend                   ",
083      "unint_begin             ",
084      "unint_end               ",
085      "fence                   ",
086      "read_ceiling            ",
087      "write_floor             ",
088      "phi                     ",
089      "split                   ",
090      "pi                      ",
091      "nop                     ",
092      "int_move                ",
093      "long_move               ",
094      "float_move              ",
095      "double_move             ",
096      "ref_move                ",
097      "guard_move              ",
098      "int_cond_move           ",
099      "long_cond_move          ",
100      "float_cond_move         ",
101      "double_cond_move        ",
102      "ref_cond_move           ",
103      "guard_cond_move         ",
104      "guard_combine           ",
105      "ref_add                 ",
106      "int_add                 ",
107      "long_add                ",
108      "float_add               ",
109      "double_add              ",
110      "ref_sub                 ",
111      "int_sub                 ",
112      "long_sub                ",
113      "float_sub               ",
114      "double_sub              ",
115      "int_mul                 ",
116      "long_mul                ",
117      "float_mul               ",
118      "double_mul              ",
119      "int_div                 ",
120      "long_div                ",
121      "float_div               ",
122      "double_div              ",
123      "int_rem                 ",
124      "long_rem                ",
125      "float_rem               ",
126      "double_rem              ",
127      "ref_neg                 ",
128      "int_neg                 ",
129      "long_neg                ",
130      "float_neg               ",
131      "double_neg              ",
132      "float_sqrt              ",
133      "double_sqrt             ",
134      "ref_shl                 ",
135      "int_shl                 ",
136      "long_shl                ",
137      "ref_shr                 ",
138      "int_shr                 ",
139      "long_shr                ",
140      "ref_ushr                ",
141      "int_ushr                ",
142      "long_ushr               ",
143      "ref_and                 ",
144      "int_and                 ",
145      "long_and                ",
146      "ref_or                  ",
147      "int_or                  ",
148      "long_or                 ",
149      "ref_xor                 ",
150      "int_xor                 ",
151      "ref_not                 ",
152      "int_not                 ",
153      "long_not                ",
154      "long_xor                ",
155      "int_2addrsigext         ",
156      "int_2addrze.ext         ",
157      "long_2addr              ",
158      "addr_2int               ",
159      "addr_2long              ",
160      "int_2long               ",
161      "int_2float              ",
162      "int_2double             ",
163      "long_2int               ",
164      "long_2float             ",
165      "long_2double            ",
166      "float_2int              ",
167      "float_2long             ",
168      "float_2double           ",
169      "double_2int             ",
170      "double_2long            ",
171      "double_2float           ",
172      "int_2byte               ",
173      "int_2ushort             ",
174      "int_2short              ",
175      "long_cmp                ",
176      "float_cmpl              ",
177      "float_cmpg              ",
178      "double_cmpl             ",
179      "double_cmpg             ",
180      "return                  ",
181      "null_check              ",
182      "goto                    ",
183      "boolean_not             ",
184      "boolean_cmp_int         ",
185      "boolean_cmp_addr        ",
186      "boolean_cmp_long        ",
187      "boolean_cmp_float       ",
188      "boolean_cmp_double      ",
189      "byte_load               ",
190      "ubyte_load              ",
191      "short_load              ",
192      "ushort_load             ",
193      "ref_load                ",
194      "ref_store               ",
195      "int_load                ",
196      "long_load               ",
197      "float_load              ",
198      "double_load             ",
199      "byte_store              ",
200      "short_store             ",
201      "int_store               ",
202      "long_store              ",
203      "float_store             ",
204      "double_store            ",
205      "prepare_int             ",
206      "prepare_addr            ",
207      "prepare_long            ",
208      "attempt_int             ",
209      "attempt_addr            ",
210      "attempt_long            ",
211      "call                    ",
212      "syscall                 ",
213      "yieldpoint_prologue     ",
214      "yieldpoint_epilogue     ",
215      "yieldpoint_backedge     ",
216      "yieldpoint_osr          ",
217      "osr_barrier             ",
218      "ir_prologue             ",
219      "resolve                 ",
220      "resolve_member          ",
221      "get_time_base           ",
222      "instrumented_event_counter ",
223      "trap_if                 ",
224      "trap                    ",
225      "float_as_int_bits       ",
226      "int_bits_as_float       ",
227      "double_as_long_bits     ",
228      "long_bits_as_double     ",
229      "arraylength             ",
230      "get_obj_tib             ",
231      "get_class_tib           ",
232      "get_type_from_tib       ",
233      "get_superclass_ids_from_tib ",
234      "get_does_implement_from_tib ",
235      "get_array_element_tib_from_tib ",
236      "lowtableswitch          ",
237      "address_constant        ",
238      "int_constant            ",
239      "long_constant           ",
240      "register                ",
241      "other_operand           ",
242      "null                    ",
243      "branch_target           ",
244  //////////////////////////
245  // END   Architecture Independent opcodes.
246  // BEGIN Architecture Dependent opcodes & MIR.
247  //////////////////////////
248      "dcbf                    ",
249      "dcbst                   ",
250      "dcbt                    ",
251      "dcbtst                  ",
252      "dcbz                    ",
253      "dcbzl                   ",
254      "icbi                    ",
255      "call_save_volatile      ",
256      "mir_start               ",
257      "mir_lowtableswitch      ",
258      "ppc_data_int            ",
259      "ppc_data_label          ",
260      "ppc_add                 ",
261      "ppc_add.                ",
262      "ppc_addc                ",
263      "ppc_adde                ",
264      "ppc_addze               ",
265      "ppc_addme               ",
266      "ppc_addic               ",
267      "ppc_addic.              ",
268      "ppc_subf                ",
269      "ppc_subf.               ",
270      "ppc_subfc               ",
271      "ppc_subfc.              ",
272      "ppc_subfic              ",
273      "ppc_subfe               ",
274      "ppc_subfze              ",
275      "ppc_subfme              ",
276      "ppc_and                 ",
277      "ppc_and.                ",
278      "ppc_andi.               ",
279      "ppc_andis.              ",
280      "ppc_nand                ",
281      "ppc_nand.               ",
282      "ppc_andc                ",
283      "ppc_andc.               ",
284      "ppc_or                  ",
285      "ppc_or.                 ",
286      "ppc_move                ",
287      "ppc_ori                 ",
288      "ppc_oris                ",
289      "ppc_nor                 ",
290      "ppc_nor.                ",
291      "ppc_orc                 ",
292      "ppc_orc.                ",
293      "ppc_xor                 ",
294      "ppc_xor.                ",
295      "ppc_xori                ",
296      "ppc_xoris               ",
297      "ppc_eqv                 ",
298      "ppc_eqv.                ",
299      "ppc_neg                 ",
300      "ppc_neg.                ",
301      "ppc_cntlzw              ",
302      "ppc_extsb               ",
303      "ppc_extsb.              ",
304      "ppc_extsh               ",
305      "ppc_extsh.              ",
306      "ppc_slw                 ",
307      "ppc_slw.                ",
308      "ppc_slwi                ",
309      "ppc_slwi.               ",
310      "ppc_srw                 ",
311      "ppc_srw.                ",
312      "ppc_srwi                ",
313      "ppc_srwi.               ",
314      "ppc_sraw                ",
315      "ppc_sraw.               ",
316      "ppc_srawi               ",
317      "ppc_srawi.              ",
318      "ppc_rlwinm              ",
319      "ppc_rlwinm.             ",
320      "ppc_rlwimi              ",
321      "ppc_rlwimi.             ",
322      "ppc_rlwnm               ",
323      "ppc_rlwnm.              ",
324      "ppc_b                   ",
325      "ppc_bl                  ",
326      "ppc_bl_sys              ",
327      "ppc_blr                 ",
328      "ppc_bctr                ",
329      "ppc_bctrl               ",
330      "ppc_bctrl_sys           ",
331      "ppc_bclr                ",
332      "ppc_blrl                ",
333      "ppc_bclrl               ",
334      "ppc_bc                  ",
335      "ppc_bcl                 ",
336      "ppc_bcond               ",
337      "ppc_bcond2              ",
338      "ppc_bcctr               ",
339      "ppc_bcc                 ",
340      "ppc_addi                ",
341      "ppc_addis               ",
342      "ppc_ldi                 ",
343      "ppc_ldis                ",
344      "ppc_cmp                 ",
345      "ppc_cmpi                ",
346      "ppc_cmpl                ",
347      "ppc_cmpli               ",
348      "ppc_crand               ",
349      "ppc_crandc              ",
350      "ppc_cror                ",
351      "ppc_crorc               ",
352      "ppc_fmr                 ",
353      "ppc_frsp                ",
354      "ppc_fctiw               ",
355      "ppc_fctiwz              ",
356      "ppc_fadd                ",
357      "ppc_fadds               ",
358      "ppc_fsqrt               ",
359      "ppc_fsqrts              ",
360      "ppc_fabs                ",
361      "ppc_fcmpo               ",
362      "ppc_fcmpu               ",
363      "ppc_fdiv                ",
364      "ppc_fdivs               ",
365      "ppc_divw                ",
366      "ppc_divwu               ",
367      "ppc_fmul                ",
368      "ppc_fmuls               ",
369      "ppc_fsel                ",
370      "ppc_fmadd               ",
371      "ppc_fmadds              ",
372      "ppc_fmsub               ",
373      "ppc_fmsubs              ",
374      "ppc_fnmadd              ",
375      "ppc_fnmadds             ",
376      "ppc_fnmsub              ",
377      "ppc_fnmsubs             ",
378      "ppc_mulli               ",
379      "ppc_mullw               ",
380      "ppc_mulhw               ",
381      "ppc_mulhwu              ",
382      "ppc_fneg                ",
383      "ppc_fsub                ",
384      "ppc_fsubs               ",
385      "ppc_lwz                 ",
386      "ppc_lwzu                ",
387      "ppc_lwzux               ",
388      "ppc_lwzx                ",
389      "ppc_lwarx               ",
390      "ppc_lbz                 ",
391      "ppc_lbzux               ",
392      "ppc_lbzx                ",
393      "ppc_lha                 ",
394      "ppc_lhax                ",
395      "ppc_lhz                 ",
396      "ppc_lhzx                ",
397      "ppc_lfd                 ",
398      "ppc_lfdx                ",
399      "ppc_lfs                 ",
400      "ppc_lfsx                ",
401      "ppc_lmw                 ",
402      "ppc_stw                 ",
403      "ppc_stwx                ",
404      "ppc_stwcx.              ",
405      "ppc_stwu                ",
406      "ppc_stb                 ",
407      "ppc_stbx                ",
408      "ppc_sth                 ",
409      "ppc_sthx                ",
410      "ppc_stfd                ",
411      "ppc_stfdx               ",
412      "ppc_stfdu               ",
413      "ppc_stfs                ",
414      "ppc_stfsx               ",
415      "ppc_stfsu               ",
416      "ppc_stmw                ",
417      "ppc_tw                  ",
418      "ppc_twi                 ",
419      "ppc_mfspr               ",
420      "ppc_mtspr               ",
421      "ppc_mftb                ",
422      "ppc_mftbu               ",
423      "ppc_hwsync              ",
424      "ppc_sync                ",
425      "ppc_isync               ",
426      "ppc_dcbf                ",
427      "ppc_dcbst               ",
428      "ppc_dcbt                ",
429      "ppc_dcbtst              ",
430      "ppc_dcbz                ",
431      "ppc_dcbzl               ",
432      "ppc_icbi                ",
433      "ppc64_extsw             ",
434      "ppc64_extsw.            ",
435      "ppc64_extzw             ",
436      "ppc64_rldicl            ",
437      "ppc64_rldicr            ",
438      "ppc64_sld               ",
439      "ppc64_sld.              ",
440      "ppc64_sldi              ",
441      "ppc64_srd               ",
442      "ppc64_srd.              ",
443      "ppc64_srad              ",
444      "ppc64_srad.             ",
445      "ppc64_sradi             ",
446      "ppc64_sradi.            ",
447      "ppc64_srdi              ",
448      "ppc64_rldimi            ",
449      "ppc64_rldimi.           ",
450      "ppc64_cmp               ",
451      "ppc64_cmpi              ",
452      "ppc64_cmpl              ",
453      "ppc64_cmpli             ",
454      "ppc64_fcfid             ",
455      "ppc64_fctidz            ",
456      "ppc64_divd              ",
457      "ppc64_mulld             ",
458      "ppc64_ld                ",
459      "ppc64_ldx               ",
460      "ppc64_std               ",
461      "ppc64_stdx              ",
462      "ppc64_td                ",
463      "ppc64_tdi               ",
464      "ppc_cntlzadd.           ",
465      "ppc_sraadd.i            ",
466      "ppc_sradd.i             ",
467      "ppc64_lwa               ",
468      "ppc_lint                ",
469      "ppc64_lwax              ",
470      "ppc_lintx               ",
471      "ppc_lintux              ",
472      "ppc_ladd.               ",
473      "ppc_ladd.x              ",
474      "ppc_ladd.u              ",
475      "ppc_ladd.ux             ",
476      "ppc_ladd.arx            ",
477      "ppc_stadd.              ",
478      "ppc_stadd.x             ",
479      "ppc_stadd.u             ",
480      "ppc_stadd.ux            ",
481      "ppc_stadd.cx.           ",
482      "ppc_tadd.               ",
483      "mir_end                 ",
484      "<UNKNOWN OPERATOR>"
485    };
486
487  /**
488   * Looks up name of operator
489   * @param operator the operator to look up
490   * @return operator's name or a string indicating
491   *  that the operator isn't known
492   */
493  @Pure
494  public static String toString(Operator operator) {
495     try {
496       return operatorName[operator.getOpcode()];
497     }
498     catch (ArrayIndexOutOfBoundsException e) {
499       return operatorName[operatorName.length-1];
500     }
501  }
502}