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}