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 package org.jikesrvm.compilers.opt.lir2mir.ia32; 014 015 import org.jikesrvm.compilers.opt.ir.ia32.*; 016 import org.jikesrvm.classloader.*; 017 018 import org.jikesrvm.*; 019 import org.jikesrvm.runtime.ArchEntrypoints; 020 import org.jikesrvm.compilers.opt.ir.*; 021 import org.jikesrvm.compilers.opt.ir.operand.*; 022 import org.jikesrvm.compilers.opt.ir.operand.ia32.*; 023 import org.jikesrvm.compilers.opt.lir2mir.BURS; 024 import org.jikesrvm.compilers.opt.OptimizingCompilerException; 025 import org.jikesrvm.compilers.opt.util.Bits; //NOPMD 026 import org.jikesrvm.ArchitectureSpecificOpt.BURS_TreeNode; 027 028 import org.vmmagic.unboxed.*; 029 030 /** 031 * Machine-specific instruction selection rules. Program generated. 032 * 033 * Note: some of the functions have been taken and modified 034 * from the file gen.c, from the LCC compiler. 035 * See $RVM_ROOT/rvm/src-generated/opt-burs/jburg/COPYRIGHT file for copyright restrictions. 036 * 037 * @see BURS 038 * 039 * NOTE: Program generated file, do not edit! 040 */ 041 @SuppressWarnings("unused") // Machine generated code is hard to get perfect 042 public class BURS_STATE extends BURS_Helpers 043 implements Operators, BURS_Definitions { 044 045 static final byte NOFLAGS = 0x00; 046 static final byte EMIT_INSTRUCTION = 0x01; 047 public static final byte LEFT_CHILD_FIRST = 0x02; 048 public static final byte RIGHT_CHILD_FIRST = 0x04; 049 050 public BURS_STATE(BURS b) { 051 super(b); 052 } 053 054 /*****************************************************************/ 055 /* */ 056 /* BURS TEMPLATE */ 057 /* */ 058 /*****************************************************************/ 059 060 /* accessors used by BURS */ 061 private static BURS_TreeNode STATE(BURS_TreeNode a) { return a; } 062 063 /*********************************************************************** 064 * 065 * This file contains BURG utilities 066 * 067 * Note: some of the functions have been taken and modified 068 * from the file gen.c, from the LCC compiler. 069 * 070 ************************************************************************/ 071 void trace(BURS_TreeNode p, int rule, int cost, int bestcost) { 072 if (BURS.DEBUG) { 073 VM.sysWrite(p+" matched "+BURS_Debug.string[rule]+" with cost "+ 074 cost+"vs. "+bestcost); 075 } 076 } 077 078 /** 079 * This function will dump the tree 080 */ 081 public static void dumpTree(BURS_TreeNode p) { 082 if (BURS.DEBUG) { 083 VM.sysWrite(dumpTree("\n",p,1)); 084 } 085 } 086 087 public static String dumpTree(String out, BURS_TreeNode p, int indent) { 088 if (p == null) return out; 089 for (int i=0; i<indent; i++) 090 out = out + " "; 091 out = out + p; 092 out = out + '\n'; 093 if (p.child1 != null) { 094 indent++; 095 out = out + dumpTree("",p.child1,indent); 096 if (p.child2 != null) { 097 out = out + dumpTree("",p.child2,indent); 098 } 099 } 100 return out; 101 } 102 103 /** 104 * This function will dump the cover of a tree, i.e. the rules 105 * that cover the tree with a minimal cost. 106 */ 107 public static void dumpCover(BURS_TreeNode p, byte goalnt, int indent){ 108 if (BURS.DEBUG) { 109 if (p == null) return; 110 int rule = STATE(p).rule(goalnt); 111 VM.sysWrite(STATE(p).getCost(goalnt)+"\t"); 112 for (int i = 0; i < indent; i++) 113 VM.sysWrite(' '); 114 VM.sysWrite(BURS_Debug.string[rule]+"\n"); 115 for (int i = 0; i < nts[rule].length; i++) 116 dumpCover(kids(p,rule,i), nts[rule][i], indent + 1); 117 } 118 } 119 120 // caution: MARK should be used in single threaded mode, 121 public static void mark(BURS_TreeNode p, byte goalnt) { 122 if (p == null) return; 123 int rule = STATE(p).rule(goalnt); 124 byte act = action[rule]; 125 if ((act & EMIT_INSTRUCTION) != 0) { 126 p.setNonTerminal(goalnt); 127 } 128 if (rule == 0) { 129 throw new OptimizingCompilerException("BURS","rule missing in ", 130 p.getInstruction().toString(), dumpTree("",p,1)); 131 } 132 mark_kids(p,rule); 133 } 134 /* 135 * This file is part of the Jikes RVM project (http://jikesrvm.org). 136 * 137 * This file is licensed to You under the Eclipse Public License (EPL); 138 * You may not use this file except in compliance with the License. You 139 * may obtain a copy of the License at 140 * 141 * http://www.opensource.org/licenses/eclipse-1.0.php 142 * 143 * See the COPYRIGHT.txt file distributed with this work for information 144 * regarding copyright ownership. 145 */ 146 //ir.brg 147 148 /** 149 * Generate from ir.template and assembled rules files. 150 */ 151 private static final byte[] nts_0 = { r_NT, }; 152 private static final byte[] nts_1 = { }; 153 private static final byte[] nts_2 = { czr_NT, }; 154 private static final byte[] nts_3 = { szpr_NT, }; 155 private static final byte[] nts_4 = { riv_NT, }; 156 private static final byte[] nts_5 = { any_NT, any_NT, }; 157 private static final byte[] nts_6 = { riv_NT, riv_NT, }; 158 private static final byte[] nts_7 = { sload8_NT, }; 159 private static final byte[] nts_8 = { uload8_NT, }; 160 private static final byte[] nts_9 = { sload16_NT, }; 161 private static final byte[] nts_10 = { uload16_NT, }; 162 private static final byte[] nts_11 = { load16_NT, }; 163 private static final byte[] nts_12 = { load32_NT, }; 164 private static final byte[] nts_13 = { load16_32_NT, }; 165 private static final byte[] nts_14 = { load8_NT, }; 166 private static final byte[] nts_15 = { address1reg_NT, }; 167 private static final byte[] nts_16 = { address1scaledreg_NT, }; 168 private static final byte[] nts_17 = { r_NT, r_NT, }; 169 private static final byte[] nts_18 = { r_NT, address1scaledreg_NT, }; 170 private static final byte[] nts_19 = { address1scaledreg_NT, r_NT, }; 171 private static final byte[] nts_20 = { address1scaledreg_NT, address1reg_NT, }; 172 private static final byte[] nts_21 = { address1reg_NT, address1scaledreg_NT, }; 173 private static final byte[] nts_22 = { address_NT, }; 174 private static final byte[] nts_23 = { load32_NT, riv_NT, }; 175 private static final byte[] nts_24 = { riv_NT, load32_NT, }; 176 private static final byte[] nts_25 = { riv_NT, riv_NT, riv_NT, riv_NT, }; 177 private static final byte[] nts_26 = { r_NT, riv_NT, }; 178 private static final byte[] nts_27 = { cz_NT, }; 179 private static final byte[] nts_28 = { szp_NT, }; 180 private static final byte[] nts_29 = { bittest_NT, }; 181 private static final byte[] nts_30 = { boolcmp_NT, }; 182 private static final byte[] nts_31 = { r_NT, load32_NT, }; 183 private static final byte[] nts_32 = { boolcmp_NT, riv_NT, riv_NT, }; 184 private static final byte[] nts_33 = { rlv_NT, rlv_NT, }; 185 private static final byte[] nts_34 = { r_NT, riv_NT, any_NT, }; 186 private static final byte[] nts_35 = { r_NT, any_NT, }; 187 private static final byte[] nts_36 = { load8_NT, any_NT, }; 188 private static final byte[] nts_37 = { uload8_NT, riv_NT, any_NT, }; 189 private static final byte[] nts_38 = { riv_NT, uload8_NT, any_NT, }; 190 private static final byte[] nts_39 = { sload16_NT, any_NT, }; 191 private static final byte[] nts_40 = { load32_NT, riv_NT, any_NT, }; 192 private static final byte[] nts_41 = { riv_NT, load32_NT, any_NT, }; 193 private static final byte[] nts_42 = { boolcmp_NT, any_NT, }; 194 private static final byte[] nts_43 = { bittest_NT, any_NT, }; 195 private static final byte[] nts_44 = { cz_NT, any_NT, }; 196 private static final byte[] nts_45 = { szp_NT, any_NT, }; 197 private static final byte[] nts_46 = { r_NT, rlv_NT, any_NT, }; 198 private static final byte[] nts_47 = { riv_NT, riv_NT, riv_NT, riv_NT, riv_NT, }; 199 private static final byte[] nts_48 = { riv_NT, r_NT, }; 200 private static final byte[] nts_49 = { load32_NT, r_NT, }; 201 private static final byte[] nts_50 = { riv_NT, riv_NT, r_NT, riv_NT, riv_NT, }; 202 private static final byte[] nts_51 = { r_NT, r_NT, r_NT, r_NT, }; 203 private static final byte[] nts_52 = { load8_16_32_NT, riv_NT, }; 204 private static final byte[] nts_53 = { riv_NT, load8_16_32_NT, }; 205 private static final byte[] nts_54 = { r_NT, rlv_NT, }; 206 private static final byte[] nts_55 = { rlv_NT, riv_NT, }; 207 private static final byte[] nts_56 = { load8_16_32_NT, }; 208 private static final byte[] nts_57 = { r_NT, riv_NT, riv_NT, }; 209 private static final byte[] nts_58 = { load64_NT, }; 210 private static final byte[] nts_59 = { riv_NT, address1scaledreg_NT, }; 211 private static final byte[] nts_60 = { address1scaledreg_NT, riv_NT, }; 212 private static final byte[] nts_61 = { r_NT, address1scaledreg_NT, riv_NT, riv_NT, }; 213 private static final byte[] nts_62 = { address1scaledreg_NT, r_NT, riv_NT, riv_NT, }; 214 private static final byte[] nts_63 = { address1scaledreg_NT, address1reg_NT, riv_NT, riv_NT, }; 215 private static final byte[] nts_64 = { address1reg_NT, address1scaledreg_NT, riv_NT, riv_NT, }; 216 private static final byte[] nts_65 = { address_NT, riv_NT, riv_NT, }; 217 private static final byte[] nts_66 = { riv_NT, riv_NT, rlv_NT, rlv_NT, }; 218 private static final byte[] nts_67 = { riv_NT, riv_NT, riv_NT, }; 219 private static final byte[] nts_68 = { load8_NT, riv_NT, riv_NT, }; 220 private static final byte[] nts_69 = { load16_NT, riv_NT, riv_NT, }; 221 private static final byte[] nts_70 = { riv_NT, riv_NT, address1scaledreg_NT, }; 222 private static final byte[] nts_71 = { riv_NT, address1scaledreg_NT, riv_NT, }; 223 private static final byte[] nts_72 = { riv_NT, address1scaledreg_NT, address1reg_NT, }; 224 private static final byte[] nts_73 = { riv_NT, address1reg_NT, address1scaledreg_NT, }; 225 private static final byte[] nts_74 = { riv_NT, address_NT, }; 226 private static final byte[] nts_75 = { uload8_NT, r_NT, }; 227 private static final byte[] nts_76 = { r_NT, uload8_NT, }; 228 private static final byte[] nts_77 = { any_NT, }; 229 private static final byte[] nts_78 = { riv_NT, riv_NT, any_NT, }; 230 private static final byte[] nts_79 = { r_NT, float_load_NT, }; 231 private static final byte[] nts_80 = { float_load_NT, r_NT, }; 232 private static final byte[] nts_81 = { r_NT, double_load_NT, }; 233 private static final byte[] nts_82 = { double_load_NT, r_NT, }; 234 private static final byte[] nts_83 = { float_load_NT, }; 235 private static final byte[] nts_84 = { double_load_NT, }; 236 private static final byte[] nts_85 = { rlv_NT, }; 237 private static final byte[] nts_86 = { r_NT, r_NT, any_NT, }; 238 private static final byte[] nts_87 = { r_NT, float_load_NT, any_NT, }; 239 private static final byte[] nts_88 = { r_NT, double_load_NT, any_NT, }; 240 private static final byte[] nts_89 = { float_load_NT, r_NT, any_NT, }; 241 private static final byte[] nts_90 = { double_load_NT, r_NT, any_NT, }; 242 private static final byte[] nts_91 = { r_NT, r_NT, r_NT, float_load_NT, }; 243 private static final byte[] nts_92 = { r_NT, r_NT, r_NT, double_load_NT, }; 244 private static final byte[] nts_93 = { r_NT, r_NT, float_load_NT, r_NT, }; 245 private static final byte[] nts_94 = { r_NT, r_NT, double_load_NT, r_NT, }; 246 private static final byte[] nts_95 = { r_NT, r_NT, r_NT, }; 247 private static final byte[] nts_96 = { load64_NT, riv_NT, riv_NT, }; 248 249 private static final byte[][] nts = { 250 null, /* 0 */ 251 nts_0, // 1 252 nts_1, // 2 253 nts_2, // 3 254 nts_2, // 4 255 nts_3, // 5 256 nts_3, // 6 257 nts_0, // 7 258 nts_1, // 8 259 nts_0, // 9 260 nts_1, // 10 261 nts_1, // 11 262 nts_4, // 12 263 nts_1, // 13 264 nts_1, // 14 265 nts_5, // 15 266 nts_6, // 16 267 nts_6, // 17 268 nts_6, // 18 269 nts_6, // 19 270 nts_7, // 20 271 nts_8, // 21 272 nts_6, // 22 273 nts_6, // 23 274 nts_6, // 24 275 nts_6, // 25 276 nts_9, // 26 277 nts_10, // 27 278 nts_6, // 28 279 nts_6, // 29 280 nts_11, // 30 281 nts_12, // 31 282 nts_13, // 32 283 nts_14, // 33 284 nts_6, // 34 285 nts_6, // 35 286 nts_15, // 36 287 nts_16, // 37 288 nts_0, // 38 289 nts_0, // 39 290 nts_0, // 40 291 nts_17, // 41 292 nts_15, // 42 293 nts_16, // 43 294 nts_18, // 44 295 nts_19, // 45 296 nts_16, // 46 297 nts_20, // 47 298 nts_21, // 48 299 nts_19, // 49 300 nts_18, // 50 301 nts_20, // 51 302 nts_21, // 52 303 nts_22, // 53 304 nts_22, // 54 305 nts_1, // 55 306 nts_1, // 56 307 nts_1, // 57 308 nts_1, // 58 309 nts_1, // 59 310 nts_1, // 60 311 nts_0, // 61 312 nts_1, // 62 313 nts_1, // 63 314 nts_1, // 64 315 nts_1, // 65 316 nts_4, // 66 317 nts_1, // 67 318 nts_1, // 68 319 nts_0, // 69 320 nts_1, // 70 321 nts_1, // 71 322 nts_0, // 72 323 nts_0, // 73 324 nts_17, // 74 325 nts_23, // 75 326 nts_24, // 76 327 nts_0, // 77 328 nts_25, // 78 329 nts_25, // 79 330 nts_26, // 80 331 nts_26, // 81 332 nts_0, // 82 333 nts_0, // 83 334 nts_0, // 84 335 nts_12, // 85 336 nts_0, // 86 337 nts_12, // 87 338 nts_27, // 88 339 nts_27, // 89 340 nts_28, // 90 341 nts_28, // 91 342 nts_29, // 92 343 nts_29, // 93 344 nts_30, // 94 345 nts_30, // 95 346 nts_30, // 96 347 nts_30, // 97 348 nts_23, // 98 349 nts_23, // 99 350 nts_31, // 100 351 nts_24, // 101 352 nts_32, // 102 353 nts_32, // 103 354 nts_33, // 104 355 nts_33, // 105 356 nts_34, // 106 357 nts_35, // 107 358 nts_0, // 108 359 nts_12, // 109 360 nts_0, // 110 361 nts_12, // 111 362 nts_36, // 112 363 nts_37, // 113 364 nts_38, // 114 365 nts_39, // 115 366 nts_40, // 116 367 nts_41, // 117 368 nts_42, // 118 369 nts_42, // 119 370 nts_43, // 120 371 nts_44, // 121 372 nts_45, // 122 373 nts_46, // 123 374 nts_26, // 124 375 nts_26, // 125 376 nts_24, // 126 377 nts_23, // 127 378 nts_47, // 128 379 nts_47, // 129 380 nts_47, // 130 381 nts_47, // 131 382 nts_48, // 132 383 nts_48, // 133 384 nts_49, // 134 385 nts_24, // 135 386 nts_23, // 136 387 nts_47, // 137 388 nts_47, // 138 389 nts_47, // 139 390 nts_47, // 140 391 nts_6, // 141 392 nts_24, // 142 393 nts_23, // 143 394 nts_6, // 144 395 nts_24, // 145 396 nts_6, // 146 397 nts_24, // 147 398 nts_0, // 148 399 nts_25, // 149 400 nts_25, // 150 401 nts_48, // 151 402 nts_6, // 152 403 nts_0, // 153 404 nts_0, // 154 405 nts_0, // 155 406 nts_50, // 156 407 nts_25, // 157 408 nts_50, // 158 409 nts_25, // 159 410 nts_48, // 160 411 nts_6, // 161 412 nts_4, // 162 413 nts_50, // 163 414 nts_25, // 164 415 nts_50, // 165 416 nts_25, // 166 417 nts_48, // 167 418 nts_6, // 168 419 nts_4, // 169 420 nts_50, // 170 421 nts_25, // 171 422 nts_50, // 172 423 nts_25, // 173 424 nts_17, // 174 425 nts_17, // 175 426 nts_17, // 176 427 nts_17, // 177 428 nts_51, // 178 429 nts_51, // 179 430 nts_51, // 180 431 nts_51, // 181 432 nts_6, // 182 433 nts_26, // 183 434 nts_24, // 184 435 nts_23, // 185 436 nts_52, // 186 437 nts_53, // 187 438 nts_47, // 188 439 nts_47, // 189 440 nts_47, // 190 441 nts_47, // 191 442 nts_6, // 192 443 nts_24, // 193 444 nts_23, // 194 445 nts_47, // 195 446 nts_47, // 196 447 nts_47, // 197 448 nts_47, // 198 449 nts_6, // 199 450 nts_24, // 200 451 nts_23, // 201 452 nts_47, // 202 453 nts_47, // 203 454 nts_47, // 204 455 nts_47, // 205 456 nts_0, // 206 457 nts_25, // 207 458 nts_25, // 208 459 nts_54, // 209 460 nts_33, // 210 461 nts_33, // 211 462 nts_0, // 212 463 nts_55, // 213 464 nts_55, // 214 465 nts_55, // 215 466 nts_55, // 216 467 nts_55, // 217 468 nts_55, // 218 469 nts_33, // 219 470 nts_33, // 220 471 nts_54, // 221 472 nts_0, // 222 473 nts_0, // 223 474 nts_56, // 224 475 nts_57, // 225 476 nts_57, // 226 477 nts_0, // 227 478 nts_13, // 228 479 nts_57, // 229 480 nts_57, // 230 481 nts_0, // 231 482 nts_13, // 232 483 nts_57, // 233 484 nts_57, // 234 485 nts_0, // 235 486 nts_12, // 236 487 nts_0, // 237 488 nts_12, // 238 489 nts_0, // 239 490 nts_58, // 240 491 nts_0, // 241 492 nts_12, // 242 493 nts_0, // 243 494 nts_57, // 244 495 nts_57, // 245 496 nts_58, // 246 497 nts_0, // 247 498 nts_0, // 248 499 nts_58, // 249 500 nts_58, // 250 501 nts_58, // 251 502 nts_58, // 252 503 nts_4, // 253 504 nts_2, // 254 505 nts_27, // 255 506 nts_3, // 256 507 nts_28, // 257 508 nts_15, // 258 509 nts_16, // 259 510 nts_22, // 260 511 nts_7, // 261 512 nts_8, // 262 513 nts_14, // 263 514 nts_9, // 264 515 nts_10, // 265 516 nts_11, // 266 517 nts_12, // 267 518 nts_58, // 268 519 nts_0, // 269 520 nts_1, // 270 521 nts_1, // 271 522 nts_6, // 272 523 nts_6, // 273 524 nts_6, // 274 525 nts_6, // 275 526 nts_56, // 276 527 nts_56, // 277 528 nts_56, // 278 529 nts_56, // 279 530 nts_6, // 280 531 nts_6, // 281 532 nts_6, // 282 533 nts_6, // 283 534 nts_13, // 284 535 nts_13, // 285 536 nts_13, // 286 537 nts_13, // 287 538 nts_6, // 288 539 nts_59, // 289 540 nts_60, // 290 541 nts_20, // 291 542 nts_21, // 292 543 nts_22, // 293 544 nts_6, // 294 545 nts_6, // 295 546 nts_6, // 296 547 nts_6, // 297 548 nts_18, // 298 549 nts_19, // 299 550 nts_20, // 300 551 nts_21, // 301 552 nts_22, // 302 553 nts_22, // 303 554 nts_6, // 304 555 nts_25, // 305 556 nts_61, // 306 557 nts_62, // 307 558 nts_63, // 308 559 nts_64, // 309 560 nts_65, // 310 561 nts_65, // 311 562 nts_25, // 312 563 nts_61, // 313 564 nts_62, // 314 565 nts_63, // 315 566 nts_64, // 316 567 nts_65, // 317 568 nts_65, // 318 569 nts_25, // 319 570 nts_61, // 320 571 nts_62, // 321 572 nts_63, // 322 573 nts_64, // 323 574 nts_65, // 324 575 nts_65, // 325 576 nts_66, // 326 577 nts_67, // 327 578 nts_68, // 328 579 nts_67, // 329 580 nts_68, // 330 581 nts_67, // 331 582 nts_69, // 332 583 nts_67, // 333 584 nts_69, // 334 585 nts_67, // 335 586 nts_70, // 336 587 nts_71, // 337 588 nts_72, // 338 589 nts_73, // 339 590 nts_74, // 340 591 nts_67, // 341 592 nts_57, // 342 593 nts_6, // 343 594 nts_57, // 344 595 nts_6, // 345 596 nts_26, // 346 597 nts_0, // 347 598 nts_14, // 348 599 nts_75, // 349 600 nts_76, // 350 601 nts_9, // 351 602 nts_23, // 352 603 nts_31, // 353 604 nts_30, // 354 605 nts_30, // 355 606 nts_27, // 356 607 nts_28, // 357 608 nts_29, // 358 609 nts_26, // 359 610 nts_23, // 360 611 nts_24, // 361 612 nts_33, // 362 613 nts_33, // 363 614 nts_1, // 364 615 nts_0, // 365 616 nts_1, // 366 617 nts_1, // 367 618 nts_1, // 368 619 nts_1, // 369 620 nts_1, // 370 621 nts_1, // 371 622 nts_0, // 372 623 nts_1, // 373 624 nts_35, // 374 625 nts_77, // 375 626 nts_78, // 376 627 nts_77, // 377 628 nts_35, // 378 629 nts_78, // 379 630 nts_77, // 380 631 nts_1, // 381 632 nts_5, // 382 633 nts_17, // 383 634 nts_49, // 384 635 nts_0, // 385 636 nts_17, // 386 637 nts_49, // 387 638 nts_0, // 388 639 nts_48, // 389 640 nts_31, // 390 641 nts_17, // 391 642 nts_49, // 392 643 nts_17, // 393 644 nts_79, // 394 645 nts_80, // 395 646 nts_17, // 396 647 nts_81, // 397 648 nts_82, // 398 649 nts_17, // 399 650 nts_79, // 400 651 nts_17, // 401 652 nts_81, // 402 653 nts_17, // 403 654 nts_79, // 404 655 nts_80, // 405 656 nts_17, // 406 657 nts_81, // 407 658 nts_82, // 408 659 nts_17, // 409 660 nts_79, // 410 661 nts_17, // 411 662 nts_81, // 412 663 nts_0, // 413 664 nts_0, // 414 665 nts_0, // 415 666 nts_0, // 416 667 nts_17, // 417 668 nts_17, // 418 669 nts_0, // 419 670 nts_0, // 420 671 nts_0, // 421 672 nts_0, // 422 673 nts_6, // 423 674 nts_6, // 424 675 nts_6, // 425 676 nts_6, // 426 677 nts_6, // 427 678 nts_6, // 428 679 nts_6, // 429 680 nts_6, // 430 681 nts_57, // 431 682 nts_57, // 432 683 nts_57, // 433 684 nts_57, // 434 685 nts_4, // 435 686 nts_12, // 436 687 nts_4, // 437 688 nts_12, // 438 689 nts_0, // 439 690 nts_83, // 440 691 nts_0, // 441 692 nts_84, // 442 693 nts_0, // 443 694 nts_0, // 444 695 nts_0, // 445 696 nts_0, // 446 697 nts_0, // 447 698 nts_83, // 448 699 nts_0, // 449 700 nts_84, // 450 701 nts_4, // 451 702 nts_12, // 452 703 nts_85, // 453 704 nts_58, // 454 705 nts_1, // 455 706 nts_1, // 456 707 nts_1, // 457 708 nts_1, // 458 709 nts_17, // 459 710 nts_79, // 460 711 nts_80, // 461 712 nts_17, // 462 713 nts_81, // 463 714 nts_82, // 464 715 nts_86, // 465 716 nts_87, // 466 717 nts_88, // 467 718 nts_89, // 468 719 nts_90, // 469 720 nts_86, // 470 721 nts_91, // 471 722 nts_92, // 472 723 nts_93, // 473 724 nts_94, // 474 725 nts_87, // 475 726 nts_88, // 476 727 nts_95, // 477 728 nts_95, // 478 729 nts_95, // 479 730 nts_95, // 480 731 nts_95, // 481 732 nts_95, // 482 733 nts_95, // 483 734 nts_95, // 484 735 nts_96, // 485 736 nts_96, // 486 737 }; 738 739 /*static final byte arity[] = { 740 0, // 0=GET_CAUGHT_EXCEPTION 741 1, // 1=SET_CAUGHT_EXCEPTION 742 -1, // 2=NEW 743 -1, // 3=NEW_UNRESOLVED 744 -1, // 4=NEWARRAY 745 -1, // 5=NEWARRAY_UNRESOLVED 746 -1, // 6=ATHROW 747 -1, // 7=CHECKCAST 748 -1, // 8=CHECKCAST_NOTNULL 749 -1, // 9=CHECKCAST_UNRESOLVED 750 -1, // 10=MUST_IMPLEMENT_INTERFACE 751 -1, // 11=INSTANCEOF 752 -1, // 12=INSTANCEOF_NOTNULL 753 -1, // 13=INSTANCEOF_UNRESOLVED 754 -1, // 14=MONITORENTER 755 -1, // 15=MONITOREXIT 756 -1, // 16=NEWOBJMULTIARRAY 757 -1, // 17=GETSTATIC 758 -1, // 18=PUTSTATIC 759 -1, // 19=GETFIELD 760 -1, // 20=PUTFIELD 761 -1, // 21=INT_ZERO_CHECK 762 -1, // 22=LONG_ZERO_CHECK 763 -1, // 23=BOUNDS_CHECK 764 -1, // 24=OBJARRAY_STORE_CHECK 765 -1, // 25=OBJARRAY_STORE_CHECK_NOTNULL 766 0, // 26=IG_PATCH_POINT 767 -1, // 27=IG_CLASS_TEST 768 -1, // 28=IG_METHOD_TEST 769 -1, // 29=TABLESWITCH 770 -1, // 30=LOOKUPSWITCH 771 2, // 31=INT_ALOAD 772 2, // 32=LONG_ALOAD 773 2, // 33=FLOAT_ALOAD 774 2, // 34=DOUBLE_ALOAD 775 -1, // 35=REF_ALOAD 776 2, // 36=UBYTE_ALOAD 777 2, // 37=BYTE_ALOAD 778 2, // 38=USHORT_ALOAD 779 2, // 39=SHORT_ALOAD 780 2, // 40=INT_ASTORE 781 2, // 41=LONG_ASTORE 782 2, // 42=FLOAT_ASTORE 783 2, // 43=DOUBLE_ASTORE 784 -1, // 44=REF_ASTORE 785 2, // 45=BYTE_ASTORE 786 2, // 46=SHORT_ASTORE 787 2, // 47=INT_IFCMP 788 2, // 48=INT_IFCMP2 789 2, // 49=LONG_IFCMP 790 2, // 50=FLOAT_IFCMP 791 2, // 51=DOUBLE_IFCMP 792 -1, // 52=REF_IFCMP 793 -1, // 53=LABEL 794 -1, // 54=BBEND 795 0, // 55=UNINT_BEGIN 796 0, // 56=UNINT_END 797 0, // 57=FENCE 798 0, // 58=READ_CEILING 799 0, // 59=WRITE_FLOOR 800 -1, // 60=PHI 801 -1, // 61=SPLIT 802 -1, // 62=PI 803 0, // 63=NOP 804 1, // 64=INT_MOVE 805 1, // 65=LONG_MOVE 806 1, // 66=FLOAT_MOVE 807 1, // 67=DOUBLE_MOVE 808 -1, // 68=REF_MOVE 809 0, // 69=GUARD_MOVE 810 -1, // 70=INT_COND_MOVE 811 -1, // 71=LONG_COND_MOVE 812 -1, // 72=FLOAT_COND_MOVE 813 -1, // 73=DOUBLE_COND_MOVE 814 -1, // 74=REF_COND_MOVE 815 -1, // 75=GUARD_COND_MOVE 816 0, // 76=GUARD_COMBINE 817 -1, // 77=REF_ADD 818 2, // 78=INT_ADD 819 2, // 79=LONG_ADD 820 2, // 80=FLOAT_ADD 821 2, // 81=DOUBLE_ADD 822 -1, // 82=REF_SUB 823 2, // 83=INT_SUB 824 2, // 84=LONG_SUB 825 2, // 85=FLOAT_SUB 826 2, // 86=DOUBLE_SUB 827 2, // 87=INT_MUL 828 2, // 88=LONG_MUL 829 2, // 89=FLOAT_MUL 830 2, // 90=DOUBLE_MUL 831 2, // 91=INT_DIV 832 -1, // 92=LONG_DIV 833 2, // 93=FLOAT_DIV 834 2, // 94=DOUBLE_DIV 835 2, // 95=INT_REM 836 -1, // 96=LONG_REM 837 2, // 97=FLOAT_REM 838 2, // 98=DOUBLE_REM 839 -1, // 99=REF_NEG 840 1, // 100=INT_NEG 841 1, // 101=LONG_NEG 842 1, // 102=FLOAT_NEG 843 1, // 103=DOUBLE_NEG 844 1, // 104=FLOAT_SQRT 845 1, // 105=DOUBLE_SQRT 846 -1, // 106=REF_SHL 847 2, // 107=INT_SHL 848 2, // 108=LONG_SHL 849 -1, // 109=REF_SHR 850 2, // 110=INT_SHR 851 2, // 111=LONG_SHR 852 -1, // 112=REF_USHR 853 2, // 113=INT_USHR 854 2, // 114=LONG_USHR 855 -1, // 115=REF_AND 856 2, // 116=INT_AND 857 2, // 117=LONG_AND 858 -1, // 118=REF_OR 859 2, // 119=INT_OR 860 2, // 120=LONG_OR 861 -1, // 121=REF_XOR 862 2, // 122=INT_XOR 863 -1, // 123=REF_NOT 864 1, // 124=INT_NOT 865 1, // 125=LONG_NOT 866 2, // 126=LONG_XOR 867 -1, // 127=INT_2ADDRSigExt 868 -1, // 128=INT_2ADDRZerExt 869 -1, // 129=LONG_2ADDR 870 -1, // 130=ADDR_2INT 871 1, // 131=ADDR_2LONG 872 1, // 132=INT_2LONG 873 1, // 133=INT_2FLOAT 874 1, // 134=INT_2DOUBLE 875 1, // 135=LONG_2INT 876 1, // 136=LONG_2FLOAT 877 1, // 137=LONG_2DOUBLE 878 1, // 138=FLOAT_2INT 879 1, // 139=FLOAT_2LONG 880 1, // 140=FLOAT_2DOUBLE 881 1, // 141=DOUBLE_2INT 882 1, // 142=DOUBLE_2LONG 883 1, // 143=DOUBLE_2FLOAT 884 1, // 144=INT_2BYTE 885 1, // 145=INT_2USHORT 886 1, // 146=INT_2SHORT 887 2, // 147=LONG_CMP 888 -1, // 148=FLOAT_CMPL 889 -1, // 149=FLOAT_CMPG 890 -1, // 150=DOUBLE_CMPL 891 -1, // 151=DOUBLE_CMPG 892 1, // 152=RETURN 893 1, // 153=NULL_CHECK 894 0, // 154=GOTO 895 1, // 155=BOOLEAN_NOT 896 2, // 156=BOOLEAN_CMP_INT 897 -1, // 157=BOOLEAN_CMP_ADDR 898 2, // 158=BOOLEAN_CMP_LONG 899 -1, // 159=BOOLEAN_CMP_FLOAT 900 -1, // 160=BOOLEAN_CMP_DOUBLE 901 2, // 161=BYTE_LOAD 902 2, // 162=UBYTE_LOAD 903 2, // 163=SHORT_LOAD 904 2, // 164=USHORT_LOAD 905 -1, // 165=REF_LOAD 906 -1, // 166=REF_STORE 907 2, // 167=INT_LOAD 908 2, // 168=LONG_LOAD 909 2, // 169=FLOAT_LOAD 910 2, // 170=DOUBLE_LOAD 911 2, // 171=BYTE_STORE 912 2, // 172=SHORT_STORE 913 2, // 173=INT_STORE 914 2, // 174=LONG_STORE 915 2, // 175=FLOAT_STORE 916 2, // 176=DOUBLE_STORE 917 2, // 177=PREPARE_INT 918 -1, // 178=PREPARE_ADDR 919 2, // 179=PREPARE_LONG 920 2, // 180=ATTEMPT_INT 921 -1, // 181=ATTEMPT_ADDR 922 2, // 182=ATTEMPT_LONG 923 2, // 183=CALL 924 2, // 184=SYSCALL 925 0, // 185=YIELDPOINT_PROLOGUE 926 0, // 186=YIELDPOINT_EPILOGUE 927 0, // 187=YIELDPOINT_BACKEDGE 928 2, // 188=YIELDPOINT_OSR 929 -1, // 189=OSR_BARRIER 930 0, // 190=IR_PROLOGUE 931 0, // 191=RESOLVE 932 -1, // 192=RESOLVE_MEMBER 933 0, // 193=GET_TIME_BASE 934 -1, // 194=INSTRUMENTED_EVENT_COUNTER 935 2, // 195=TRAP_IF 936 0, // 196=TRAP 937 1, // 197=FLOAT_AS_INT_BITS 938 1, // 198=INT_BITS_AS_FLOAT 939 1, // 199=DOUBLE_AS_LONG_BITS 940 1, // 200=LONG_BITS_AS_DOUBLE 941 -1, // 201=ARRAYLENGTH 942 -1, // 202=GET_OBJ_TIB 943 -1, // 203=GET_CLASS_TIB 944 -1, // 204=GET_TYPE_FROM_TIB 945 -1, // 205=GET_SUPERCLASS_IDS_FROM_TIB 946 -1, // 206=GET_DOES_IMPLEMENT_FROM_TIB 947 -1, // 207=GET_ARRAY_ELEMENT_TIB_FROM_TIB 948 1, // 208=LOWTABLESWITCH 949 0, // 209=ADDRESS_CONSTANT 950 0, // 210=INT_CONSTANT 951 0, // 211=LONG_CONSTANT 952 0, // 212=REGISTER 953 2, // 213=OTHER_OPERAND 954 0, // 214=NULL 955 0, // 215=BRANCH_TARGET 956 1, // 216=MATERIALIZE_FP_CONSTANT 957 0, // 217=GET_CURRENT_PROCESSOR 958 -1, // 218=ROUND_TO_ZERO 959 0, // 219=CLEAR_FLOATING_POINT_STATE 960 1, // 220=PREFETCH 961 0, // 221=PAUSE 962 -1, // 222=FP_ADD 963 -1, // 223=FP_SUB 964 -1, // 224=FP_MUL 965 -1, // 225=FP_DIV 966 -1, // 226=FP_NEG 967 -1, // 227=FP_REM 968 -1, // 228=INT_2FP 969 -1, // 229=LONG_2FP 970 2, // 230=CMP_CMOV 971 2, // 231=FCMP_CMOV 972 2, // 232=LCMP_CMOV 973 -1, // 233=CMP_FCMOV 974 2, // 234=FCMP_FCMOV 975 -1, // 235=CALL_SAVE_VOLATILE 976 -1, // 236=MIR_START 977 -1, // 237=REQUIRE_ESP 978 -1, // 238=ADVISE_ESP 979 -1, // 239=MIR_LOWTABLESWITCH 980 -1, // 240=IA32_METHODSTART 981 -1, // 241=IA32_FCLEAR 982 -1, // 242=DUMMY_DEF 983 -1, // 243=DUMMY_USE 984 -1, // 244=IA32_FMOV_ENDING_LIVE_RANGE 985 -1, // 245=IA32_FMOV 986 -1, // 246=IA32_TRAPIF 987 -1, // 247=IA32_OFFSET 988 -1, // 248=IA32_LOCK_CMPXCHG 989 -1, // 249=IA32_LOCK_CMPXCHG8B 990 -1, // 250=IA32_ADC 991 -1, // 251=IA32_ADD 992 -1, // 252=IA32_AND 993 -1, // 253=IA32_BSWAP 994 -1, // 254=IA32_BT 995 -1, // 255=IA32_BTC 996 -1, // 256=IA32_BTR 997 -1, // 257=IA32_BTS 998 -1, // 258=IA32_SYSCALL 999 -1, // 259=IA32_CALL 1000 -1, // 260=IA32_CDQ 1001 -1, // 261=IA32_CDO 1002 -1, // 262=IA32_CDQE 1003 -1, // 263=IA32_CMOV 1004 -1, // 264=IA32_CMP 1005 -1, // 265=IA32_CMPXCHG 1006 -1, // 266=IA32_CMPXCHG8B 1007 -1, // 267=IA32_DEC 1008 -1, // 268=IA32_DIV 1009 -1, // 269=IA32_FADD 1010 -1, // 270=IA32_FADDP 1011 -1, // 271=IA32_FCHS 1012 -1, // 272=IA32_FCMOV 1013 -1, // 273=IA32_FCOMI 1014 -1, // 274=IA32_FCOMIP 1015 -1, // 275=IA32_FDIV 1016 -1, // 276=IA32_FDIVP 1017 -1, // 277=IA32_FDIVR 1018 -1, // 278=IA32_FDIVRP 1019 -1, // 279=IA32_FEXAM 1020 -1, // 280=IA32_FXCH 1021 -1, // 281=IA32_FFREE 1022 -1, // 282=IA32_FIADD 1023 -1, // 283=IA32_FIDIV 1024 -1, // 284=IA32_FIDIVR 1025 -1, // 285=IA32_FILD 1026 -1, // 286=IA32_FIMUL 1027 -1, // 287=IA32_FINIT 1028 -1, // 288=IA32_FIST 1029 -1, // 289=IA32_FISTP 1030 -1, // 290=IA32_FISUB 1031 -1, // 291=IA32_FISUBR 1032 -1, // 292=IA32_FLD 1033 -1, // 293=IA32_FLDCW 1034 -1, // 294=IA32_FLD1 1035 -1, // 295=IA32_FLDL2T 1036 -1, // 296=IA32_FLDL2E 1037 -1, // 297=IA32_FLDPI 1038 -1, // 298=IA32_FLDLG2 1039 -1, // 299=IA32_FLDLN2 1040 -1, // 300=IA32_FLDZ 1041 -1, // 301=IA32_FMUL 1042 -1, // 302=IA32_FMULP 1043 -1, // 303=IA32_FNSTCW 1044 -1, // 304=IA32_FNINIT 1045 -1, // 305=IA32_FNSAVE 1046 -1, // 306=IA32_FPREM 1047 -1, // 307=IA32_FRSTOR 1048 -1, // 308=IA32_FST 1049 -1, // 309=IA32_FSTCW 1050 -1, // 310=IA32_FSTP 1051 -1, // 311=IA32_FSUB 1052 -1, // 312=IA32_FSUBP 1053 -1, // 313=IA32_FSUBR 1054 -1, // 314=IA32_FSUBRP 1055 -1, // 315=IA32_FUCOMI 1056 -1, // 316=IA32_FUCOMIP 1057 -1, // 317=IA32_IDIV 1058 -1, // 318=IA32_IMUL1 1059 -1, // 319=IA32_IMUL2 1060 -1, // 320=IA32_INC 1061 -1, // 321=IA32_INT 1062 -1, // 322=IA32_JCC 1063 -1, // 323=IA32_JCC2 1064 -1, // 324=IA32_JMP 1065 -1, // 325=IA32_LEA 1066 -1, // 326=IA32_LOCK 1067 -1, // 327=IA32_MOV 1068 -1, // 328=IA32_MOVZX__B 1069 -1, // 329=IA32_MOVSX__B 1070 -1, // 330=IA32_MOVZX__W 1071 -1, // 331=IA32_MOVSX__W 1072 -1, // 332=IA32_MOVZXQ__B 1073 -1, // 333=IA32_MOVSXQ__B 1074 -1, // 334=IA32_MOVZXQ__W 1075 -1, // 335=IA32_MOVSXQ__W 1076 -1, // 336=IA32_MUL 1077 -1, // 337=IA32_NEG 1078 -1, // 338=IA32_NOT 1079 -1, // 339=IA32_OR 1080 -1, // 340=IA32_MFENCE 1081 -1, // 341=IA32_PAUSE 1082 -1, // 342=IA32_PREFETCHNTA 1083 -1, // 343=IA32_POP 1084 -1, // 344=IA32_PUSH 1085 -1, // 345=IA32_RCL 1086 -1, // 346=IA32_RCR 1087 -1, // 347=IA32_ROL 1088 -1, // 348=IA32_ROR 1089 -1, // 349=IA32_RET 1090 -1, // 350=IA32_SAL 1091 -1, // 351=IA32_SAR 1092 -1, // 352=IA32_SHL 1093 -1, // 353=IA32_SHR 1094 -1, // 354=IA32_SBB 1095 -1, // 355=IA32_SET__B 1096 -1, // 356=IA32_SHLD 1097 -1, // 357=IA32_SHRD 1098 -1, // 358=IA32_SUB 1099 -1, // 359=IA32_TEST 1100 -1, // 360=IA32_XOR 1101 -1, // 361=IA32_RDTSC 1102 -1, // 362=IA32_ADDSS 1103 -1, // 363=IA32_SUBSS 1104 -1, // 364=IA32_MULSS 1105 -1, // 365=IA32_DIVSS 1106 -1, // 366=IA32_ADDSD 1107 -1, // 367=IA32_SUBSD 1108 -1, // 368=IA32_MULSD 1109 -1, // 369=IA32_DIVSD 1110 -1, // 370=IA32_ANDPS 1111 -1, // 371=IA32_ANDPD 1112 -1, // 372=IA32_ANDNPS 1113 -1, // 373=IA32_ANDNPD 1114 -1, // 374=IA32_ORPS 1115 -1, // 375=IA32_ORPD 1116 -1, // 376=IA32_XORPS 1117 -1, // 377=IA32_XORPD 1118 -1, // 378=IA32_UCOMISS 1119 -1, // 379=IA32_UCOMISD 1120 -1, // 380=IA32_CMPEQSS 1121 -1, // 381=IA32_CMPLTSS 1122 -1, // 382=IA32_CMPLESS 1123 -1, // 383=IA32_CMPUNORDSS 1124 -1, // 384=IA32_CMPNESS 1125 -1, // 385=IA32_CMPNLTSS 1126 -1, // 386=IA32_CMPNLESS 1127 -1, // 387=IA32_CMPORDSS 1128 -1, // 388=IA32_CMPEQSD 1129 -1, // 389=IA32_CMPLTSD 1130 -1, // 390=IA32_CMPLESD 1131 -1, // 391=IA32_CMPUNORDSD 1132 -1, // 392=IA32_CMPNESD 1133 -1, // 393=IA32_CMPNLTSD 1134 -1, // 394=IA32_CMPNLESD 1135 -1, // 395=IA32_CMPORDSD 1136 -1, // 396=IA32_MOVLPD 1137 -1, // 397=IA32_MOVLPS 1138 -1, // 398=IA32_MOVSS 1139 -1, // 399=IA32_MOVSD 1140 -1, // 400=IA32_MOVD 1141 -1, // 401=IA32_MOVQ 1142 -1, // 402=IA32_PSLLQ 1143 -1, // 403=IA32_PSRLQ 1144 -1, // 404=IA32_SQRTSS 1145 -1, // 405=IA32_SQRTSD 1146 -1, // 406=IA32_CVTSI2SS 1147 -1, // 407=IA32_CVTSS2SD 1148 -1, // 408=IA32_CVTSS2SI 1149 -1, // 409=IA32_CVTTSS2SI 1150 -1, // 410=IA32_CVTSI2SD 1151 -1, // 411=IA32_CVTSD2SS 1152 -1, // 412=IA32_CVTSD2SI 1153 -1, // 413=IA32_CVTTSD2SI 1154 -1, // 414=IA32_CVTSI2SDQ 1155 -1, // 415=IA32_CVTSD2SIQ 1156 -1, // 416=IA32_CVTTSD2SIQ 1157 -1, // 417=MIR_END 1158 };*/ 1159 1160 static final char[][] decode = {null, 1161 {// stm_NT 1162 0, 1163 1, 1164 55, 1165 56, 1166 57, 1167 58, 1168 59, 1169 60, 1170 61, 1171 62, 1172 63, 1173 66, 1174 67, 1175 69, 1176 70, 1177 71, 1178 72, 1179 73, 1180 74, 1181 75, 1182 76, 1183 78, 1184 79, 1185 102, 1186 103, 1187 128, 1188 129, 1189 130, 1190 131, 1191 137, 1192 138, 1193 139, 1194 140, 1195 149, 1196 150, 1197 156, 1198 157, 1199 158, 1200 159, 1201 163, 1202 164, 1203 165, 1204 166, 1205 170, 1206 171, 1207 172, 1208 173, 1209 188, 1210 189, 1211 190, 1212 191, 1213 195, 1214 196, 1215 197, 1216 198, 1217 202, 1218 203, 1219 204, 1220 205, 1221 207, 1222 208, 1223 225, 1224 226, 1225 229, 1226 230, 1227 233, 1228 234, 1229 244, 1230 245, 1231 312, 1232 313, 1233 314, 1234 315, 1235 316, 1236 317, 1237 318, 1238 319, 1239 320, 1240 321, 1241 322, 1242 323, 1243 324, 1244 325, 1245 327, 1246 328, 1247 329, 1248 330, 1249 331, 1250 332, 1251 333, 1252 334, 1253 335, 1254 336, 1255 337, 1256 338, 1257 339, 1258 340, 1259 341, 1260 342, 1261 343, 1262 344, 1263 345, 1264 346, 1265 347, 1266 348, 1267 349, 1268 350, 1269 351, 1270 352, 1271 353, 1272 354, 1273 355, 1274 356, 1275 357, 1276 358, 1277 359, 1278 360, 1279 361, 1280 362, 1281 364, 1282 365, 1283 366, 1284 367, 1285 368, 1286 369, 1287 370, 1288 371, 1289 372, 1290 373, 1291 382, 1292 431, 1293 432, 1294 433, 1295 434, 1296 458, 1297 459, 1298 460, 1299 461, 1300 462, 1301 463, 1302 464, 1303 485, 1304 486, 1305 }, 1306 {// r_NT 1307 0, 1308 2, 1309 3, 1310 5, 1311 49, 1312 50, 1313 51, 1314 52, 1315 53, 1316 54, 1317 64, 1318 65, 1319 68, 1320 77, 1321 80, 1322 82, 1323 84, 1324 85, 1325 86, 1326 87, 1327 88, 1328 90, 1329 92, 1330 94, 1331 96, 1332 98, 1333 100, 1334 104, 1335 106, 1336 107, 1337 108, 1338 109, 1339 110, 1340 111, 1341 112, 1342 113, 1343 114, 1344 115, 1345 116, 1346 117, 1347 118, 1348 119, 1349 120, 1350 121, 1351 122, 1352 123, 1353 125, 1354 133, 1355 134, 1356 141, 1357 142, 1358 143, 1359 144, 1360 145, 1361 146, 1362 147, 1363 154, 1364 174, 1365 175, 1366 176, 1367 177, 1368 178, 1369 179, 1370 180, 1371 181, 1372 206, 1373 209, 1374 210, 1375 211, 1376 212, 1377 213, 1378 214, 1379 215, 1380 216, 1381 217, 1382 218, 1383 219, 1384 220, 1385 221, 1386 222, 1387 223, 1388 224, 1389 228, 1390 231, 1391 232, 1392 235, 1393 236, 1394 237, 1395 238, 1396 239, 1397 240, 1398 241, 1399 242, 1400 243, 1401 246, 1402 247, 1403 248, 1404 249, 1405 250, 1406 253, 1407 269, 1408 270, 1409 271, 1410 272, 1411 273, 1412 274, 1413 275, 1414 277, 1415 278, 1416 279, 1417 280, 1418 281, 1419 282, 1420 283, 1421 284, 1422 285, 1423 286, 1424 287, 1425 288, 1426 289, 1427 290, 1428 291, 1429 292, 1430 293, 1431 294, 1432 295, 1433 296, 1434 297, 1435 298, 1436 299, 1437 300, 1438 301, 1439 302, 1440 303, 1441 304, 1442 305, 1443 306, 1444 307, 1445 308, 1446 309, 1447 310, 1448 311, 1449 326, 1450 363, 1451 374, 1452 375, 1453 376, 1454 377, 1455 378, 1456 379, 1457 380, 1458 381, 1459 393, 1460 394, 1461 395, 1462 396, 1463 397, 1464 398, 1465 399, 1466 400, 1467 401, 1468 402, 1469 403, 1470 404, 1471 405, 1472 406, 1473 407, 1474 408, 1475 409, 1476 410, 1477 411, 1478 412, 1479 413, 1480 414, 1481 415, 1482 416, 1483 417, 1484 418, 1485 419, 1486 420, 1487 421, 1488 422, 1489 423, 1490 425, 1491 427, 1492 429, 1493 435, 1494 436, 1495 437, 1496 438, 1497 439, 1498 440, 1499 441, 1500 442, 1501 443, 1502 444, 1503 445, 1504 446, 1505 447, 1506 449, 1507 451, 1508 453, 1509 455, 1510 465, 1511 466, 1512 467, 1513 468, 1514 469, 1515 470, 1516 471, 1517 472, 1518 473, 1519 474, 1520 475, 1521 476, 1522 477, 1523 478, 1524 479, 1525 480, 1526 481, 1527 482, 1528 483, 1529 484, 1530 }, 1531 {// czr_NT 1532 0, 1533 124, 1534 126, 1535 127, 1536 132, 1537 135, 1538 136, 1539 254, 1540 }, 1541 {// cz_NT 1542 0, 1543 4, 1544 255, 1545 }, 1546 {// szpr_NT 1547 0, 1548 148, 1549 151, 1550 152, 1551 153, 1552 155, 1553 160, 1554 161, 1555 162, 1556 167, 1557 168, 1558 169, 1559 182, 1560 184, 1561 185, 1562 192, 1563 193, 1564 194, 1565 199, 1566 200, 1567 201, 1568 227, 1569 256, 1570 }, 1571 {// szp_NT 1572 0, 1573 6, 1574 183, 1575 186, 1576 187, 1577 257, 1578 }, 1579 {// riv_NT 1580 0, 1581 7, 1582 8, 1583 }, 1584 {// rlv_NT 1585 0, 1586 9, 1587 10, 1588 }, 1589 {// any_NT 1590 0, 1591 11, 1592 12, 1593 13, 1594 14, 1595 15, 1596 }, 1597 {// sload8_NT 1598 0, 1599 16, 1600 17, 1601 261, 1602 }, 1603 {// uload8_NT 1604 0, 1605 18, 1606 19, 1607 262, 1608 276, 1609 }, 1610 {// load8_NT 1611 0, 1612 20, 1613 21, 1614 263, 1615 }, 1616 {// sload16_NT 1617 0, 1618 22, 1619 23, 1620 264, 1621 }, 1622 {// uload16_NT 1623 0, 1624 24, 1625 25, 1626 265, 1627 }, 1628 {// load16_NT 1629 0, 1630 26, 1631 27, 1632 266, 1633 }, 1634 {// load32_NT 1635 0, 1636 28, 1637 29, 1638 251, 1639 252, 1640 267, 1641 448, 1642 }, 1643 {// load16_32_NT 1644 0, 1645 30, 1646 31, 1647 }, 1648 {// load8_16_32_NT 1649 0, 1650 32, 1651 33, 1652 }, 1653 {// load64_NT 1654 0, 1655 34, 1656 35, 1657 268, 1658 450, 1659 }, 1660 {// address1scaledreg_NT 1661 0, 1662 36, 1663 38, 1664 43, 1665 259, 1666 }, 1667 {// address1reg_NT 1668 0, 1669 39, 1670 40, 1671 42, 1672 258, 1673 }, 1674 {// address_NT 1675 0, 1676 37, 1677 41, 1678 44, 1679 45, 1680 46, 1681 47, 1682 48, 1683 260, 1684 }, 1685 {// boolcmp_NT 1686 0, 1687 81, 1688 83, 1689 89, 1690 91, 1691 93, 1692 95, 1693 97, 1694 99, 1695 101, 1696 105, 1697 }, 1698 {// bittest_NT 1699 0, 1700 383, 1701 384, 1702 385, 1703 386, 1704 387, 1705 388, 1706 389, 1707 390, 1708 391, 1709 392, 1710 }, 1711 {// float_load_NT 1712 0, 1713 428, 1714 430, 1715 452, 1716 456, 1717 }, 1718 {// double_load_NT 1719 0, 1720 424, 1721 426, 1722 454, 1723 457, 1724 }, 1725 }; 1726 1727 static void closure_r(BURS_TreeNode p, int c) { 1728 if (c < p.cost_rlv) { 1729 p.cost_rlv = (char)(c); 1730 p.word1 = (p.word1 & 0xFFFFFFFC) | 0x1; // p.rlv = 1 1731 } 1732 if (c < p.cost_riv) { 1733 p.cost_riv = (char)(c); 1734 p.word0 = (p.word0 & 0x9FFFFFFF) | 0x20000000; // p.riv = 1 1735 closure_riv(p, c); 1736 } 1737 if (c < p.cost_stm) { 1738 p.cost_stm = (char)(c); 1739 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1; // p.stm = 1 1740 } 1741 } 1742 1743 static void closure_czr(BURS_TreeNode p, int c) { 1744 if (c < p.cost_cz) { 1745 p.cost_cz = (char)(c); 1746 p.word0 = (p.word0 & 0xFFE7FFFF) | 0x80000; // p.cz = 1 1747 } 1748 if (c < p.cost_r) { 1749 p.cost_r = (char)(c); 1750 p.word0 = (p.word0 & 0xFFFF00FF) | 0x200; // p.r = 2 1751 closure_r(p, c); 1752 } 1753 } 1754 1755 static void closure_szpr(BURS_TreeNode p, int c) { 1756 if (c < p.cost_szp) { 1757 p.cost_szp = (char)(c); 1758 p.word0 = (p.word0 & 0xE3FFFFFF) | 0x4000000; // p.szp = 1 1759 } 1760 if (c < p.cost_r) { 1761 p.cost_r = (char)(c); 1762 p.word0 = (p.word0 & 0xFFFF00FF) | 0x300; // p.r = 3 1763 closure_r(p, c); 1764 } 1765 } 1766 1767 static void closure_riv(BURS_TreeNode p, int c) { 1768 if (c < p.cost_any) { 1769 p.cost_any = (char)(c); 1770 p.word1 = (p.word1 & 0xFFFFFFE3) | 0x8; // p.any = 2 1771 } 1772 } 1773 1774 static void closure_sload8(BURS_TreeNode p, int c) { 1775 if (c < p.cost_load8) { 1776 p.cost_load8 = (char)(c); 1777 p.word1 = (p.word1 & 0xFFFFF3FF) | 0x400; // p.load8 = 1 1778 closure_load8(p, c); 1779 } 1780 } 1781 1782 static void closure_uload8(BURS_TreeNode p, int c) { 1783 if (c < p.cost_load8) { 1784 p.cost_load8 = (char)(c); 1785 p.word1 = (p.word1 & 0xFFFFF3FF) | 0x800; // p.load8 = 2 1786 closure_load8(p, c); 1787 } 1788 } 1789 1790 static void closure_load8(BURS_TreeNode p, int c) { 1791 if (c < p.cost_load8_16_32) { 1792 p.cost_load8_16_32 = (char)(c); 1793 p.word1 = (p.word1 & 0xFE7FFFFF) | 0x1000000; // p.load8_16_32 = 2 1794 } 1795 } 1796 1797 static void closure_sload16(BURS_TreeNode p, int c) { 1798 if (c < p.cost_load16) { 1799 p.cost_load16 = (char)(c); 1800 p.word1 = (p.word1 & 0xFFFCFFFF) | 0x10000; // p.load16 = 1 1801 closure_load16(p, c); 1802 } 1803 } 1804 1805 static void closure_uload16(BURS_TreeNode p, int c) { 1806 if (c < p.cost_load16) { 1807 p.cost_load16 = (char)(c); 1808 p.word1 = (p.word1 & 0xFFFCFFFF) | 0x20000; // p.load16 = 2 1809 closure_load16(p, c); 1810 } 1811 } 1812 1813 static void closure_load16(BURS_TreeNode p, int c) { 1814 if (c < p.cost_load16_32) { 1815 p.cost_load16_32 = (char)(c); 1816 p.word1 = (p.word1 & 0xFF9FFFFF) | 0x200000; // p.load16_32 = 1 1817 closure_load16_32(p, c); 1818 } 1819 } 1820 1821 static void closure_load32(BURS_TreeNode p, int c) { 1822 if (c < p.cost_load16_32) { 1823 p.cost_load16_32 = (char)(c); 1824 p.word1 = (p.word1 & 0xFF9FFFFF) | 0x400000; // p.load16_32 = 2 1825 closure_load16_32(p, c); 1826 } 1827 } 1828 1829 static void closure_load16_32(BURS_TreeNode p, int c) { 1830 if (c < p.cost_load8_16_32) { 1831 p.cost_load8_16_32 = (char)(c); 1832 p.word1 = (p.word1 & 0xFE7FFFFF) | 0x800000; // p.load8_16_32 = 1 1833 } 1834 } 1835 1836 static void closure_address1scaledreg(BURS_TreeNode p, int c) { 1837 if (c < p.cost_address) { 1838 p.cost_address = (char)(c); 1839 p.word2 = (p.word2 & 0xFFFFFF87) | 0x8; // p.address = 1 1840 } 1841 } 1842 1843 static void closure_address1reg(BURS_TreeNode p, int c) { 1844 if (c < p.cost_address1scaledreg) { 1845 p.cost_address1scaledreg = (char)(c); 1846 p.word1 = (p.word1 & 0x8FFFFFFF) | 0x10000000; // p.address1scaledreg = 1 1847 closure_address1scaledreg(p, c); 1848 } 1849 } 1850 1851 private void label_GET_CAUGHT_EXCEPTION(BURS_TreeNode p) { 1852 p.word0 = 0; 1853 p.initCost(); 1854 // r: GET_CAUGHT_EXCEPTION 1855 if (11 < p.cost_r) { 1856 p.cost_r = (char)(11); 1857 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC00; // p.r = 12 1858 closure_r(p, 11); 1859 } 1860 } 1861 1862 private void label_SET_CAUGHT_EXCEPTION(BURS_TreeNode p) { 1863 p.word0 = 0; 1864 p.initCost(); 1865 BURS_TreeNode lchild; 1866 lchild = p.child1; 1867 label(lchild); 1868 int c; 1869 // stm: SET_CAUGHT_EXCEPTION(r) 1870 c = STATE(lchild).cost_r + 11; 1871 if (c < p.cost_stm) { 1872 p.cost_stm = (char)(c); 1873 p.word0 = (p.word0 & 0xFFFFFF00) | 0xD; // p.stm = 13 1874 } 1875 if ( // stm: SET_CAUGHT_EXCEPTION(INT_CONSTANT) 1876 lchild.getOpcode() == INT_CONSTANT_opcode 1877 ) { 1878 c = 20; 1879 if (c < p.cost_stm) { 1880 p.cost_stm = (char)(c); 1881 p.word0 = (p.word0 & 0xFFFFFF00) | 0xE; // p.stm = 14 1882 } 1883 } 1884 } 1885 1886 private void label_IG_PATCH_POINT(BURS_TreeNode p) { 1887 p.word0 = 0; 1888 p.initCost(); 1889 // stm: IG_PATCH_POINT 1890 if (10 < p.cost_stm) { 1891 p.cost_stm = (char)(10); 1892 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2; // p.stm = 2 1893 } 1894 } 1895 1896 private void label_INT_ALOAD(BURS_TreeNode p) { 1897 p.word0 = 0; 1898 p.initCost(); 1899 BURS_TreeNode lchild, rchild; 1900 lchild = p.child1; 1901 rchild = p.child2; 1902 label(lchild); 1903 label(rchild); 1904 int c; 1905 // load32: INT_ALOAD(riv,riv) 1906 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 1907 if (c < p.cost_load32) { 1908 p.cost_load32 = (char)(c); 1909 p.word1 = (p.word1 & 0xFFE3FFFF) | 0x80000; // p.load32 = 2 1910 closure_load32(p, c); 1911 } 1912 // r: INT_ALOAD(riv,riv) 1913 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15; 1914 if (c < p.cost_r) { 1915 p.cost_r = (char)(c); 1916 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7C00; // p.r = 124 1917 closure_r(p, c); 1918 } 1919 } 1920 1921 private void label_LONG_ALOAD(BURS_TreeNode p) { 1922 p.word0 = 0; 1923 p.initCost(); 1924 BURS_TreeNode lchild, rchild; 1925 lchild = p.child1; 1926 rchild = p.child2; 1927 label(lchild); 1928 label(rchild); 1929 int c; 1930 // load64: LONG_ALOAD(riv,riv) 1931 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 1932 if (c < p.cost_load64) { 1933 p.cost_load64 = (char)(c); 1934 p.word1 = (p.word1 & 0xF1FFFFFF) | 0x4000000; // p.load64 = 2 1935 } 1936 // r: LONG_ALOAD(riv,riv) 1937 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 30; 1938 if (c < p.cost_r) { 1939 p.cost_r = (char)(c); 1940 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7E00; // p.r = 126 1941 closure_r(p, c); 1942 } 1943 } 1944 1945 private void label_FLOAT_ALOAD(BURS_TreeNode p) { 1946 p.word0 = 0; 1947 p.initCost(); 1948 BURS_TreeNode lchild, rchild; 1949 lchild = p.child1; 1950 rchild = p.child2; 1951 label(lchild); 1952 label(rchild); 1953 int c; 1954 // r: FLOAT_ALOAD(riv,riv) 1955 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15; 1956 if (c < p.cost_r) { 1957 p.cost_r = (char)(c); 1958 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB900; // p.r = 185 1959 closure_r(p, c); 1960 } 1961 // float_load: FLOAT_ALOAD(riv,riv) 1962 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 1963 if (c < p.cost_float_load) { 1964 p.cost_float_load = (char)(c); 1965 p.word2 = (p.word2 & 0xFFFC7FFF) | 0x10000; // p.float_load = 2 1966 } 1967 } 1968 1969 private void label_DOUBLE_ALOAD(BURS_TreeNode p) { 1970 p.word0 = 0; 1971 p.initCost(); 1972 BURS_TreeNode lchild, rchild; 1973 lchild = p.child1; 1974 rchild = p.child2; 1975 label(lchild); 1976 label(rchild); 1977 int c; 1978 // r: DOUBLE_ALOAD(riv,riv) 1979 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15; 1980 if (c < p.cost_r) { 1981 p.cost_r = (char)(c); 1982 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB700; // p.r = 183 1983 closure_r(p, c); 1984 } 1985 // double_load: DOUBLE_ALOAD(riv,riv) 1986 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 1987 if (c < p.cost_double_load) { 1988 p.cost_double_load = (char)(c); 1989 p.word2 = (p.word2 & 0xFFE3FFFF) | 0x80000; // p.double_load = 2 1990 } 1991 } 1992 1993 private void label_UBYTE_ALOAD(BURS_TreeNode p) { 1994 p.word0 = 0; 1995 p.initCost(); 1996 BURS_TreeNode lchild, rchild; 1997 lchild = p.child1; 1998 rchild = p.child2; 1999 label(lchild); 2000 label(rchild); 2001 int c; 2002 // uload8: UBYTE_ALOAD(riv,riv) 2003 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 2004 if (c < p.cost_uload8) { 2005 p.cost_uload8 = (char)(c); 2006 p.word1 = (p.word1 & 0xFFFFFC7F) | 0x100; // p.uload8 = 2 2007 closure_uload8(p, c); 2008 } 2009 // r: UBYTE_ALOAD(riv,riv) 2010 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15; 2011 if (c < p.cost_r) { 2012 p.cost_r = (char)(c); 2013 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6A00; // p.r = 106 2014 closure_r(p, c); 2015 } 2016 } 2017 2018 private void label_BYTE_ALOAD(BURS_TreeNode p) { 2019 p.word0 = 0; 2020 p.initCost(); 2021 BURS_TreeNode lchild, rchild; 2022 lchild = p.child1; 2023 rchild = p.child2; 2024 label(lchild); 2025 label(rchild); 2026 int c; 2027 // sload8: BYTE_ALOAD(riv,riv) 2028 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 2029 if (c < p.cost_sload8) { 2030 p.cost_sload8 = (char)(c); 2031 p.word1 = (p.word1 & 0xFFFFFF9F) | 0x40; // p.sload8 = 2 2032 closure_sload8(p, c); 2033 } 2034 // r: BYTE_ALOAD(riv,riv) 2035 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20; 2036 if (c < p.cost_r) { 2037 p.cost_r = (char)(c); 2038 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6800; // p.r = 104 2039 closure_r(p, c); 2040 } 2041 } 2042 2043 private void label_USHORT_ALOAD(BURS_TreeNode p) { 2044 p.word0 = 0; 2045 p.initCost(); 2046 BURS_TreeNode lchild, rchild; 2047 lchild = p.child1; 2048 rchild = p.child2; 2049 label(lchild); 2050 label(rchild); 2051 int c; 2052 // uload16: USHORT_ALOAD(riv,riv) 2053 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 2054 if (c < p.cost_uload16) { 2055 p.cost_uload16 = (char)(c); 2056 p.word1 = (p.word1 & 0xFFFF3FFF) | 0x8000; // p.uload16 = 2 2057 closure_uload16(p, c); 2058 } 2059 // r: USHORT_ALOAD(riv,riv) 2060 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15; 2061 if (c < p.cost_r) { 2062 p.cost_r = (char)(c); 2063 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7100; // p.r = 113 2064 closure_r(p, c); 2065 } 2066 } 2067 2068 private void label_SHORT_ALOAD(BURS_TreeNode p) { 2069 p.word0 = 0; 2070 p.initCost(); 2071 BURS_TreeNode lchild, rchild; 2072 lchild = p.child1; 2073 rchild = p.child2; 2074 label(lchild); 2075 label(rchild); 2076 int c; 2077 // sload16: SHORT_ALOAD(riv,riv) 2078 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 2079 if (c < p.cost_sload16) { 2080 p.cost_sload16 = (char)(c); 2081 p.word1 = (p.word1 & 0xFFFFCFFF) | 0x2000; // p.sload16 = 2 2082 closure_sload16(p, c); 2083 } 2084 // r: SHORT_ALOAD(riv,riv) 2085 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20; 2086 if (c < p.cost_r) { 2087 p.cost_r = (char)(c); 2088 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6F00; // p.r = 111 2089 closure_r(p, c); 2090 } 2091 } 2092 2093 private void label_INT_ASTORE(BURS_TreeNode p) { 2094 p.word0 = 0; 2095 p.initCost(); 2096 BURS_TreeNode lchild, rchild; 2097 lchild = p.child1; 2098 rchild = p.child2; 2099 label(lchild); 2100 label(rchild); 2101 int c; 2102 if ( // stm: INT_ASTORE(INT_ADD(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 2103 lchild.getOpcode() == INT_ADD_opcode && 2104 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2105 rchild.getOpcode() == OTHER_OPERAND_opcode 2106 ) { 2107 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLL(p), 17); 2108 if (c < p.cost_stm) { 2109 p.cost_stm = (char)(c); 2110 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1B; // p.stm = 27 2111 } 2112 } 2113 if ( // stm: INT_ASTORE(INT_ADD(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 2114 lchild.getOpcode() == INT_ADD_opcode && 2115 lchild.child2.getOpcode() == INT_ALOAD_opcode && 2116 rchild.getOpcode() == OTHER_OPERAND_opcode 2117 ) { 2118 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLR(p), 17); 2119 if (c < p.cost_stm) { 2120 p.cost_stm = (char)(c); 2121 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1C; // p.stm = 28 2122 } 2123 } 2124 if ( // stm: INT_ASTORE(INT_SUB(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 2125 lchild.getOpcode() == INT_SUB_opcode && 2126 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2127 rchild.getOpcode() == OTHER_OPERAND_opcode 2128 ) { 2129 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLL(p), 17); 2130 if (c < p.cost_stm) { 2131 p.cost_stm = (char)(c); 2132 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1F; // p.stm = 31 2133 } 2134 } 2135 if ( // stm: INT_ASTORE(INT_SUB(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 2136 lchild.getOpcode() == INT_SUB_opcode && 2137 lchild.child2.getOpcode() == INT_ALOAD_opcode && 2138 rchild.getOpcode() == OTHER_OPERAND_opcode 2139 ) { 2140 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLR(p), 27); 2141 if (c < p.cost_stm) { 2142 p.cost_stm = (char)(c); 2143 p.word0 = (p.word0 & 0xFFFFFF00) | 0x20; // p.stm = 32 2144 } 2145 } 2146 if ( // stm: INT_ASTORE(INT_NEG(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 2147 lchild.getOpcode() == INT_NEG_opcode && 2148 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2149 rchild.getOpcode() == OTHER_OPERAND_opcode 2150 ) { 2151 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLL(p), 17); 2152 if (c < p.cost_stm) { 2153 p.cost_stm = (char)(c); 2154 p.word0 = (p.word0 & 0xFFFFFF00) | 0x22; // p.stm = 34 2155 } 2156 } 2157 if ( // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 2158 lchild.getOpcode() == INT_SHL_opcode && 2159 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2160 lchild.child2.getOpcode() == INT_AND_opcode && 2161 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 2162 rchild.getOpcode() == OTHER_OPERAND_opcode 2163 ) { 2164 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + (ARRAY_ADDRESS_EQUAL(P(p), PLL(p), VLRR(p) == 31 ? 27 : INFINITE)); 2165 if (c < p.cost_stm) { 2166 p.cost_stm = (char)(c); 2167 p.word0 = (p.word0 & 0xFFFFFF00) | 0x25; // p.stm = 37 2168 } 2169 } 2170 if ( // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 2171 lchild.getOpcode() == INT_SHL_opcode && 2172 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2173 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 2174 rchild.getOpcode() == OTHER_OPERAND_opcode 2175 ) { 2176 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + (ARRAY_ADDRESS_EQUAL(P(p), PLL(p), VLR(p) == 31 ? 17 : INFINITE)); 2177 if (c < p.cost_stm) { 2178 p.cost_stm = (char)(c); 2179 p.word0 = (p.word0 & 0xFFFFFF00) | 0x26; // p.stm = 38 2180 } 2181 } 2182 if ( // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 2183 lchild.getOpcode() == INT_SHR_opcode && 2184 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2185 lchild.child2.getOpcode() == INT_AND_opcode && 2186 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 2187 rchild.getOpcode() == OTHER_OPERAND_opcode 2188 ) { 2189 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + (ARRAY_ADDRESS_EQUAL(P(p), PLL(p), VLRR(p) == 31 ? 27 : INFINITE)); 2190 if (c < p.cost_stm) { 2191 p.cost_stm = (char)(c); 2192 p.word0 = (p.word0 & 0xFFFFFF00) | 0x29; // p.stm = 41 2193 } 2194 } 2195 if ( // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 2196 lchild.getOpcode() == INT_SHR_opcode && 2197 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2198 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 2199 rchild.getOpcode() == OTHER_OPERAND_opcode 2200 ) { 2201 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + (ARRAY_ADDRESS_EQUAL(P(p), PLL(p), VLR(p) == 31 ? 17 : INFINITE)); 2202 if (c < p.cost_stm) { 2203 p.cost_stm = (char)(c); 2204 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2A; // p.stm = 42 2205 } 2206 } 2207 if ( // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 2208 lchild.getOpcode() == INT_USHR_opcode && 2209 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2210 lchild.child2.getOpcode() == INT_AND_opcode && 2211 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 2212 rchild.getOpcode() == OTHER_OPERAND_opcode 2213 ) { 2214 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + (ARRAY_ADDRESS_EQUAL(P(p), PLL(p), VLRR(p) == 31 ? 27 : INFINITE)); 2215 if (c < p.cost_stm) { 2216 p.cost_stm = (char)(c); 2217 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2D; // p.stm = 45 2218 } 2219 } 2220 if ( // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 2221 lchild.getOpcode() == INT_USHR_opcode && 2222 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2223 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 2224 rchild.getOpcode() == OTHER_OPERAND_opcode 2225 ) { 2226 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + (ARRAY_ADDRESS_EQUAL(P(p), PLL(p), VLR(p) == 31 ? 17 : INFINITE)); 2227 if (c < p.cost_stm) { 2228 p.cost_stm = (char)(c); 2229 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2E; // p.stm = 46 2230 } 2231 } 2232 if ( // stm: INT_ASTORE(INT_AND(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 2233 lchild.getOpcode() == INT_AND_opcode && 2234 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2235 rchild.getOpcode() == OTHER_OPERAND_opcode 2236 ) { 2237 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLL(p), 17); 2238 if (c < p.cost_stm) { 2239 p.cost_stm = (char)(c); 2240 p.word0 = (p.word0 & 0xFFFFFF00) | 0x31; // p.stm = 49 2241 } 2242 } 2243 if ( // stm: INT_ASTORE(INT_AND(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 2244 lchild.getOpcode() == INT_AND_opcode && 2245 lchild.child2.getOpcode() == INT_ALOAD_opcode && 2246 rchild.getOpcode() == OTHER_OPERAND_opcode 2247 ) { 2248 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLR(p), 17); 2249 if (c < p.cost_stm) { 2250 p.cost_stm = (char)(c); 2251 p.word0 = (p.word0 & 0xFFFFFF00) | 0x32; // p.stm = 50 2252 } 2253 } 2254 if ( // stm: INT_ASTORE(INT_OR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 2255 lchild.getOpcode() == INT_OR_opcode && 2256 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2257 rchild.getOpcode() == OTHER_OPERAND_opcode 2258 ) { 2259 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLL(p), 17); 2260 if (c < p.cost_stm) { 2261 p.cost_stm = (char)(c); 2262 p.word0 = (p.word0 & 0xFFFFFF00) | 0x35; // p.stm = 53 2263 } 2264 } 2265 if ( // stm: INT_ASTORE(INT_OR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 2266 lchild.getOpcode() == INT_OR_opcode && 2267 lchild.child2.getOpcode() == INT_ALOAD_opcode && 2268 rchild.getOpcode() == OTHER_OPERAND_opcode 2269 ) { 2270 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLR(p), 17); 2271 if (c < p.cost_stm) { 2272 p.cost_stm = (char)(c); 2273 p.word0 = (p.word0 & 0xFFFFFF00) | 0x36; // p.stm = 54 2274 } 2275 } 2276 if ( // stm: INT_ASTORE(INT_XOR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 2277 lchild.getOpcode() == INT_XOR_opcode && 2278 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2279 rchild.getOpcode() == OTHER_OPERAND_opcode 2280 ) { 2281 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLL(p), 17); 2282 if (c < p.cost_stm) { 2283 p.cost_stm = (char)(c); 2284 p.word0 = (p.word0 & 0xFFFFFF00) | 0x39; // p.stm = 57 2285 } 2286 } 2287 if ( // stm: INT_ASTORE(INT_XOR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 2288 lchild.getOpcode() == INT_XOR_opcode && 2289 lchild.child2.getOpcode() == INT_ALOAD_opcode && 2290 rchild.getOpcode() == OTHER_OPERAND_opcode 2291 ) { 2292 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLR(p), 17); 2293 if (c < p.cost_stm) { 2294 p.cost_stm = (char)(c); 2295 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3A; // p.stm = 58 2296 } 2297 } 2298 if ( // stm: INT_ASTORE(INT_NOT(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 2299 lchild.getOpcode() == INT_NOT_opcode && 2300 lchild.child1.getOpcode() == INT_ALOAD_opcode && 2301 rchild.getOpcode() == OTHER_OPERAND_opcode 2302 ) { 2303 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLL(p), 17); 2304 if (c < p.cost_stm) { 2305 p.cost_stm = (char)(c); 2306 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3C; // p.stm = 60 2307 } 2308 } 2309 if ( // stm: INT_ASTORE(LONG_2INT(r),OTHER_OPERAND(riv,riv)) 2310 lchild.getOpcode() == LONG_2INT_opcode && 2311 rchild.getOpcode() == OTHER_OPERAND_opcode 2312 ) { 2313 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 2314 if (c < p.cost_stm) { 2315 p.cost_stm = (char)(c); 2316 p.word0 = (p.word0 & 0xFFFFFF00) | 0x44; // p.stm = 68 2317 } 2318 } 2319 if ( // stm: INT_ASTORE(riv,OTHER_OPERAND(riv,riv)) 2320 rchild.getOpcode() == OTHER_OPERAND_opcode 2321 ) { 2322 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 2323 if (c < p.cost_stm) { 2324 p.cost_stm = (char)(c); 2325 p.word0 = (p.word0 & 0xFFFFFF00) | 0x61; // p.stm = 97 2326 } 2327 } 2328 } 2329 2330 private void label_LONG_ASTORE(BURS_TreeNode p) { 2331 p.word0 = 0; 2332 p.initCost(); 2333 BURS_TreeNode lchild, rchild; 2334 lchild = p.child1; 2335 rchild = p.child2; 2336 label(lchild); 2337 label(rchild); 2338 int c; 2339 if ( // stm: LONG_ASTORE(r,OTHER_OPERAND(riv,riv)) 2340 rchild.getOpcode() == OTHER_OPERAND_opcode 2341 ) { 2342 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 30; 2343 if (c < p.cost_stm) { 2344 p.cost_stm = (char)(c); 2345 p.word0 = (p.word0 & 0xFFFFFF00) | 0x64; // p.stm = 100 2346 } 2347 } 2348 if ( // stm: LONG_ASTORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv)) 2349 lchild.getOpcode() == LONG_CONSTANT_opcode && 2350 rchild.getOpcode() == OTHER_OPERAND_opcode 2351 ) { 2352 c = STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 26; 2353 if (c < p.cost_stm) { 2354 p.cost_stm = (char)(c); 2355 p.word0 = (p.word0 & 0xFFFFFF00) | 0x65; // p.stm = 101 2356 } 2357 } 2358 if ( // stm: LONG_ASTORE(load64,OTHER_OPERAND(riv,riv)) 2359 rchild.getOpcode() == OTHER_OPERAND_opcode 2360 ) { 2361 c = STATE(lchild).cost_load64 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 32; 2362 if (c < p.cost_stm) { 2363 p.cost_stm = (char)(c); 2364 p.word0 = (p.word0 & 0xFFFFFF00) | 0x8D; // p.stm = 141 2365 } 2366 } 2367 } 2368 2369 private void label_FLOAT_ASTORE(BURS_TreeNode p) { 2370 p.word0 = 0; 2371 p.initCost(); 2372 BURS_TreeNode lchild, rchild; 2373 lchild = p.child1; 2374 rchild = p.child2; 2375 label(lchild); 2376 label(rchild); 2377 int c; 2378 if ( // stm: FLOAT_ASTORE(r,OTHER_OPERAND(riv,riv)) 2379 rchild.getOpcode() == OTHER_OPERAND_opcode 2380 ) { 2381 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 17; 2382 if (c < p.cost_stm) { 2383 p.cost_stm = (char)(c); 2384 p.word0 = (p.word0 & 0xFFFFFF00) | 0x85; // p.stm = 133 2385 } 2386 } 2387 } 2388 2389 private void label_DOUBLE_ASTORE(BURS_TreeNode p) { 2390 p.word0 = 0; 2391 p.initCost(); 2392 BURS_TreeNode lchild, rchild; 2393 lchild = p.child1; 2394 rchild = p.child2; 2395 label(lchild); 2396 label(rchild); 2397 int c; 2398 if ( // stm: DOUBLE_ASTORE(r,OTHER_OPERAND(riv,riv)) 2399 rchild.getOpcode() == OTHER_OPERAND_opcode 2400 ) { 2401 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 17; 2402 if (c < p.cost_stm) { 2403 p.cost_stm = (char)(c); 2404 p.word0 = (p.word0 & 0xFFFFFF00) | 0x83; // p.stm = 131 2405 } 2406 } 2407 } 2408 2409 private void label_BYTE_ASTORE(BURS_TreeNode p) { 2410 p.word0 = 0; 2411 p.initCost(); 2412 BURS_TreeNode lchild, rchild; 2413 lchild = p.child1; 2414 rchild = p.child2; 2415 label(lchild); 2416 label(rchild); 2417 int c; 2418 if ( // stm: BYTE_ASTORE(BOOLEAN_NOT(UBYTE_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 2419 lchild.getOpcode() == BOOLEAN_NOT_opcode && 2420 lchild.child1.getOpcode() == UBYTE_ALOAD_opcode && 2421 rchild.getOpcode() == OTHER_OPERAND_opcode 2422 ) { 2423 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ARRAY_ADDRESS_EQUAL(P(p), PLL(p), 17); 2424 if (c < p.cost_stm) { 2425 p.cost_stm = (char)(c); 2426 p.word0 = (p.word0 & 0xFFFFFF00) | 0x16; // p.stm = 22 2427 } 2428 } 2429 if ( // stm: BYTE_ASTORE(boolcmp,OTHER_OPERAND(riv,riv)) 2430 rchild.getOpcode() == OTHER_OPERAND_opcode 2431 ) { 2432 c = STATE(lchild).cost_boolcmp + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 2433 if (c < p.cost_stm) { 2434 p.cost_stm = (char)(c); 2435 p.word0 = (p.word0 & 0xFFFFFF00) | 0x18; // p.stm = 24 2436 } 2437 } 2438 if ( // stm: BYTE_ASTORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv)) 2439 lchild.getOpcode() == INT_2BYTE_opcode && 2440 rchild.getOpcode() == OTHER_OPERAND_opcode 2441 ) { 2442 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 2443 if (c < p.cost_stm) { 2444 p.cost_stm = (char)(c); 2445 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3E; // p.stm = 62 2446 } 2447 } 2448 if ( // stm: BYTE_ASTORE(riv,OTHER_OPERAND(riv,riv)) 2449 rchild.getOpcode() == OTHER_OPERAND_opcode 2450 ) { 2451 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 2452 if (c < p.cost_stm) { 2453 p.cost_stm = (char)(c); 2454 p.word0 = (p.word0 & 0xFFFFFF00) | 0x55; // p.stm = 85 2455 } 2456 } 2457 if ( // stm: BYTE_ASTORE(load8,OTHER_OPERAND(riv,riv)) 2458 rchild.getOpcode() == OTHER_OPERAND_opcode 2459 ) { 2460 c = STATE(lchild).cost_load8 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25; 2461 if (c < p.cost_stm) { 2462 p.cost_stm = (char)(c); 2463 p.word0 = (p.word0 & 0xFFFFFF00) | 0x56; // p.stm = 86 2464 } 2465 } 2466 } 2467 2468 private void label_SHORT_ASTORE(BURS_TreeNode p) { 2469 p.word0 = 0; 2470 p.initCost(); 2471 BURS_TreeNode lchild, rchild; 2472 lchild = p.child1; 2473 rchild = p.child2; 2474 label(lchild); 2475 label(rchild); 2476 int c; 2477 if ( // stm: SHORT_ASTORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv)) 2478 lchild.getOpcode() == INT_2USHORT_opcode && 2479 rchild.getOpcode() == OTHER_OPERAND_opcode 2480 ) { 2481 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 2482 if (c < p.cost_stm) { 2483 p.cost_stm = (char)(c); 2484 p.word0 = (p.word0 & 0xFFFFFF00) | 0x40; // p.stm = 64 2485 } 2486 } 2487 if ( // stm: SHORT_ASTORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv)) 2488 lchild.getOpcode() == INT_2SHORT_opcode && 2489 rchild.getOpcode() == OTHER_OPERAND_opcode 2490 ) { 2491 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 2492 if (c < p.cost_stm) { 2493 p.cost_stm = (char)(c); 2494 p.word0 = (p.word0 & 0xFFFFFF00) | 0x42; // p.stm = 66 2495 } 2496 } 2497 if ( // stm: SHORT_ASTORE(riv,OTHER_OPERAND(riv,riv)) 2498 rchild.getOpcode() == OTHER_OPERAND_opcode 2499 ) { 2500 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 2501 if (c < p.cost_stm) { 2502 p.cost_stm = (char)(c); 2503 p.word0 = (p.word0 & 0xFFFFFF00) | 0x59; // p.stm = 89 2504 } 2505 } 2506 if ( // stm: SHORT_ASTORE(load16,OTHER_OPERAND(riv,riv)) 2507 rchild.getOpcode() == OTHER_OPERAND_opcode 2508 ) { 2509 c = STATE(lchild).cost_load16 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25; 2510 if (c < p.cost_stm) { 2511 p.cost_stm = (char)(c); 2512 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5A; // p.stm = 90 2513 } 2514 } 2515 } 2516 2517 private void label_INT_IFCMP(BURS_TreeNode p) { 2518 p.word0 = 0; 2519 p.initCost(); 2520 BURS_TreeNode lchild, rchild; 2521 lchild = p.child1; 2522 rchild = p.child2; 2523 label(lchild); 2524 label(rchild); 2525 int c; 2526 if ( // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2527 lchild.getOpcode() == ATTEMPT_INT_opcode && 2528 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2529 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2530 rchild.getOpcode() == INT_CONSTANT_opcode 2531 ) { 2532 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isZERO(VR(p), 54); 2533 if (c < p.cost_stm) { 2534 p.cost_stm = (char)(c); 2535 p.word0 = (p.word0 & 0xFFFFFF00) | 0x45; // p.stm = 69 2536 } 2537 } 2538 if ( // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2539 lchild.getOpcode() == ATTEMPT_INT_opcode && 2540 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2541 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2542 rchild.getOpcode() == INT_CONSTANT_opcode 2543 ) { 2544 c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1).cost_address1scaledreg + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isZERO(VR(p), 54); 2545 if (c < p.cost_stm) { 2546 p.cost_stm = (char)(c); 2547 p.word0 = (p.word0 & 0xFFFFFF00) | 0x46; // p.stm = 70 2548 } 2549 } 2550 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2551 lchild.getOpcode() == ATTEMPT_INT_opcode && 2552 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2553 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2554 rchild.getOpcode() == INT_CONSTANT_opcode 2555 ) { 2556 c = STATE(lchild.child1).cost_address1scaledreg + STATE(lchild.child2.child1).cost_r + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isZERO(VR(p), 54); 2557 if (c < p.cost_stm) { 2558 p.cost_stm = (char)(c); 2559 p.word0 = (p.word0 & 0xFFFFFF00) | 0x47; // p.stm = 71 2560 } 2561 } 2562 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2563 lchild.getOpcode() == ATTEMPT_INT_opcode && 2564 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2565 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2566 rchild.getOpcode() == INT_CONSTANT_opcode 2567 ) { 2568 c = STATE(lchild.child1).cost_address1scaledreg + STATE(lchild.child2.child1).cost_address1reg + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isZERO(VR(p),54); 2569 if (c < p.cost_stm) { 2570 p.cost_stm = (char)(c); 2571 p.word0 = (p.word0 & 0xFFFFFF00) | 0x48; // p.stm = 72 2572 } 2573 } 2574 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2575 lchild.getOpcode() == ATTEMPT_INT_opcode && 2576 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2577 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2578 rchild.getOpcode() == INT_CONSTANT_opcode 2579 ) { 2580 c = STATE(lchild.child1).cost_address1reg + STATE(lchild.child2.child1).cost_address1scaledreg + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isZERO(VR(p),54); 2581 if (c < p.cost_stm) { 2582 p.cost_stm = (char)(c); 2583 p.word0 = (p.word0 & 0xFFFFFF00) | 0x49; // p.stm = 73 2584 } 2585 } 2586 if ( // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2587 lchild.getOpcode() == ATTEMPT_INT_opcode && 2588 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2589 lchild.child2.child1.getOpcode() == INT_CONSTANT_opcode && 2590 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2591 rchild.getOpcode() == INT_CONSTANT_opcode 2592 ) { 2593 c = STATE(lchild.child1).cost_address + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isZERO(VR(p), 54); 2594 if (c < p.cost_stm) { 2595 p.cost_stm = (char)(c); 2596 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4A; // p.stm = 74 2597 } 2598 } 2599 if ( // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2600 lchild.getOpcode() == ATTEMPT_INT_opcode && 2601 lchild.child1.getOpcode() == INT_CONSTANT_opcode && 2602 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2603 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2604 rchild.getOpcode() == INT_CONSTANT_opcode 2605 ) { 2606 c = STATE(lchild.child2.child1).cost_address + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isZERO(VR(p),54); 2607 if (c < p.cost_stm) { 2608 p.cost_stm = (char)(c); 2609 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4B; // p.stm = 75 2610 } 2611 } 2612 if ( // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2613 lchild.getOpcode() == ATTEMPT_INT_opcode && 2614 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2615 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2616 rchild.getOpcode() == INT_CONSTANT_opcode 2617 ) { 2618 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isONE(VR(p), 54); 2619 if (c < p.cost_stm) { 2620 p.cost_stm = (char)(c); 2621 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4C; // p.stm = 76 2622 } 2623 } 2624 if ( // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2625 lchild.getOpcode() == ATTEMPT_INT_opcode && 2626 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2627 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2628 rchild.getOpcode() == INT_CONSTANT_opcode 2629 ) { 2630 c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1).cost_address1scaledreg + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isONE(VR(p), 54); 2631 if (c < p.cost_stm) { 2632 p.cost_stm = (char)(c); 2633 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4D; // p.stm = 77 2634 } 2635 } 2636 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2637 lchild.getOpcode() == ATTEMPT_INT_opcode && 2638 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2639 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2640 rchild.getOpcode() == INT_CONSTANT_opcode 2641 ) { 2642 c = STATE(lchild.child1).cost_address1scaledreg + STATE(lchild.child2.child1).cost_r + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isONE(VR(p), 54); 2643 if (c < p.cost_stm) { 2644 p.cost_stm = (char)(c); 2645 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4E; // p.stm = 78 2646 } 2647 } 2648 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2649 lchild.getOpcode() == ATTEMPT_INT_opcode && 2650 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2651 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2652 rchild.getOpcode() == INT_CONSTANT_opcode 2653 ) { 2654 c = STATE(lchild.child1).cost_address1scaledreg + STATE(lchild.child2.child1).cost_address1reg + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isONE(VR(p), 54); 2655 if (c < p.cost_stm) { 2656 p.cost_stm = (char)(c); 2657 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4F; // p.stm = 79 2658 } 2659 } 2660 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2661 lchild.getOpcode() == ATTEMPT_INT_opcode && 2662 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2663 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2664 rchild.getOpcode() == INT_CONSTANT_opcode 2665 ) { 2666 c = STATE(lchild.child1).cost_address1reg + STATE(lchild.child2.child1).cost_address1scaledreg + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isONE(VR(p), 54); 2667 if (c < p.cost_stm) { 2668 p.cost_stm = (char)(c); 2669 p.word0 = (p.word0 & 0xFFFFFF00) | 0x50; // p.stm = 80 2670 } 2671 } 2672 if ( // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2673 lchild.getOpcode() == ATTEMPT_INT_opcode && 2674 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2675 lchild.child2.child1.getOpcode() == INT_CONSTANT_opcode && 2676 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2677 rchild.getOpcode() == INT_CONSTANT_opcode 2678 ) { 2679 c = STATE(lchild.child1).cost_address + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isONE(VR(p), 54); 2680 if (c < p.cost_stm) { 2681 p.cost_stm = (char)(c); 2682 p.word0 = (p.word0 & 0xFFFFFF00) | 0x51; // p.stm = 81 2683 } 2684 } 2685 if ( // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 2686 lchild.getOpcode() == ATTEMPT_INT_opcode && 2687 lchild.child1.getOpcode() == INT_CONSTANT_opcode && 2688 lchild.child2.getOpcode() == OTHER_OPERAND_opcode && 2689 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode && 2690 rchild.getOpcode() == INT_CONSTANT_opcode 2691 ) { 2692 c = STATE(lchild.child2.child1).cost_address + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isONE(VR(p), 54); 2693 if (c < p.cost_stm) { 2694 p.cost_stm = (char)(c); 2695 p.word0 = (p.word0 & 0xFFFFFF00) | 0x52; // p.stm = 82 2696 } 2697 } 2698 // stm: INT_IFCMP(r,riv) 2699 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 26; 2700 if (c < p.cost_stm) { 2701 p.cost_stm = (char)(c); 2702 p.word0 = (p.word0 & 0xFFFFFF00) | 0x66; // p.stm = 102 2703 } 2704 if ( // stm: INT_IFCMP(r,INT_CONSTANT) 2705 rchild.getOpcode() == INT_CONSTANT_opcode 2706 ) { 2707 c = STATE(lchild).cost_r + (VR(p) == 0 && CMP_TO_TEST(IfCmp.getCond(P(p))) ? 24:INFINITE); 2708 if (c < p.cost_stm) { 2709 p.cost_stm = (char)(c); 2710 p.word0 = (p.word0 & 0xFFFFFF00) | 0x67; // p.stm = 103 2711 } 2712 } 2713 if ( // stm: INT_IFCMP(load8,INT_CONSTANT) 2714 rchild.getOpcode() == INT_CONSTANT_opcode 2715 ) { 2716 c = STATE(lchild).cost_load8 + FITS(IfCmp.getVal2(P(p)), 8, 28); 2717 if (c < p.cost_stm) { 2718 p.cost_stm = (char)(c); 2719 p.word0 = (p.word0 & 0xFFFFFF00) | 0x68; // p.stm = 104 2720 } 2721 } 2722 // stm: INT_IFCMP(uload8,r) 2723 c = STATE(lchild).cost_uload8 + STATE(rchild).cost_r + 28; 2724 if (c < p.cost_stm) { 2725 p.cost_stm = (char)(c); 2726 p.word0 = (p.word0 & 0xFFFFFF00) | 0x69; // p.stm = 105 2727 } 2728 // stm: INT_IFCMP(r,uload8) 2729 c = STATE(lchild).cost_r + STATE(rchild).cost_uload8 + 28; 2730 if (c < p.cost_stm) { 2731 p.cost_stm = (char)(c); 2732 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6A; // p.stm = 106 2733 } 2734 if ( // stm: INT_IFCMP(sload16,INT_CONSTANT) 2735 rchild.getOpcode() == INT_CONSTANT_opcode 2736 ) { 2737 c = STATE(lchild).cost_sload16 + FITS(IfCmp.getVal2(P(p)), 8, 28); 2738 if (c < p.cost_stm) { 2739 p.cost_stm = (char)(c); 2740 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6B; // p.stm = 107 2741 } 2742 } 2743 // stm: INT_IFCMP(load32,riv) 2744 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 28; 2745 if (c < p.cost_stm) { 2746 p.cost_stm = (char)(c); 2747 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6C; // p.stm = 108 2748 } 2749 // stm: INT_IFCMP(r,load32) 2750 c = STATE(lchild).cost_r + STATE(rchild).cost_load32 + 28; 2751 if (c < p.cost_stm) { 2752 p.cost_stm = (char)(c); 2753 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6D; // p.stm = 109 2754 } 2755 if ( // stm: INT_IFCMP(boolcmp,INT_CONSTANT) 2756 rchild.getOpcode() == INT_CONSTANT_opcode 2757 ) { 2758 c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && IfCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 1 && IfCmp.getCond(P(p)).isEQUAL()) ? 13:INFINITE); 2759 if (c < p.cost_stm) { 2760 p.cost_stm = (char)(c); 2761 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6E; // p.stm = 110 2762 } 2763 } 2764 if ( // stm: INT_IFCMP(boolcmp,INT_CONSTANT) 2765 rchild.getOpcode() == INT_CONSTANT_opcode 2766 ) { 2767 c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && IfCmp.getCond(P(p)).isEQUAL()) || (VR(p) == 1 && IfCmp.getCond(P(p)).isNOT_EQUAL()) ? 13:INFINITE); 2768 if (c < p.cost_stm) { 2769 p.cost_stm = (char)(c); 2770 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6F; // p.stm = 111 2771 } 2772 } 2773 if ( // stm: INT_IFCMP(cz,INT_CONSTANT) 2774 rchild.getOpcode() == INT_CONSTANT_opcode 2775 ) { 2776 c = STATE(lchild).cost_cz + isZERO(VR(p), 11); 2777 if (c < p.cost_stm) { 2778 p.cost_stm = (char)(c); 2779 p.word0 = (p.word0 & 0xFFFFFF00) | 0x70; // p.stm = 112 2780 } 2781 } 2782 if ( // stm: INT_IFCMP(szp,INT_CONSTANT) 2783 rchild.getOpcode() == INT_CONSTANT_opcode 2784 ) { 2785 c = STATE(lchild).cost_szp + (VR(p) == 0 && EQ_NE(IfCmp.getCond(P(p)))?11:INFINITE); 2786 if (c < p.cost_stm) { 2787 p.cost_stm = (char)(c); 2788 p.word0 = (p.word0 & 0xFFFFFF00) | 0x71; // p.stm = 113 2789 } 2790 } 2791 if ( // stm: INT_IFCMP(bittest,INT_CONSTANT) 2792 rchild.getOpcode() == INT_CONSTANT_opcode 2793 ) { 2794 c = STATE(lchild).cost_bittest + ((VR(p) == 0 || VR(p) == 1) && EQ_NE(IfCmp.getCond(P(p))) ? 11 : INFINITE); 2795 if (c < p.cost_stm) { 2796 p.cost_stm = (char)(c); 2797 p.word0 = (p.word0 & 0xFFFFFF00) | 0x72; // p.stm = 114 2798 } 2799 } 2800 } 2801 2802 private void label_INT_IFCMP2(BURS_TreeNode p) { 2803 p.word0 = 0; 2804 p.initCost(); 2805 BURS_TreeNode lchild, rchild; 2806 lchild = p.child1; 2807 rchild = p.child2; 2808 label(lchild); 2809 label(rchild); 2810 int c; 2811 // stm: INT_IFCMP2(r,riv) 2812 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 26; 2813 if (c < p.cost_stm) { 2814 p.cost_stm = (char)(c); 2815 p.word0 = (p.word0 & 0xFFFFFF00) | 0x73; // p.stm = 115 2816 } 2817 // stm: INT_IFCMP2(load32,riv) 2818 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 28; 2819 if (c < p.cost_stm) { 2820 p.cost_stm = (char)(c); 2821 p.word0 = (p.word0 & 0xFFFFFF00) | 0x74; // p.stm = 116 2822 } 2823 // stm: INT_IFCMP2(riv,load32) 2824 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 28; 2825 if (c < p.cost_stm) { 2826 p.cost_stm = (char)(c); 2827 p.word0 = (p.word0 & 0xFFFFFF00) | 0x75; // p.stm = 117 2828 } 2829 } 2830 2831 private void label_LONG_IFCMP(BURS_TreeNode p) { 2832 p.word0 = 0; 2833 p.initCost(); 2834 BURS_TreeNode lchild, rchild; 2835 lchild = p.child1; 2836 rchild = p.child2; 2837 label(lchild); 2838 label(rchild); 2839 int c; 2840 // stm: LONG_IFCMP(rlv,rlv) 2841 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 30; 2842 if (c < p.cost_stm) { 2843 p.cost_stm = (char)(c); 2844 p.word0 = (p.word0 & 0xFFFFFF00) | 0x76; // p.stm = 118 2845 } 2846 } 2847 2848 private void label_FLOAT_IFCMP(BURS_TreeNode p) { 2849 p.word0 = 0; 2850 p.initCost(); 2851 BURS_TreeNode lchild, rchild; 2852 lchild = p.child1; 2853 rchild = p.child2; 2854 label(lchild); 2855 label(rchild); 2856 int c; 2857 // stm: FLOAT_IFCMP(r,r) 2858 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 2859 if (c < p.cost_stm) { 2860 p.cost_stm = (char)(c); 2861 p.word0 = (p.word0 & 0xFFFFFF00) | 0x87; // p.stm = 135 2862 } 2863 // stm: FLOAT_IFCMP(r,float_load) 2864 c = STATE(lchild).cost_r + STATE(rchild).cost_float_load + 15; 2865 if (c < p.cost_stm) { 2866 p.cost_stm = (char)(c); 2867 p.word0 = (p.word0 & 0xFFFFFF00) | 0x88; // p.stm = 136 2868 } 2869 // stm: FLOAT_IFCMP(float_load,r) 2870 c = STATE(lchild).cost_float_load + STATE(rchild).cost_r + 15; 2871 if (c < p.cost_stm) { 2872 p.cost_stm = (char)(c); 2873 p.word0 = (p.word0 & 0xFFFFFF00) | 0x89; // p.stm = 137 2874 } 2875 } 2876 2877 private void label_DOUBLE_IFCMP(BURS_TreeNode p) { 2878 p.word0 = 0; 2879 p.initCost(); 2880 BURS_TreeNode lchild, rchild; 2881 lchild = p.child1; 2882 rchild = p.child2; 2883 label(lchild); 2884 label(rchild); 2885 int c; 2886 // stm: DOUBLE_IFCMP(r,r) 2887 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 2888 if (c < p.cost_stm) { 2889 p.cost_stm = (char)(c); 2890 p.word0 = (p.word0 & 0xFFFFFF00) | 0x8A; // p.stm = 138 2891 } 2892 // stm: DOUBLE_IFCMP(r,double_load) 2893 c = STATE(lchild).cost_r + STATE(rchild).cost_double_load + 15; 2894 if (c < p.cost_stm) { 2895 p.cost_stm = (char)(c); 2896 p.word0 = (p.word0 & 0xFFFFFF00) | 0x8B; // p.stm = 139 2897 } 2898 // stm: DOUBLE_IFCMP(double_load,r) 2899 c = STATE(lchild).cost_double_load + STATE(rchild).cost_r + 15; 2900 if (c < p.cost_stm) { 2901 p.cost_stm = (char)(c); 2902 p.word0 = (p.word0 & 0xFFFFFF00) | 0x8C; // p.stm = 140 2903 } 2904 } 2905 2906 private void label_UNINT_BEGIN(BURS_TreeNode p) { 2907 p.word0 = 0; 2908 p.initCost(); 2909 // stm: UNINT_BEGIN 2910 if (10 < p.cost_stm) { 2911 p.cost_stm = (char)(10); 2912 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3; // p.stm = 3 2913 } 2914 } 2915 2916 private void label_UNINT_END(BURS_TreeNode p) { 2917 p.word0 = 0; 2918 p.initCost(); 2919 // stm: UNINT_END 2920 if (10 < p.cost_stm) { 2921 p.cost_stm = (char)(10); 2922 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4; // p.stm = 4 2923 } 2924 } 2925 2926 private void label_FENCE(BURS_TreeNode p) { 2927 p.word0 = 0; 2928 p.initCost(); 2929 // stm: FENCE 2930 if (11 < p.cost_stm) { 2931 p.cost_stm = (char)(11); 2932 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7B; // p.stm = 123 2933 } 2934 } 2935 2936 private void label_READ_CEILING(BURS_TreeNode p) { 2937 p.word0 = 0; 2938 p.initCost(); 2939 // stm: READ_CEILING 2940 if (11 < p.cost_stm) { 2941 p.cost_stm = (char)(11); 2942 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7A; // p.stm = 122 2943 } 2944 } 2945 2946 private void label_WRITE_FLOOR(BURS_TreeNode p) { 2947 p.word0 = 0; 2948 p.initCost(); 2949 // stm: WRITE_FLOOR 2950 if (11 < p.cost_stm) { 2951 p.cost_stm = (char)(11); 2952 p.word0 = (p.word0 & 0xFFFFFF00) | 0x79; // p.stm = 121 2953 } 2954 } 2955 2956 private void label_NOP(BURS_TreeNode p) { 2957 p.word0 = 0; 2958 p.initCost(); 2959 // stm: NOP 2960 if (10 < p.cost_stm) { 2961 p.cost_stm = (char)(10); 2962 p.word0 = (p.word0 & 0xFFFFFF00) | 0xA; // p.stm = 10 2963 } 2964 } 2965 2966 private void label_INT_MOVE(BURS_TreeNode p) { 2967 p.word0 = 0; 2968 p.initCost(); 2969 BURS_TreeNode lchild; 2970 lchild = p.child1; 2971 label(lchild); 2972 int c; 2973 // address1reg: INT_MOVE(r) 2974 c = STATE(lchild).cost_r + 0; 2975 if (c < p.cost_address1reg) { 2976 p.cost_address1reg = (char)(c); 2977 p.word2 = (p.word2 & 0xFFFFFFF8) | 0x2; // p.address1reg = 2 2978 closure_address1reg(p, c); 2979 } 2980 // r: INT_MOVE(address) 2981 c = STATE(lchild).cost_address + 20; 2982 if (c < p.cost_r) { 2983 p.cost_r = (char)(c); 2984 p.word0 = (p.word0 & 0xFFFF00FF) | 0x900; // p.r = 9 2985 closure_r(p, c); 2986 } 2987 // r: INT_MOVE(riv) 2988 c = STATE(lchild).cost_riv + 13; 2989 if (c < p.cost_r) { 2990 p.cost_r = (char)(c); 2991 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6300; // p.r = 99 2992 closure_r(p, c); 2993 } 2994 // czr: INT_MOVE(czr) 2995 c = STATE(lchild).cost_czr + 11; 2996 if (c < p.cost_czr) { 2997 p.cost_czr = (char)(c); 2998 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x70000; // p.czr = 7 2999 closure_czr(p, c); 3000 } 3001 // cz: INT_MOVE(cz) 3002 c = STATE(lchild).cost_cz + 0; 3003 if (c < p.cost_cz) { 3004 p.cost_cz = (char)(c); 3005 p.word0 = (p.word0 & 0xFFE7FFFF) | 0x100000; // p.cz = 2 3006 } 3007 // szpr: INT_MOVE(szpr) 3008 c = STATE(lchild).cost_szpr + 11; 3009 if (c < p.cost_szpr) { 3010 p.cost_szpr = (char)(c); 3011 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2C00000; // p.szpr = 22 3012 closure_szpr(p, c); 3013 } 3014 // szp: INT_MOVE(szp) 3015 c = STATE(lchild).cost_szp + 0; 3016 if (c < p.cost_szp) { 3017 p.cost_szp = (char)(c); 3018 p.word0 = (p.word0 & 0xE3FFFFFF) | 0x14000000; // p.szp = 5 3019 } 3020 // address1reg: INT_MOVE(address1reg) 3021 c = STATE(lchild).cost_address1reg + 0; 3022 if (c < p.cost_address1reg) { 3023 p.cost_address1reg = (char)(c); 3024 p.word2 = (p.word2 & 0xFFFFFFF8) | 0x4; // p.address1reg = 4 3025 closure_address1reg(p, c); 3026 } 3027 // address1scaledreg: INT_MOVE(address1scaledreg) 3028 c = STATE(lchild).cost_address1scaledreg + 0; 3029 if (c < p.cost_address1scaledreg) { 3030 p.cost_address1scaledreg = (char)(c); 3031 p.word1 = (p.word1 & 0x8FFFFFFF) | 0x40000000; // p.address1scaledreg = 4 3032 closure_address1scaledreg(p, c); 3033 } 3034 // address: INT_MOVE(address) 3035 c = STATE(lchild).cost_address + 0; 3036 if (c < p.cost_address) { 3037 p.cost_address = (char)(c); 3038 p.word2 = (p.word2 & 0xFFFFFF87) | 0x40; // p.address = 8 3039 } 3040 // sload8: INT_MOVE(sload8) 3041 c = STATE(lchild).cost_sload8 + 0; 3042 if (c < p.cost_sload8) { 3043 p.cost_sload8 = (char)(c); 3044 p.word1 = (p.word1 & 0xFFFFFF9F) | 0x60; // p.sload8 = 3 3045 closure_sload8(p, c); 3046 } 3047 // uload8: INT_MOVE(uload8) 3048 c = STATE(lchild).cost_uload8 + 0; 3049 if (c < p.cost_uload8) { 3050 p.cost_uload8 = (char)(c); 3051 p.word1 = (p.word1 & 0xFFFFFC7F) | 0x180; // p.uload8 = 3 3052 closure_uload8(p, c); 3053 } 3054 // load8: INT_MOVE(load8) 3055 c = STATE(lchild).cost_load8 + 0; 3056 if (c < p.cost_load8) { 3057 p.cost_load8 = (char)(c); 3058 p.word1 = (p.word1 & 0xFFFFF3FF) | 0xC00; // p.load8 = 3 3059 closure_load8(p, c); 3060 } 3061 // sload16: INT_MOVE(sload16) 3062 c = STATE(lchild).cost_sload16 + 0; 3063 if (c < p.cost_sload16) { 3064 p.cost_sload16 = (char)(c); 3065 p.word1 = (p.word1 & 0xFFFFCFFF) | 0x3000; // p.sload16 = 3 3066 closure_sload16(p, c); 3067 } 3068 // uload16: INT_MOVE(uload16) 3069 c = STATE(lchild).cost_uload16 + 0; 3070 if (c < p.cost_uload16) { 3071 p.cost_uload16 = (char)(c); 3072 p.word1 = (p.word1 & 0xFFFF3FFF) | 0xC000; // p.uload16 = 3 3073 closure_uload16(p, c); 3074 } 3075 // load16: INT_MOVE(load16) 3076 c = STATE(lchild).cost_load16 + 0; 3077 if (c < p.cost_load16) { 3078 p.cost_load16 = (char)(c); 3079 p.word1 = (p.word1 & 0xFFFCFFFF) | 0x30000; // p.load16 = 3 3080 closure_load16(p, c); 3081 } 3082 // load32: INT_MOVE(load32) 3083 c = STATE(lchild).cost_load32 + 0; 3084 if (c < p.cost_load32) { 3085 p.cost_load32 = (char)(c); 3086 p.word1 = (p.word1 & 0xFFE3FFFF) | 0x140000; // p.load32 = 5 3087 closure_load32(p, c); 3088 } 3089 } 3090 3091 private void label_LONG_MOVE(BURS_TreeNode p) { 3092 p.word0 = 0; 3093 p.initCost(); 3094 BURS_TreeNode lchild; 3095 lchild = p.child1; 3096 label(lchild); 3097 int c; 3098 // load64: LONG_MOVE(load64) 3099 c = STATE(lchild).cost_load64 + 0; 3100 if (c < p.cost_load64) { 3101 p.cost_load64 = (char)(c); 3102 p.word1 = (p.word1 & 0xF1FFFFFF) | 0x6000000; // p.load64 = 3 3103 } 3104 // r: LONG_MOVE(r) 3105 c = STATE(lchild).cost_r + 23; 3106 if (c < p.cost_r) { 3107 p.cost_r = (char)(c); 3108 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6400; // p.r = 100 3109 closure_r(p, c); 3110 } 3111 if ( // r: LONG_MOVE(LONG_CONSTANT) 3112 lchild.getOpcode() == LONG_CONSTANT_opcode 3113 ) { 3114 c = 21; 3115 if (c < p.cost_r) { 3116 p.cost_r = (char)(c); 3117 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6500; // p.r = 101 3118 closure_r(p, c); 3119 } 3120 } 3121 } 3122 3123 private void label_FLOAT_MOVE(BURS_TreeNode p) { 3124 p.word0 = 0; 3125 p.initCost(); 3126 BURS_TreeNode lchild; 3127 lchild = p.child1; 3128 label(lchild); 3129 int c; 3130 // r: FLOAT_MOVE(r) 3131 c = STATE(lchild).cost_r + 13; 3132 if (c < p.cost_r) { 3133 p.cost_r = (char)(c); 3134 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB400; // p.r = 180 3135 closure_r(p, c); 3136 } 3137 } 3138 3139 private void label_DOUBLE_MOVE(BURS_TreeNode p) { 3140 p.word0 = 0; 3141 p.initCost(); 3142 BURS_TreeNode lchild; 3143 lchild = p.child1; 3144 label(lchild); 3145 int c; 3146 // r: DOUBLE_MOVE(r) 3147 c = STATE(lchild).cost_r + 13; 3148 if (c < p.cost_r) { 3149 p.cost_r = (char)(c); 3150 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB500; // p.r = 181 3151 closure_r(p, c); 3152 } 3153 } 3154 3155 private void label_GUARD_MOVE(BURS_TreeNode p) { 3156 p.word0 = 0; 3157 p.initCost(); 3158 // r: GUARD_MOVE 3159 if (11 < p.cost_r) { 3160 p.cost_r = (char)(11); 3161 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA00; // p.r = 10 3162 closure_r(p, 11); 3163 } 3164 } 3165 3166 private void label_GUARD_COMBINE(BURS_TreeNode p) { 3167 p.word0 = 0; 3168 p.initCost(); 3169 // r: GUARD_COMBINE 3170 if (11 < p.cost_r) { 3171 p.cost_r = (char)(11); 3172 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB00; // p.r = 11 3173 closure_r(p, 11); 3174 } 3175 } 3176 3177 private void label_INT_ADD(BURS_TreeNode p) { 3178 p.word0 = 0; 3179 p.initCost(); 3180 BURS_TreeNode lchild, rchild; 3181 lchild = p.child1; 3182 rchild = p.child2; 3183 label(lchild); 3184 label(rchild); 3185 int c; 3186 if ( // address1reg: INT_ADD(r,INT_CONSTANT) 3187 rchild.getOpcode() == INT_CONSTANT_opcode 3188 ) { 3189 c = STATE(lchild).cost_r + 0; 3190 if (c < p.cost_address1reg) { 3191 p.cost_address1reg = (char)(c); 3192 p.word2 = (p.word2 & 0xFFFFFFF8) | 0x1; // p.address1reg = 1 3193 closure_address1reg(p, c); 3194 } 3195 } 3196 // address: INT_ADD(r,r) 3197 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 0; 3198 if (c < p.cost_address) { 3199 p.cost_address = (char)(c); 3200 p.word2 = (p.word2 & 0xFFFFFF87) | 0x10; // p.address = 2 3201 } 3202 if ( // address1reg: INT_ADD(address1reg,INT_CONSTANT) 3203 rchild.getOpcode() == INT_CONSTANT_opcode 3204 ) { 3205 c = STATE(lchild).cost_address1reg + 0; 3206 if (c < p.cost_address1reg) { 3207 p.cost_address1reg = (char)(c); 3208 p.word2 = (p.word2 & 0xFFFFFFF8) | 0x3; // p.address1reg = 3 3209 closure_address1reg(p, c); 3210 } 3211 } 3212 if ( // address1scaledreg: INT_ADD(address1scaledreg,INT_CONSTANT) 3213 rchild.getOpcode() == INT_CONSTANT_opcode 3214 ) { 3215 c = STATE(lchild).cost_address1scaledreg + 0; 3216 if (c < p.cost_address1scaledreg) { 3217 p.cost_address1scaledreg = (char)(c); 3218 p.word1 = (p.word1 & 0x8FFFFFFF) | 0x30000000; // p.address1scaledreg = 3 3219 closure_address1scaledreg(p, c); 3220 } 3221 } 3222 // address: INT_ADD(r,address1scaledreg) 3223 c = STATE(lchild).cost_r + STATE(rchild).cost_address1scaledreg + 0; 3224 if (c < p.cost_address) { 3225 p.cost_address = (char)(c); 3226 p.word2 = (p.word2 & 0xFFFFFF87) | 0x18; // p.address = 3 3227 } 3228 // address: INT_ADD(address1scaledreg,r) 3229 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_r + 0; 3230 if (c < p.cost_address) { 3231 p.cost_address = (char)(c); 3232 p.word2 = (p.word2 & 0xFFFFFF87) | 0x20; // p.address = 4 3233 } 3234 if ( // address: INT_ADD(address1scaledreg,INT_CONSTANT) 3235 rchild.getOpcode() == INT_CONSTANT_opcode 3236 ) { 3237 c = STATE(lchild).cost_address1scaledreg + 0; 3238 if (c < p.cost_address) { 3239 p.cost_address = (char)(c); 3240 p.word2 = (p.word2 & 0xFFFFFF87) | 0x28; // p.address = 5 3241 } 3242 } 3243 // address: INT_ADD(address1scaledreg,address1reg) 3244 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 0; 3245 if (c < p.cost_address) { 3246 p.cost_address = (char)(c); 3247 p.word2 = (p.word2 & 0xFFFFFF87) | 0x30; // p.address = 6 3248 } 3249 // address: INT_ADD(address1reg,address1scaledreg) 3250 c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 0; 3251 if (c < p.cost_address) { 3252 p.cost_address = (char)(c); 3253 p.word2 = (p.word2 & 0xFFFFFF87) | 0x38; // p.address = 7 3254 } 3255 // r: INT_ADD(address1scaledreg,r) 3256 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_r + 11; 3257 if (c < p.cost_r) { 3258 p.cost_r = (char)(c); 3259 p.word0 = (p.word0 & 0xFFFF00FF) | 0x400; // p.r = 4 3260 closure_r(p, c); 3261 } 3262 // r: INT_ADD(r,address1scaledreg) 3263 c = STATE(lchild).cost_r + STATE(rchild).cost_address1scaledreg + 11; 3264 if (c < p.cost_r) { 3265 p.cost_r = (char)(c); 3266 p.word0 = (p.word0 & 0xFFFF00FF) | 0x500; // p.r = 5 3267 closure_r(p, c); 3268 } 3269 // r: INT_ADD(address1scaledreg,address1reg) 3270 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 11; 3271 if (c < p.cost_r) { 3272 p.cost_r = (char)(c); 3273 p.word0 = (p.word0 & 0xFFFF00FF) | 0x600; // p.r = 6 3274 closure_r(p, c); 3275 } 3276 // r: INT_ADD(address1reg,address1scaledreg) 3277 c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 11; 3278 if (c < p.cost_r) { 3279 p.cost_r = (char)(c); 3280 p.word0 = (p.word0 & 0xFFFF00FF) | 0x700; // p.r = 7 3281 closure_r(p, c); 3282 } 3283 if ( // r: INT_ADD(address,INT_CONSTANT) 3284 rchild.getOpcode() == INT_CONSTANT_opcode 3285 ) { 3286 c = STATE(lchild).cost_address + 11; 3287 if (c < p.cost_r) { 3288 p.cost_r = (char)(c); 3289 p.word0 = (p.word0 & 0xFFFF00FF) | 0x800; // p.r = 8 3290 closure_r(p, c); 3291 } 3292 } 3293 // czr: INT_ADD(r,riv) 3294 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 13; 3295 if (c < p.cost_czr) { 3296 p.cost_czr = (char)(c); 3297 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x10000; // p.czr = 1 3298 closure_czr(p, c); 3299 } 3300 // r: INT_ADD(r,riv) 3301 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + (!Binary.getResult(P(p)).similar(Binary.getVal1(P(p))) && !Binary.getResult(P(p)).similar(Binary.getVal2(P(p))) ? 11 : INFINITE); 3302 if (c < p.cost_r) { 3303 p.cost_r = (char)(c); 3304 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2E00; // p.r = 46 3305 closure_r(p, c); 3306 } 3307 // czr: INT_ADD(riv,load32) 3308 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15; 3309 if (c < p.cost_czr) { 3310 p.cost_czr = (char)(c); 3311 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x20000; // p.czr = 2 3312 closure_czr(p, c); 3313 } 3314 // czr: INT_ADD(load32,riv) 3315 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15; 3316 if (c < p.cost_czr) { 3317 p.cost_czr = (char)(c); 3318 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x30000; // p.czr = 3 3319 closure_czr(p, c); 3320 } 3321 } 3322 3323 private void label_LONG_ADD(BURS_TreeNode p) { 3324 p.word0 = 0; 3325 p.initCost(); 3326 BURS_TreeNode lchild, rchild; 3327 lchild = p.child1; 3328 rchild = p.child2; 3329 label(lchild); 3330 label(rchild); 3331 int c; 3332 // r: LONG_ADD(r,rlv) 3333 c = STATE(lchild).cost_r + STATE(rchild).cost_rlv + 23; 3334 if (c < p.cost_r) { 3335 p.cost_r = (char)(c); 3336 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4200; // p.r = 66 3337 closure_r(p, c); 3338 } 3339 } 3340 3341 private void label_FLOAT_ADD(BURS_TreeNode p) { 3342 p.word0 = 0; 3343 p.initCost(); 3344 BURS_TreeNode lchild, rchild; 3345 lchild = p.child1; 3346 rchild = p.child2; 3347 label(lchild); 3348 label(rchild); 3349 int c; 3350 // r: FLOAT_ADD(r,r) 3351 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 3352 if (c < p.cost_r) { 3353 p.cost_r = (char)(c); 3354 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9800; // p.r = 152 3355 closure_r(p, c); 3356 } 3357 // r: FLOAT_ADD(r,float_load) 3358 c = STATE(lchild).cost_r + STATE(rchild).cost_float_load + 15; 3359 if (c < p.cost_r) { 3360 p.cost_r = (char)(c); 3361 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9900; // p.r = 153 3362 closure_r(p, c); 3363 } 3364 // r: FLOAT_ADD(float_load,r) 3365 c = STATE(lchild).cost_float_load + STATE(rchild).cost_r + 15; 3366 if (c < p.cost_r) { 3367 p.cost_r = (char)(c); 3368 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9A00; // p.r = 154 3369 closure_r(p, c); 3370 } 3371 } 3372 3373 private void label_DOUBLE_ADD(BURS_TreeNode p) { 3374 p.word0 = 0; 3375 p.initCost(); 3376 BURS_TreeNode lchild, rchild; 3377 lchild = p.child1; 3378 rchild = p.child2; 3379 label(lchild); 3380 label(rchild); 3381 int c; 3382 // r: DOUBLE_ADD(r,r) 3383 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 3384 if (c < p.cost_r) { 3385 p.cost_r = (char)(c); 3386 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9B00; // p.r = 155 3387 closure_r(p, c); 3388 } 3389 // r: DOUBLE_ADD(r,double_load) 3390 c = STATE(lchild).cost_r + STATE(rchild).cost_double_load + 15; 3391 if (c < p.cost_r) { 3392 p.cost_r = (char)(c); 3393 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9C00; // p.r = 156 3394 closure_r(p, c); 3395 } 3396 // r: DOUBLE_ADD(double_load,r) 3397 c = STATE(lchild).cost_double_load + STATE(rchild).cost_r + 15; 3398 if (c < p.cost_r) { 3399 p.cost_r = (char)(c); 3400 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9D00; // p.r = 157 3401 closure_r(p, c); 3402 } 3403 } 3404 3405 private void label_INT_SUB(BURS_TreeNode p) { 3406 p.word0 = 0; 3407 p.initCost(); 3408 BURS_TreeNode lchild, rchild; 3409 lchild = p.child1; 3410 rchild = p.child2; 3411 label(lchild); 3412 label(rchild); 3413 int c; 3414 // czr: INT_SUB(riv,r) 3415 c = STATE(lchild).cost_riv + STATE(rchild).cost_r + 13; 3416 if (c < p.cost_czr) { 3417 p.cost_czr = (char)(c); 3418 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x40000; // p.czr = 4 3419 closure_czr(p, c); 3420 } 3421 // r: INT_SUB(riv,r) 3422 c = STATE(lchild).cost_riv + STATE(rchild).cost_r + (Binary.getResult(P(p)).similar(Binary.getVal2(P(p))) ? 13-2 : INFINITE); 3423 if (c < p.cost_r) { 3424 p.cost_r = (char)(c); 3425 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2F00; // p.r = 47 3426 closure_r(p, c); 3427 } 3428 // r: INT_SUB(load32,r) 3429 c = STATE(lchild).cost_load32 + STATE(rchild).cost_r + (Binary.getResult(P(p)).similar(Binary.getVal2(P(p))) ? 15-2 : INFINITE); 3430 if (c < p.cost_r) { 3431 p.cost_r = (char)(c); 3432 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3000; // p.r = 48 3433 closure_r(p, c); 3434 } 3435 // czr: INT_SUB(riv,load32) 3436 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15; 3437 if (c < p.cost_czr) { 3438 p.cost_czr = (char)(c); 3439 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x50000; // p.czr = 5 3440 closure_czr(p, c); 3441 } 3442 // czr: INT_SUB(load32,riv) 3443 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15; 3444 if (c < p.cost_czr) { 3445 p.cost_czr = (char)(c); 3446 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x60000; // p.czr = 6 3447 closure_czr(p, c); 3448 } 3449 } 3450 3451 private void label_LONG_SUB(BURS_TreeNode p) { 3452 p.word0 = 0; 3453 p.initCost(); 3454 BURS_TreeNode lchild, rchild; 3455 lchild = p.child1; 3456 rchild = p.child2; 3457 label(lchild); 3458 label(rchild); 3459 int c; 3460 // r: LONG_SUB(rlv,rlv) 3461 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23; 3462 if (c < p.cost_r) { 3463 p.cost_r = (char)(c); 3464 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4300; // p.r = 67 3465 closure_r(p, c); 3466 } 3467 } 3468 3469 private void label_FLOAT_SUB(BURS_TreeNode p) { 3470 p.word0 = 0; 3471 p.initCost(); 3472 BURS_TreeNode lchild, rchild; 3473 lchild = p.child1; 3474 rchild = p.child2; 3475 label(lchild); 3476 label(rchild); 3477 int c; 3478 // r: FLOAT_SUB(r,r) 3479 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 3480 if (c < p.cost_r) { 3481 p.cost_r = (char)(c); 3482 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9E00; // p.r = 158 3483 closure_r(p, c); 3484 } 3485 // r: FLOAT_SUB(r,float_load) 3486 c = STATE(lchild).cost_r + STATE(rchild).cost_float_load + 15; 3487 if (c < p.cost_r) { 3488 p.cost_r = (char)(c); 3489 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9F00; // p.r = 159 3490 closure_r(p, c); 3491 } 3492 } 3493 3494 private void label_DOUBLE_SUB(BURS_TreeNode p) { 3495 p.word0 = 0; 3496 p.initCost(); 3497 BURS_TreeNode lchild, rchild; 3498 lchild = p.child1; 3499 rchild = p.child2; 3500 label(lchild); 3501 label(rchild); 3502 int c; 3503 // r: DOUBLE_SUB(r,r) 3504 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 3505 if (c < p.cost_r) { 3506 p.cost_r = (char)(c); 3507 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA000; // p.r = 160 3508 closure_r(p, c); 3509 } 3510 // r: DOUBLE_SUB(r,double_load) 3511 c = STATE(lchild).cost_r + STATE(rchild).cost_double_load + 15; 3512 if (c < p.cost_r) { 3513 p.cost_r = (char)(c); 3514 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA100; // p.r = 161 3515 closure_r(p, c); 3516 } 3517 } 3518 3519 private void label_INT_MUL(BURS_TreeNode p) { 3520 p.word0 = 0; 3521 p.initCost(); 3522 BURS_TreeNode lchild, rchild; 3523 lchild = p.child1; 3524 rchild = p.child2; 3525 label(lchild); 3526 label(rchild); 3527 int c; 3528 // r: INT_MUL(riv,riv) 3529 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13; 3530 if (c < p.cost_r) { 3531 p.cost_r = (char)(c); 3532 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3100; // p.r = 49 3533 closure_r(p, c); 3534 } 3535 // r: INT_MUL(riv,load32) 3536 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15; 3537 if (c < p.cost_r) { 3538 p.cost_r = (char)(c); 3539 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3200; // p.r = 50 3540 closure_r(p, c); 3541 } 3542 // r: INT_MUL(load32,riv) 3543 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15; 3544 if (c < p.cost_r) { 3545 p.cost_r = (char)(c); 3546 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3300; // p.r = 51 3547 closure_r(p, c); 3548 } 3549 } 3550 3551 private void label_LONG_MUL(BURS_TreeNode p) { 3552 p.word0 = 0; 3553 p.initCost(); 3554 BURS_TreeNode lchild, rchild; 3555 lchild = p.child1; 3556 rchild = p.child2; 3557 label(lchild); 3558 label(rchild); 3559 int c; 3560 // r: LONG_MUL(rlv,rlv) 3561 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23; 3562 if (c < p.cost_r) { 3563 p.cost_r = (char)(c); 3564 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4400; // p.r = 68 3565 closure_r(p, c); 3566 } 3567 } 3568 3569 private void label_FLOAT_MUL(BURS_TreeNode p) { 3570 p.word0 = 0; 3571 p.initCost(); 3572 BURS_TreeNode lchild, rchild; 3573 lchild = p.child1; 3574 rchild = p.child2; 3575 label(lchild); 3576 label(rchild); 3577 int c; 3578 // r: FLOAT_MUL(r,r) 3579 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 3580 if (c < p.cost_r) { 3581 p.cost_r = (char)(c); 3582 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA200; // p.r = 162 3583 closure_r(p, c); 3584 } 3585 // r: FLOAT_MUL(r,float_load) 3586 c = STATE(lchild).cost_r + STATE(rchild).cost_float_load + 15; 3587 if (c < p.cost_r) { 3588 p.cost_r = (char)(c); 3589 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA300; // p.r = 163 3590 closure_r(p, c); 3591 } 3592 // r: FLOAT_MUL(float_load,r) 3593 c = STATE(lchild).cost_float_load + STATE(rchild).cost_r + 15; 3594 if (c < p.cost_r) { 3595 p.cost_r = (char)(c); 3596 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA400; // p.r = 164 3597 closure_r(p, c); 3598 } 3599 } 3600 3601 private void label_DOUBLE_MUL(BURS_TreeNode p) { 3602 p.word0 = 0; 3603 p.initCost(); 3604 BURS_TreeNode lchild, rchild; 3605 lchild = p.child1; 3606 rchild = p.child2; 3607 label(lchild); 3608 label(rchild); 3609 int c; 3610 // r: DOUBLE_MUL(r,r) 3611 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 3612 if (c < p.cost_r) { 3613 p.cost_r = (char)(c); 3614 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA500; // p.r = 165 3615 closure_r(p, c); 3616 } 3617 // r: DOUBLE_MUL(r,double_load) 3618 c = STATE(lchild).cost_r + STATE(rchild).cost_double_load + 15; 3619 if (c < p.cost_r) { 3620 p.cost_r = (char)(c); 3621 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA600; // p.r = 166 3622 closure_r(p, c); 3623 } 3624 // r: DOUBLE_MUL(double_load,r) 3625 c = STATE(lchild).cost_double_load + STATE(rchild).cost_r + 15; 3626 if (c < p.cost_r) { 3627 p.cost_r = (char)(c); 3628 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA700; // p.r = 167 3629 closure_r(p, c); 3630 } 3631 } 3632 3633 private void label_INT_DIV(BURS_TreeNode p) { 3634 p.word0 = 0; 3635 p.initCost(); 3636 BURS_TreeNode lchild, rchild; 3637 lchild = p.child1; 3638 rchild = p.child2; 3639 label(lchild); 3640 label(rchild); 3641 int c; 3642 // r: INT_DIV(riv,riv) 3643 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 52; 3644 if (c < p.cost_r) { 3645 p.cost_r = (char)(c); 3646 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3400; // p.r = 52 3647 closure_r(p, c); 3648 } 3649 // r: INT_DIV(riv,load32) 3650 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 55; 3651 if (c < p.cost_r) { 3652 p.cost_r = (char)(c); 3653 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3500; // p.r = 53 3654 closure_r(p, c); 3655 } 3656 } 3657 3658 private void label_FLOAT_DIV(BURS_TreeNode p) { 3659 p.word0 = 0; 3660 p.initCost(); 3661 BURS_TreeNode lchild, rchild; 3662 lchild = p.child1; 3663 rchild = p.child2; 3664 label(lchild); 3665 label(rchild); 3666 int c; 3667 // r: FLOAT_DIV(r,r) 3668 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 3669 if (c < p.cost_r) { 3670 p.cost_r = (char)(c); 3671 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA800; // p.r = 168 3672 closure_r(p, c); 3673 } 3674 // r: FLOAT_DIV(r,float_load) 3675 c = STATE(lchild).cost_r + STATE(rchild).cost_float_load + 15; 3676 if (c < p.cost_r) { 3677 p.cost_r = (char)(c); 3678 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA900; // p.r = 169 3679 closure_r(p, c); 3680 } 3681 } 3682 3683 private void label_DOUBLE_DIV(BURS_TreeNode p) { 3684 p.word0 = 0; 3685 p.initCost(); 3686 BURS_TreeNode lchild, rchild; 3687 lchild = p.child1; 3688 rchild = p.child2; 3689 label(lchild); 3690 label(rchild); 3691 int c; 3692 // r: DOUBLE_DIV(r,r) 3693 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 3694 if (c < p.cost_r) { 3695 p.cost_r = (char)(c); 3696 p.word0 = (p.word0 & 0xFFFF00FF) | 0xAA00; // p.r = 170 3697 closure_r(p, c); 3698 } 3699 // r: DOUBLE_DIV(r,double_load) 3700 c = STATE(lchild).cost_r + STATE(rchild).cost_double_load + 15; 3701 if (c < p.cost_r) { 3702 p.cost_r = (char)(c); 3703 p.word0 = (p.word0 & 0xFFFF00FF) | 0xAB00; // p.r = 171 3704 closure_r(p, c); 3705 } 3706 } 3707 3708 private void label_INT_REM(BURS_TreeNode p) { 3709 p.word0 = 0; 3710 p.initCost(); 3711 BURS_TreeNode lchild, rchild; 3712 lchild = p.child1; 3713 rchild = p.child2; 3714 label(lchild); 3715 label(rchild); 3716 int c; 3717 // r: INT_REM(riv,riv) 3718 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 52; 3719 if (c < p.cost_r) { 3720 p.cost_r = (char)(c); 3721 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3600; // p.r = 54 3722 closure_r(p, c); 3723 } 3724 // r: INT_REM(riv,load32) 3725 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 55; 3726 if (c < p.cost_r) { 3727 p.cost_r = (char)(c); 3728 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3700; // p.r = 55 3729 closure_r(p, c); 3730 } 3731 } 3732 3733 private void label_FLOAT_REM(BURS_TreeNode p) { 3734 p.word0 = 0; 3735 p.initCost(); 3736 BURS_TreeNode lchild, rchild; 3737 lchild = p.child1; 3738 rchild = p.child2; 3739 label(lchild); 3740 label(rchild); 3741 int c; 3742 // r: FLOAT_REM(r,r) 3743 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 3744 if (c < p.cost_r) { 3745 p.cost_r = (char)(c); 3746 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB000; // p.r = 176 3747 closure_r(p, c); 3748 } 3749 } 3750 3751 private void label_DOUBLE_REM(BURS_TreeNode p) { 3752 p.word0 = 0; 3753 p.initCost(); 3754 BURS_TreeNode lchild, rchild; 3755 lchild = p.child1; 3756 rchild = p.child2; 3757 label(lchild); 3758 label(rchild); 3759 int c; 3760 // r: DOUBLE_REM(r,r) 3761 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13; 3762 if (c < p.cost_r) { 3763 p.cost_r = (char)(c); 3764 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB100; // p.r = 177 3765 closure_r(p, c); 3766 } 3767 } 3768 3769 private void label_INT_NEG(BURS_TreeNode p) { 3770 p.word0 = 0; 3771 p.initCost(); 3772 BURS_TreeNode lchild; 3773 lchild = p.child1; 3774 label(lchild); 3775 int c; 3776 // szpr: INT_NEG(r) 3777 c = STATE(lchild).cost_r + 13; 3778 if (c < p.cost_szpr) { 3779 p.cost_szpr = (char)(c); 3780 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x200000; // p.szpr = 1 3781 closure_szpr(p, c); 3782 } 3783 } 3784 3785 private void label_LONG_NEG(BURS_TreeNode p) { 3786 p.word0 = 0; 3787 p.initCost(); 3788 BURS_TreeNode lchild; 3789 lchild = p.child1; 3790 label(lchild); 3791 int c; 3792 // r: LONG_NEG(r) 3793 c = STATE(lchild).cost_r + 23; 3794 if (c < p.cost_r) { 3795 p.cost_r = (char)(c); 3796 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4500; // p.r = 69 3797 closure_r(p, c); 3798 } 3799 } 3800 3801 private void label_FLOAT_NEG(BURS_TreeNode p) { 3802 p.word0 = 0; 3803 p.initCost(); 3804 BURS_TreeNode lchild; 3805 lchild = p.child1; 3806 label(lchild); 3807 int c; 3808 // r: FLOAT_NEG(r) 3809 c = STATE(lchild).cost_r + 26; 3810 if (c < p.cost_r) { 3811 p.cost_r = (char)(c); 3812 p.word0 = (p.word0 & 0xFFFF00FF) | 0xAC00; // p.r = 172 3813 closure_r(p, c); 3814 } 3815 } 3816 3817 private void label_DOUBLE_NEG(BURS_TreeNode p) { 3818 p.word0 = 0; 3819 p.initCost(); 3820 BURS_TreeNode lchild; 3821 lchild = p.child1; 3822 label(lchild); 3823 int c; 3824 // r: DOUBLE_NEG(r) 3825 c = STATE(lchild).cost_r + 26; 3826 if (c < p.cost_r) { 3827 p.cost_r = (char)(c); 3828 p.word0 = (p.word0 & 0xFFFF00FF) | 0xAD00; // p.r = 173 3829 closure_r(p, c); 3830 } 3831 } 3832 3833 private void label_FLOAT_SQRT(BURS_TreeNode p) { 3834 p.word0 = 0; 3835 p.initCost(); 3836 BURS_TreeNode lchild; 3837 lchild = p.child1; 3838 label(lchild); 3839 int c; 3840 // r: FLOAT_SQRT(r) 3841 c = STATE(lchild).cost_r + 13; 3842 if (c < p.cost_r) { 3843 p.cost_r = (char)(c); 3844 p.word0 = (p.word0 & 0xFFFF00FF) | 0xAE00; // p.r = 174 3845 closure_r(p, c); 3846 } 3847 } 3848 3849 private void label_DOUBLE_SQRT(BURS_TreeNode p) { 3850 p.word0 = 0; 3851 p.initCost(); 3852 BURS_TreeNode lchild; 3853 lchild = p.child1; 3854 label(lchild); 3855 int c; 3856 // r: DOUBLE_SQRT(r) 3857 c = STATE(lchild).cost_r + 13; 3858 if (c < p.cost_r) { 3859 p.cost_r = (char)(c); 3860 p.word0 = (p.word0 & 0xFFFF00FF) | 0xAF00; // p.r = 175 3861 closure_r(p, c); 3862 } 3863 } 3864 3865 private void label_INT_SHL(BURS_TreeNode p) { 3866 p.word0 = 0; 3867 p.initCost(); 3868 BURS_TreeNode lchild, rchild; 3869 lchild = p.child1; 3870 rchild = p.child2; 3871 label(lchild); 3872 label(rchild); 3873 int c; 3874 if ( // address1scaledreg: INT_SHL(r,INT_CONSTANT) 3875 rchild.getOpcode() == INT_CONSTANT_opcode 3876 ) { 3877 c = STATE(lchild).cost_r + LEA_SHIFT(Binary.getVal2(P(p)), 0); 3878 if (c < p.cost_address1scaledreg) { 3879 p.cost_address1scaledreg = (char)(c); 3880 p.word1 = (p.word1 & 0x8FFFFFFF) | 0x20000000; // p.address1scaledreg = 2 3881 closure_address1scaledreg(p, c); 3882 } 3883 } 3884 if ( // szpr: INT_SHL(riv,INT_AND(r,INT_CONSTANT)) 3885 rchild.getOpcode() == INT_AND_opcode && 3886 rchild.child2.getOpcode() == INT_CONSTANT_opcode 3887 ) { 3888 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_r + (VRR(p) == 31 ? 23 : INFINITE); 3889 if (c < p.cost_szpr) { 3890 p.cost_szpr = (char)(c); 3891 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x400000; // p.szpr = 2 3892 closure_szpr(p, c); 3893 } 3894 } 3895 // szpr: INT_SHL(riv,riv) 3896 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 23; 3897 if (c < p.cost_szpr) { 3898 p.cost_szpr = (char)(c); 3899 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x600000; // p.szpr = 3 3900 closure_szpr(p, c); 3901 } 3902 if ( // szpr: INT_SHL(r,INT_CONSTANT) 3903 rchild.getOpcode() == INT_CONSTANT_opcode 3904 ) { 3905 c = STATE(lchild).cost_r + 13; 3906 if (c < p.cost_szpr) { 3907 p.cost_szpr = (char)(c); 3908 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x800000; // p.szpr = 4 3909 closure_szpr(p, c); 3910 } 3911 } 3912 if ( // r: INT_SHL(r,INT_CONSTANT) 3913 rchild.getOpcode() == INT_CONSTANT_opcode 3914 ) { 3915 c = STATE(lchild).cost_r + (!Binary.getResult(P(p)).similar(Binary.getVal1(P(p))) && (Binary.getVal2(P(p)).asIntConstant().value & 0x1f) <= 3 ? 11 : INFINITE); 3916 if (c < p.cost_r) { 3917 p.cost_r = (char)(c); 3918 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3800; // p.r = 56 3919 closure_r(p, c); 3920 } 3921 } 3922 if ( // szpr: INT_SHL(INT_SHR(r,INT_CONSTANT),INT_CONSTANT) 3923 lchild.getOpcode() == INT_SHR_opcode && 3924 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 3925 rchild.getOpcode() == INT_CONSTANT_opcode 3926 ) { 3927 c = STATE(lchild.child1).cost_r + ((VR(p) == VLR(p)) ? 23 : INFINITE); 3928 if (c < p.cost_szpr) { 3929 p.cost_szpr = (char)(c); 3930 p.word0 = (p.word0 & 0xFC1FFFFF) | 0xA00000; // p.szpr = 5 3931 closure_szpr(p, c); 3932 } 3933 } 3934 } 3935 3936 private void label_LONG_SHL(BURS_TreeNode p) { 3937 p.word0 = 0; 3938 p.initCost(); 3939 BURS_TreeNode lchild, rchild; 3940 lchild = p.child1; 3941 rchild = p.child2; 3942 label(lchild); 3943 label(rchild); 3944 int c; 3945 // r: LONG_SHL(rlv,riv) 3946 c = STATE(lchild).cost_rlv + STATE(rchild).cost_riv + 20; 3947 if (c < p.cost_r) { 3948 p.cost_r = (char)(c); 3949 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4600; // p.r = 70 3950 closure_r(p, c); 3951 } 3952 if ( // r: LONG_SHL(rlv,INT_AND(riv,INT_CONSTANT)) 3953 rchild.getOpcode() == INT_AND_opcode && 3954 rchild.child2.getOpcode() == INT_CONSTANT_opcode 3955 ) { 3956 c = STATE(lchild).cost_rlv + STATE(rchild.child1).cost_riv + 20; 3957 if (c < p.cost_r) { 3958 p.cost_r = (char)(c); 3959 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4700; // p.r = 71 3960 closure_r(p, c); 3961 } 3962 } 3963 if ( // r: LONG_SHL(INT_2LONG(r),INT_CONSTANT) 3964 lchild.getOpcode() == INT_2LONG_opcode && 3965 rchild.getOpcode() == INT_CONSTANT_opcode 3966 ) { 3967 c = STATE(lchild.child1).cost_r + (VR(p) == 32 ? 23 : INFINITE); 3968 if (c < p.cost_r) { 3969 p.cost_r = (char)(c); 3970 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5900; // p.r = 89 3971 closure_r(p, c); 3972 } 3973 } 3974 if ( // r: LONG_SHL(INT_2LONG(load64),INT_CONSTANT) 3975 lchild.getOpcode() == INT_2LONG_opcode && 3976 rchild.getOpcode() == INT_CONSTANT_opcode 3977 ) { 3978 c = STATE(lchild.child1).cost_load64 + (VR(p) == 32 ? 23 : INFINITE); 3979 if (c < p.cost_r) { 3980 p.cost_r = (char)(c); 3981 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5A00; // p.r = 90 3982 closure_r(p, c); 3983 } 3984 } 3985 } 3986 3987 private void label_INT_SHR(BURS_TreeNode p) { 3988 p.word0 = 0; 3989 p.initCost(); 3990 BURS_TreeNode lchild, rchild; 3991 lchild = p.child1; 3992 rchild = p.child2; 3993 label(lchild); 3994 label(rchild); 3995 int c; 3996 if ( // szpr: INT_SHR(riv,INT_AND(r,INT_CONSTANT)) 3997 rchild.getOpcode() == INT_AND_opcode && 3998 rchild.child2.getOpcode() == INT_CONSTANT_opcode 3999 ) { 4000 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_r + (VRR(p) == 31 ? 23 : INFINITE); 4001 if (c < p.cost_szpr) { 4002 p.cost_szpr = (char)(c); 4003 p.word0 = (p.word0 & 0xFC1FFFFF) | 0xC00000; // p.szpr = 6 4004 closure_szpr(p, c); 4005 } 4006 } 4007 // szpr: INT_SHR(riv,riv) 4008 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 23; 4009 if (c < p.cost_szpr) { 4010 p.cost_szpr = (char)(c); 4011 p.word0 = (p.word0 & 0xFC1FFFFF) | 0xE00000; // p.szpr = 7 4012 closure_szpr(p, c); 4013 } 4014 if ( // szpr: INT_SHR(riv,INT_CONSTANT) 4015 rchild.getOpcode() == INT_CONSTANT_opcode 4016 ) { 4017 c = STATE(lchild).cost_riv + 13; 4018 if (c < p.cost_szpr) { 4019 p.cost_szpr = (char)(c); 4020 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1000000; // p.szpr = 8 4021 closure_szpr(p, c); 4022 } 4023 } 4024 } 4025 4026 private void label_LONG_SHR(BURS_TreeNode p) { 4027 p.word0 = 0; 4028 p.initCost(); 4029 BURS_TreeNode lchild, rchild; 4030 lchild = p.child1; 4031 rchild = p.child2; 4032 label(lchild); 4033 label(rchild); 4034 int c; 4035 // r: LONG_SHR(rlv,riv) 4036 c = STATE(lchild).cost_rlv + STATE(rchild).cost_riv + 20; 4037 if (c < p.cost_r) { 4038 p.cost_r = (char)(c); 4039 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4800; // p.r = 72 4040 closure_r(p, c); 4041 } 4042 if ( // r: LONG_SHR(rlv,INT_AND(riv,INT_CONSTANT)) 4043 rchild.getOpcode() == INT_AND_opcode && 4044 rchild.child2.getOpcode() == INT_CONSTANT_opcode 4045 ) { 4046 c = STATE(lchild).cost_rlv + STATE(rchild.child1).cost_riv + 20; 4047 if (c < p.cost_r) { 4048 p.cost_r = (char)(c); 4049 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4900; // p.r = 73 4050 closure_r(p, c); 4051 } 4052 } 4053 } 4054 4055 private void label_INT_USHR(BURS_TreeNode p) { 4056 p.word0 = 0; 4057 p.initCost(); 4058 BURS_TreeNode lchild, rchild; 4059 lchild = p.child1; 4060 rchild = p.child2; 4061 label(lchild); 4062 label(rchild); 4063 int c; 4064 if ( // szpr: INT_USHR(riv,INT_AND(r,INT_CONSTANT)) 4065 rchild.getOpcode() == INT_AND_opcode && 4066 rchild.child2.getOpcode() == INT_CONSTANT_opcode 4067 ) { 4068 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_r + (VRR(p) == 31 ? 23 : INFINITE); 4069 if (c < p.cost_szpr) { 4070 p.cost_szpr = (char)(c); 4071 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1200000; // p.szpr = 9 4072 closure_szpr(p, c); 4073 } 4074 } 4075 // szpr: INT_USHR(riv,riv) 4076 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 23; 4077 if (c < p.cost_szpr) { 4078 p.cost_szpr = (char)(c); 4079 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1400000; // p.szpr = 10 4080 closure_szpr(p, c); 4081 } 4082 if ( // szpr: INT_USHR(riv,INT_CONSTANT) 4083 rchild.getOpcode() == INT_CONSTANT_opcode 4084 ) { 4085 c = STATE(lchild).cost_riv + 13; 4086 if (c < p.cost_szpr) { 4087 p.cost_szpr = (char)(c); 4088 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1600000; // p.szpr = 11 4089 closure_szpr(p, c); 4090 } 4091 } 4092 if ( // r: INT_USHR(INT_SHL(load8_16_32,INT_CONSTANT),INT_CONSTANT) 4093 lchild.getOpcode() == INT_SHL_opcode && 4094 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 4095 rchild.getOpcode() == INT_CONSTANT_opcode 4096 ) { 4097 c = STATE(lchild.child1).cost_load8_16_32 + (VR(p) == 24 && VLLR(p) == 24 ? 15 : INFINITE); 4098 if (c < p.cost_r) { 4099 p.cost_r = (char)(c); 4100 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6D00; // p.r = 109 4101 closure_r(p, c); 4102 } 4103 } 4104 if ( // r: INT_USHR(INT_SHL(load16_32,INT_CONSTANT),INT_CONSTANT) 4105 lchild.getOpcode() == INT_SHL_opcode && 4106 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 4107 rchild.getOpcode() == INT_CONSTANT_opcode 4108 ) { 4109 c = STATE(lchild.child1).cost_load16_32 + (VR(p) == 16 && VLR(p) == 16 ? 15 : INFINITE); 4110 if (c < p.cost_r) { 4111 p.cost_r = (char)(c); 4112 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7500; // p.r = 117 4113 closure_r(p, c); 4114 } 4115 } 4116 } 4117 4118 private void label_LONG_USHR(BURS_TreeNode p) { 4119 p.word0 = 0; 4120 p.initCost(); 4121 BURS_TreeNode lchild, rchild; 4122 lchild = p.child1; 4123 rchild = p.child2; 4124 label(lchild); 4125 label(rchild); 4126 int c; 4127 // r: LONG_USHR(rlv,riv) 4128 c = STATE(lchild).cost_rlv + STATE(rchild).cost_riv + 20; 4129 if (c < p.cost_r) { 4130 p.cost_r = (char)(c); 4131 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4A00; // p.r = 74 4132 closure_r(p, c); 4133 } 4134 if ( // r: LONG_USHR(rlv,INT_AND(riv,INT_CONSTANT)) 4135 rchild.getOpcode() == INT_AND_opcode && 4136 rchild.child2.getOpcode() == INT_CONSTANT_opcode 4137 ) { 4138 c = STATE(lchild).cost_rlv + STATE(rchild.child1).cost_riv + 20; 4139 if (c < p.cost_r) { 4140 p.cost_r = (char)(c); 4141 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4B00; // p.r = 75 4142 closure_r(p, c); 4143 } 4144 } 4145 } 4146 4147 private void label_INT_AND(BURS_TreeNode p) { 4148 p.word0 = 0; 4149 p.initCost(); 4150 BURS_TreeNode lchild, rchild; 4151 lchild = p.child1; 4152 rchild = p.child2; 4153 label(lchild); 4154 label(rchild); 4155 int c; 4156 // szpr: INT_AND(riv,riv) 4157 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13; 4158 if (c < p.cost_szpr) { 4159 p.cost_szpr = (char)(c); 4160 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1800000; // p.szpr = 12 4161 closure_szpr(p, c); 4162 } 4163 // szp: INT_AND(r,riv) 4164 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 11; 4165 if (c < p.cost_szp) { 4166 p.cost_szp = (char)(c); 4167 p.word0 = (p.word0 & 0xE3FFFFFF) | 0x8000000; // p.szp = 2 4168 } 4169 // szpr: INT_AND(riv,load32) 4170 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15; 4171 if (c < p.cost_szpr) { 4172 p.cost_szpr = (char)(c); 4173 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1A00000; // p.szpr = 13 4174 closure_szpr(p, c); 4175 } 4176 // szpr: INT_AND(load32,riv) 4177 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15; 4178 if (c < p.cost_szpr) { 4179 p.cost_szpr = (char)(c); 4180 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1C00000; // p.szpr = 14 4181 closure_szpr(p, c); 4182 } 4183 // szp: INT_AND(load8_16_32,riv) 4184 c = STATE(lchild).cost_load8_16_32 + STATE(rchild).cost_riv + 11; 4185 if (c < p.cost_szp) { 4186 p.cost_szp = (char)(c); 4187 p.word0 = (p.word0 & 0xE3FFFFFF) | 0xC000000; // p.szp = 3 4188 } 4189 // szp: INT_AND(riv,load8_16_32) 4190 c = STATE(lchild).cost_riv + STATE(rchild).cost_load8_16_32 + 11; 4191 if (c < p.cost_szp) { 4192 p.cost_szp = (char)(c); 4193 p.word0 = (p.word0 & 0xE3FFFFFF) | 0x10000000; // p.szp = 4 4194 } 4195 if ( // uload8: INT_AND(load8_16_32,INT_CONSTANT) 4196 rchild.getOpcode() == INT_CONSTANT_opcode 4197 ) { 4198 c = STATE(lchild).cost_load8_16_32 + (VR(p) == 0xff ? 0 : INFINITE); 4199 if (c < p.cost_uload8) { 4200 p.cost_uload8 = (char)(c); 4201 p.word1 = (p.word1 & 0xFFFFFC7F) | 0x200; // p.uload8 = 4 4202 closure_uload8(p, c); 4203 } 4204 } 4205 if ( // r: INT_AND(load8_16_32,INT_CONSTANT) 4206 rchild.getOpcode() == INT_CONSTANT_opcode 4207 ) { 4208 c = STATE(lchild).cost_load8_16_32 + (VR(p) == 0xff ? 15 : INFINITE); 4209 if (c < p.cost_r) { 4210 p.cost_r = (char)(c); 4211 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6B00; // p.r = 107 4212 closure_r(p, c); 4213 } 4214 } 4215 if ( // r: INT_AND(load16_32,INT_CONSTANT) 4216 rchild.getOpcode() == INT_CONSTANT_opcode 4217 ) { 4218 c = STATE(lchild).cost_load16_32 + (VR(p) == 0xffff ? 15 : INFINITE); 4219 if (c < p.cost_r) { 4220 p.cost_r = (char)(c); 4221 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7200; // p.r = 114 4222 closure_r(p, c); 4223 } 4224 } 4225 if ( // bittest: INT_AND(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 4226 lchild.getOpcode() == INT_USHR_opcode && 4227 lchild.child2.getOpcode() == INT_AND_opcode && 4228 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 4229 rchild.getOpcode() == INT_CONSTANT_opcode 4230 ) { 4231 c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1).cost_r + ((VR(p) == 1) && (VLRR(p) == 31) ? 13:INFINITE); 4232 if (c < p.cost_bittest) { 4233 p.cost_bittest = (char)(c); 4234 p.word2 = (p.word2 & 0xFFFF87FF) | 0x800; // p.bittest = 1 4235 } 4236 } 4237 if ( // bittest: INT_AND(INT_USHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 4238 lchild.getOpcode() == INT_USHR_opcode && 4239 lchild.child2.getOpcode() == INT_AND_opcode && 4240 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 4241 rchild.getOpcode() == INT_CONSTANT_opcode 4242 ) { 4243 c = STATE(lchild.child1).cost_load32 + STATE(lchild.child2.child1).cost_r + (VR(p) == 1 ? 31:INFINITE); 4244 if (c < p.cost_bittest) { 4245 p.cost_bittest = (char)(c); 4246 p.word2 = (p.word2 & 0xFFFF87FF) | 0x1000; // p.bittest = 2 4247 } 4248 } 4249 if ( // bittest: INT_AND(INT_USHR(r,INT_CONSTANT),INT_CONSTANT) 4250 lchild.getOpcode() == INT_USHR_opcode && 4251 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 4252 rchild.getOpcode() == INT_CONSTANT_opcode 4253 ) { 4254 c = STATE(lchild.child1).cost_r + ((VR(p) == 1) && (VLR(p) <= 31) ? 13:INFINITE); 4255 if (c < p.cost_bittest) { 4256 p.cost_bittest = (char)(c); 4257 p.word2 = (p.word2 & 0xFFFF87FF) | 0x1800; // p.bittest = 3 4258 } 4259 } 4260 if ( // bittest: INT_AND(INT_SHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 4261 lchild.getOpcode() == INT_SHR_opcode && 4262 lchild.child2.getOpcode() == INT_AND_opcode && 4263 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 4264 rchild.getOpcode() == INT_CONSTANT_opcode 4265 ) { 4266 c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1).cost_r + ((VR(p) == 1) && (VLRR(p) == 31) ? 13:INFINITE); 4267 if (c < p.cost_bittest) { 4268 p.cost_bittest = (char)(c); 4269 p.word2 = (p.word2 & 0xFFFF87FF) | 0x2000; // p.bittest = 4 4270 } 4271 } 4272 if ( // bittest: INT_AND(INT_SHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 4273 lchild.getOpcode() == INT_SHR_opcode && 4274 lchild.child2.getOpcode() == INT_AND_opcode && 4275 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 4276 rchild.getOpcode() == INT_CONSTANT_opcode 4277 ) { 4278 c = STATE(lchild.child1).cost_load32 + STATE(lchild.child2.child1).cost_r + (VR(p) == 1 ? 31:INFINITE); 4279 if (c < p.cost_bittest) { 4280 p.cost_bittest = (char)(c); 4281 p.word2 = (p.word2 & 0xFFFF87FF) | 0x2800; // p.bittest = 5 4282 } 4283 } 4284 if ( // bittest: INT_AND(INT_SHR(r,INT_CONSTANT),INT_CONSTANT) 4285 lchild.getOpcode() == INT_SHR_opcode && 4286 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 4287 rchild.getOpcode() == INT_CONSTANT_opcode 4288 ) { 4289 c = STATE(lchild.child1).cost_r + ((VR(p) == 1) && (VLR(p) <= 31) ? 13:INFINITE); 4290 if (c < p.cost_bittest) { 4291 p.cost_bittest = (char)(c); 4292 p.word2 = (p.word2 & 0xFFFF87FF) | 0x3000; // p.bittest = 6 4293 } 4294 } 4295 if ( // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(riv,INT_CONSTANT)),r) 4296 lchild.getOpcode() == INT_SHL_opcode && 4297 lchild.child1.getOpcode() == INT_CONSTANT_opcode && 4298 lchild.child2.getOpcode() == INT_AND_opcode && 4299 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 4300 ) { 4301 c = STATE(lchild.child2.child1).cost_riv + STATE(rchild).cost_r + ((VLL(p) == 1) && (VLRR(p) == 31)? 13:INFINITE); 4302 if (c < p.cost_bittest) { 4303 p.cost_bittest = (char)(c); 4304 p.word2 = (p.word2 & 0xFFFF87FF) | 0x3800; // p.bittest = 7 4305 } 4306 } 4307 if ( // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)),load32) 4308 lchild.getOpcode() == INT_SHL_opcode && 4309 lchild.child1.getOpcode() == INT_CONSTANT_opcode && 4310 lchild.child2.getOpcode() == INT_AND_opcode && 4311 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 4312 ) { 4313 c = STATE(lchild.child2.child1).cost_r + STATE(rchild).cost_load32 + (VLL(p) == 1 ? 31:INFINITE); 4314 if (c < p.cost_bittest) { 4315 p.cost_bittest = (char)(c); 4316 p.word2 = (p.word2 & 0xFFFF87FF) | 0x4000; // p.bittest = 8 4317 } 4318 } 4319 if ( // bittest: INT_AND(r,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT))) 4320 rchild.getOpcode() == INT_SHL_opcode && 4321 rchild.child1.getOpcode() == INT_CONSTANT_opcode && 4322 rchild.child2.getOpcode() == INT_AND_opcode && 4323 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 4324 ) { 4325 c = STATE(lchild).cost_r + STATE(rchild.child2.child1).cost_r + ((VRL(p) == 1) && (VRRR(p) == 31) ? 13:INFINITE); 4326 if (c < p.cost_bittest) { 4327 p.cost_bittest = (char)(c); 4328 p.word2 = (p.word2 & 0xFFFF87FF) | 0x4800; // p.bittest = 9 4329 } 4330 } 4331 if ( // bittest: INT_AND(load32,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT))) 4332 rchild.getOpcode() == INT_SHL_opcode && 4333 rchild.child1.getOpcode() == INT_CONSTANT_opcode && 4334 rchild.child2.getOpcode() == INT_AND_opcode && 4335 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 4336 ) { 4337 c = STATE(lchild).cost_load32 + STATE(rchild.child2.child1).cost_r + (VRL(p) == 1 ? 31:INFINITE); 4338 if (c < p.cost_bittest) { 4339 p.cost_bittest = (char)(c); 4340 p.word2 = (p.word2 & 0xFFFF87FF) | 0x5000; // p.bittest = 10 4341 } 4342 } 4343 } 4344 4345 private void label_LONG_AND(BURS_TreeNode p) { 4346 p.word0 = 0; 4347 p.initCost(); 4348 BURS_TreeNode lchild, rchild; 4349 lchild = p.child1; 4350 rchild = p.child2; 4351 label(lchild); 4352 label(rchild); 4353 int c; 4354 // r: LONG_AND(rlv,rlv) 4355 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23; 4356 if (c < p.cost_r) { 4357 p.cost_r = (char)(c); 4358 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4C00; // p.r = 76 4359 closure_r(p, c); 4360 } 4361 if ( // r: LONG_AND(INT_2LONG(r),LONG_CONSTANT) 4362 lchild.getOpcode() == INT_2LONG_opcode && 4363 rchild.getOpcode() == LONG_CONSTANT_opcode 4364 ) { 4365 c = STATE(lchild.child1).cost_r + ((Binary.getVal2(P(p)).asLongConstant().upper32() == 0) && (Binary.getVal2(P(p)).asLongConstant().lower32() == -1)? 23 : INFINITE); 4366 if (c < p.cost_r) { 4367 p.cost_r = (char)(c); 4368 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5700; // p.r = 87 4369 closure_r(p, c); 4370 } 4371 } 4372 if ( // r: LONG_AND(INT_2LONG(load32),LONG_CONSTANT) 4373 lchild.getOpcode() == INT_2LONG_opcode && 4374 rchild.getOpcode() == LONG_CONSTANT_opcode 4375 ) { 4376 c = STATE(lchild.child1).cost_load32 + ((Binary.getVal2(P(p)).asLongConstant().upper32() == 0) && (Binary.getVal2(P(p)).asLongConstant().lower32() == -1)? 28 : INFINITE); 4377 if (c < p.cost_r) { 4378 p.cost_r = (char)(c); 4379 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5800; // p.r = 88 4380 closure_r(p, c); 4381 } 4382 } 4383 } 4384 4385 private void label_INT_OR(BURS_TreeNode p) { 4386 p.word0 = 0; 4387 p.initCost(); 4388 BURS_TreeNode lchild, rchild; 4389 lchild = p.child1; 4390 rchild = p.child2; 4391 label(lchild); 4392 label(rchild); 4393 int c; 4394 if ( // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT)) 4395 lchild.getOpcode() == INT_SHL_opcode && 4396 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 4397 rchild.getOpcode() == INT_USHR_opcode && 4398 rchild.child2.getOpcode() == INT_CONSTANT_opcode 4399 ) { 4400 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_r + (Binary.getVal1(PL(p)).similar(Binary.getVal1(PR(p))) && ((-VLR(p)) & 0x1f) == (VRR(p)&0x1f) ? 13 : INFINITE); 4401 if (c < p.cost_r) { 4402 p.cost_r = (char)(c); 4403 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3900; // p.r = 57 4404 closure_r(p, c); 4405 } 4406 } 4407 if ( // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT)) 4408 lchild.getOpcode() == INT_USHR_opcode && 4409 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 4410 rchild.getOpcode() == INT_SHL_opcode && 4411 rchild.child2.getOpcode() == INT_CONSTANT_opcode 4412 ) { 4413 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_r + (Binary.getVal1(PL(p)).similar(Binary.getVal1(PR(p))) && ((-VRR(p)) & 0x1f) == (VLR(p)&0x1f) ? 13 : INFINITE); 4414 if (c < p.cost_r) { 4415 p.cost_r = (char)(c); 4416 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3A00; // p.r = 58 4417 closure_r(p, c); 4418 } 4419 } 4420 if ( // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT)) 4421 lchild.getOpcode() == INT_SHL_opcode && 4422 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 4423 rchild.getOpcode() == INT_USHR_opcode && 4424 rchild.child2.getOpcode() == INT_CONSTANT_opcode 4425 ) { 4426 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_r + (Binary.getVal1(PL(p)).similar(Binary.getVal1(PR(p))) && ((-VLR(p)) & 0x1f) == (VRR(p)&0x1f) && ((VLR(p)&0x1f) == 31) ? 11 : INFINITE); 4427 if (c < p.cost_r) { 4428 p.cost_r = (char)(c); 4429 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3B00; // p.r = 59 4430 closure_r(p, c); 4431 } 4432 } 4433 if ( // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT)) 4434 lchild.getOpcode() == INT_USHR_opcode && 4435 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 4436 rchild.getOpcode() == INT_SHL_opcode && 4437 rchild.child2.getOpcode() == INT_CONSTANT_opcode 4438 ) { 4439 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_r + (Binary.getVal1(PL(p)).similar(Binary.getVal1(PR(p))) && ((-VRR(p)) & 0x1f) == (VLR(p)&0x1f) && ((VRR(p)&0x1f) == 31) ? 11 : INFINITE); 4440 if (c < p.cost_r) { 4441 p.cost_r = (char)(c); 4442 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3C00; // p.r = 60 4443 closure_r(p, c); 4444 } 4445 } 4446 if ( // r: INT_OR(INT_SHL(r,INT_AND(r,INT_CONSTANT)),INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT))) 4447 lchild.getOpcode() == INT_SHL_opcode && 4448 lchild.child2.getOpcode() == INT_AND_opcode && 4449 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 4450 rchild.getOpcode() == INT_USHR_opcode && 4451 rchild.child2.getOpcode() == INT_AND_opcode && 4452 rchild.child2.child1.getOpcode() == INT_NEG_opcode && 4453 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 4454 ) { 4455 c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2.child1.child1).cost_r + (Binary.getVal1(PL(p)).similar(Binary.getVal1(PR(p))) && (VLRR(p) == 31) && (VRRR(p) == 31) && Binary.getVal1(PLR(p)).similar(Unary.getVal(PRRL(p))) ? 23 : INFINITE); 4456 if (c < p.cost_r) { 4457 p.cost_r = (char)(c); 4458 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3D00; // p.r = 61 4459 closure_r(p, c); 4460 } 4461 } 4462 if ( // r: INT_OR(INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_SHL(r,INT_AND(r,INT_CONSTANT))) 4463 lchild.getOpcode() == INT_USHR_opcode && 4464 lchild.child2.getOpcode() == INT_AND_opcode && 4465 lchild.child2.child1.getOpcode() == INT_NEG_opcode && 4466 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 4467 rchild.getOpcode() == INT_SHL_opcode && 4468 rchild.child2.getOpcode() == INT_AND_opcode && 4469 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 4470 ) { 4471 c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1.child1).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2.child1).cost_r + (Binary.getVal1(PL(p)).similar(Binary.getVal1(PR(p))) && (VLRR(p) == 31) && (VRRR(p) == 31) && Binary.getVal1(PRR(p)).similar(Unary.getVal(PLRL(p))) ? 23 : INFINITE); 4472 if (c < p.cost_r) { 4473 p.cost_r = (char)(c); 4474 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3E00; // p.r = 62 4475 closure_r(p, c); 4476 } 4477 } 4478 if ( // r: INT_OR(INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_USHR(r,INT_AND(r,INT_CONSTANT))) 4479 lchild.getOpcode() == INT_SHL_opcode && 4480 lchild.child2.getOpcode() == INT_AND_opcode && 4481 lchild.child2.child1.getOpcode() == INT_NEG_opcode && 4482 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 4483 rchild.getOpcode() == INT_USHR_opcode && 4484 rchild.child2.getOpcode() == INT_AND_opcode && 4485 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 4486 ) { 4487 c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1.child1).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2.child1).cost_r + (Binary.getVal1(PL(p)).similar(Binary.getVal1(PR(p))) && (VLRR(p) == 31) && (VRRR(p) == 31) && Binary.getVal1(PRR(p)).similar(Unary.getVal(PLRL(p))) ? 23 : INFINITE); 4488 if (c < p.cost_r) { 4489 p.cost_r = (char)(c); 4490 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3F00; // p.r = 63 4491 closure_r(p, c); 4492 } 4493 } 4494 if ( // r: INT_OR(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT))) 4495 lchild.getOpcode() == INT_USHR_opcode && 4496 lchild.child2.getOpcode() == INT_AND_opcode && 4497 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 4498 rchild.getOpcode() == INT_SHL_opcode && 4499 rchild.child2.getOpcode() == INT_AND_opcode && 4500 rchild.child2.child1.getOpcode() == INT_NEG_opcode && 4501 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 4502 ) { 4503 c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2.child1.child1).cost_r + (Binary.getVal1(PL(p)).similar(Binary.getVal1(PR(p))) && (VLRR(p) == 31) && (VRRR(p) == 31) && Binary.getVal1(PLR(p)).similar(Unary.getVal(PRRL(p))) ? 23 : INFINITE); 4504 if (c < p.cost_r) { 4505 p.cost_r = (char)(c); 4506 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4000; // p.r = 64 4507 closure_r(p, c); 4508 } 4509 } 4510 // szpr: INT_OR(riv,riv) 4511 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13; 4512 if (c < p.cost_szpr) { 4513 p.cost_szpr = (char)(c); 4514 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1E00000; // p.szpr = 15 4515 closure_szpr(p, c); 4516 } 4517 // szpr: INT_OR(riv,load32) 4518 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15; 4519 if (c < p.cost_szpr) { 4520 p.cost_szpr = (char)(c); 4521 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2000000; // p.szpr = 16 4522 closure_szpr(p, c); 4523 } 4524 // szpr: INT_OR(load32,riv) 4525 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15; 4526 if (c < p.cost_szpr) { 4527 p.cost_szpr = (char)(c); 4528 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2200000; // p.szpr = 17 4529 closure_szpr(p, c); 4530 } 4531 } 4532 4533 private void label_LONG_OR(BURS_TreeNode p) { 4534 p.word0 = 0; 4535 p.initCost(); 4536 BURS_TreeNode lchild, rchild; 4537 lchild = p.child1; 4538 rchild = p.child2; 4539 label(lchild); 4540 label(rchild); 4541 int c; 4542 // r: LONG_OR(rlv,rlv) 4543 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23; 4544 if (c < p.cost_r) { 4545 p.cost_r = (char)(c); 4546 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4D00; // p.r = 77 4547 closure_r(p, c); 4548 } 4549 } 4550 4551 private void label_INT_XOR(BURS_TreeNode p) { 4552 p.word0 = 0; 4553 p.initCost(); 4554 BURS_TreeNode lchild, rchild; 4555 lchild = p.child1; 4556 rchild = p.child2; 4557 label(lchild); 4558 label(rchild); 4559 int c; 4560 // szpr: INT_XOR(riv,riv) 4561 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13; 4562 if (c < p.cost_szpr) { 4563 p.cost_szpr = (char)(c); 4564 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2400000; // p.szpr = 18 4565 closure_szpr(p, c); 4566 } 4567 // szpr: INT_XOR(riv,load32) 4568 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15; 4569 if (c < p.cost_szpr) { 4570 p.cost_szpr = (char)(c); 4571 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2600000; // p.szpr = 19 4572 closure_szpr(p, c); 4573 } 4574 // szpr: INT_XOR(load32,riv) 4575 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15; 4576 if (c < p.cost_szpr) { 4577 p.cost_szpr = (char)(c); 4578 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2800000; // p.szpr = 20 4579 closure_szpr(p, c); 4580 } 4581 } 4582 4583 private void label_INT_NOT(BURS_TreeNode p) { 4584 p.word0 = 0; 4585 p.initCost(); 4586 BURS_TreeNode lchild; 4587 lchild = p.child1; 4588 label(lchild); 4589 int c; 4590 // r: INT_NOT(r) 4591 c = STATE(lchild).cost_r + 13; 4592 if (c < p.cost_r) { 4593 p.cost_r = (char)(c); 4594 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4100; // p.r = 65 4595 closure_r(p, c); 4596 } 4597 } 4598 4599 private void label_LONG_NOT(BURS_TreeNode p) { 4600 p.word0 = 0; 4601 p.initCost(); 4602 BURS_TreeNode lchild; 4603 lchild = p.child1; 4604 label(lchild); 4605 int c; 4606 // r: LONG_NOT(r) 4607 c = STATE(lchild).cost_r + 23; 4608 if (c < p.cost_r) { 4609 p.cost_r = (char)(c); 4610 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4F00; // p.r = 79 4611 closure_r(p, c); 4612 } 4613 } 4614 4615 private void label_LONG_XOR(BURS_TreeNode p) { 4616 p.word0 = 0; 4617 p.initCost(); 4618 BURS_TreeNode lchild, rchild; 4619 lchild = p.child1; 4620 rchild = p.child2; 4621 label(lchild); 4622 label(rchild); 4623 int c; 4624 // r: LONG_XOR(r,rlv) 4625 c = STATE(lchild).cost_r + STATE(rchild).cost_rlv + 23; 4626 if (c < p.cost_r) { 4627 p.cost_r = (char)(c); 4628 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4E00; // p.r = 78 4629 closure_r(p, c); 4630 } 4631 } 4632 4633 private void label_ADDR_2LONG(BURS_TreeNode p) { 4634 p.word0 = 0; 4635 p.initCost(); 4636 BURS_TreeNode lchild; 4637 lchild = p.child1; 4638 label(lchild); 4639 int c; 4640 // r: ADDR_2LONG(r) 4641 c = STATE(lchild).cost_r + 33; 4642 if (c < p.cost_r) { 4643 p.cost_r = (char)(c); 4644 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5B00; // p.r = 91 4645 closure_r(p, c); 4646 } 4647 // r: ADDR_2LONG(load32) 4648 c = STATE(lchild).cost_load32 + 38; 4649 if (c < p.cost_r) { 4650 p.cost_r = (char)(c); 4651 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5C00; // p.r = 92 4652 closure_r(p, c); 4653 } 4654 } 4655 4656 private void label_INT_2LONG(BURS_TreeNode p) { 4657 p.word0 = 0; 4658 p.initCost(); 4659 BURS_TreeNode lchild; 4660 lchild = p.child1; 4661 label(lchild); 4662 int c; 4663 // r: INT_2LONG(r) 4664 c = STATE(lchild).cost_r + 33; 4665 if (c < p.cost_r) { 4666 p.cost_r = (char)(c); 4667 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5500; // p.r = 85 4668 closure_r(p, c); 4669 } 4670 // r: INT_2LONG(load32) 4671 c = STATE(lchild).cost_load32 + 38; 4672 if (c < p.cost_r) { 4673 p.cost_r = (char)(c); 4674 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5600; // p.r = 86 4675 closure_r(p, c); 4676 } 4677 } 4678 4679 private void label_INT_2FLOAT(BURS_TreeNode p) { 4680 p.word0 = 0; 4681 p.initCost(); 4682 BURS_TreeNode lchild; 4683 lchild = p.child1; 4684 label(lchild); 4685 int c; 4686 // r: INT_2FLOAT(riv) 4687 c = STATE(lchild).cost_riv + 13; 4688 if (c < p.cost_r) { 4689 p.cost_r = (char)(c); 4690 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBA00; // p.r = 186 4691 closure_r(p, c); 4692 } 4693 // r: INT_2FLOAT(load32) 4694 c = STATE(lchild).cost_load32 + 15; 4695 if (c < p.cost_r) { 4696 p.cost_r = (char)(c); 4697 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBB00; // p.r = 187 4698 closure_r(p, c); 4699 } 4700 } 4701 4702 private void label_INT_2DOUBLE(BURS_TreeNode p) { 4703 p.word0 = 0; 4704 p.initCost(); 4705 BURS_TreeNode lchild; 4706 lchild = p.child1; 4707 label(lchild); 4708 int c; 4709 // r: INT_2DOUBLE(riv) 4710 c = STATE(lchild).cost_riv + 13; 4711 if (c < p.cost_r) { 4712 p.cost_r = (char)(c); 4713 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBC00; // p.r = 188 4714 closure_r(p, c); 4715 } 4716 // r: INT_2DOUBLE(load32) 4717 c = STATE(lchild).cost_load32 + 15; 4718 if (c < p.cost_r) { 4719 p.cost_r = (char)(c); 4720 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBD00; // p.r = 189 4721 closure_r(p, c); 4722 } 4723 } 4724 4725 private void label_LONG_2INT(BURS_TreeNode p) { 4726 p.word0 = 0; 4727 p.initCost(); 4728 BURS_TreeNode lchild; 4729 lchild = p.child1; 4730 label(lchild); 4731 int c; 4732 // r: LONG_2INT(r) 4733 c = STATE(lchild).cost_r + 13; 4734 if (c < p.cost_r) { 4735 p.cost_r = (char)(c); 4736 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5D00; // p.r = 93 4737 closure_r(p, c); 4738 } 4739 // r: LONG_2INT(load64) 4740 c = STATE(lchild).cost_load64 + 15; 4741 if (c < p.cost_r) { 4742 p.cost_r = (char)(c); 4743 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5E00; // p.r = 94 4744 closure_r(p, c); 4745 } 4746 if ( // r: LONG_2INT(LONG_USHR(r,INT_CONSTANT)) 4747 lchild.getOpcode() == LONG_USHR_opcode && 4748 lchild.child2.getOpcode() == INT_CONSTANT_opcode 4749 ) { 4750 c = STATE(lchild.child1).cost_r + (VLR(p) == 32 ? 13 : INFINITE); 4751 if (c < p.cost_r) { 4752 p.cost_r = (char)(c); 4753 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5F00; // p.r = 95 4754 closure_r(p, c); 4755 } 4756 } 4757 if ( // r: LONG_2INT(LONG_SHR(r,INT_CONSTANT)) 4758 lchild.getOpcode() == LONG_SHR_opcode && 4759 lchild.child2.getOpcode() == INT_CONSTANT_opcode 4760 ) { 4761 c = STATE(lchild.child1).cost_r + (VLR(p) == 32 ? 13 : INFINITE); 4762 if (c < p.cost_r) { 4763 p.cost_r = (char)(c); 4764 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6000; // p.r = 96 4765 closure_r(p, c); 4766 } 4767 } 4768 if ( // r: LONG_2INT(LONG_USHR(load64,INT_CONSTANT)) 4769 lchild.getOpcode() == LONG_USHR_opcode && 4770 lchild.child2.getOpcode() == INT_CONSTANT_opcode 4771 ) { 4772 c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 15 : INFINITE); 4773 if (c < p.cost_r) { 4774 p.cost_r = (char)(c); 4775 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6100; // p.r = 97 4776 closure_r(p, c); 4777 } 4778 } 4779 if ( // r: LONG_2INT(LONG_SHR(load64,INT_CONSTANT)) 4780 lchild.getOpcode() == LONG_SHR_opcode && 4781 lchild.child2.getOpcode() == INT_CONSTANT_opcode 4782 ) { 4783 c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 15 : INFINITE); 4784 if (c < p.cost_r) { 4785 p.cost_r = (char)(c); 4786 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6200; // p.r = 98 4787 closure_r(p, c); 4788 } 4789 } 4790 if ( // load32: LONG_2INT(LONG_USHR(load64,INT_CONSTANT)) 4791 lchild.getOpcode() == LONG_USHR_opcode && 4792 lchild.child2.getOpcode() == INT_CONSTANT_opcode 4793 ) { 4794 c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 0 : INFINITE); 4795 if (c < p.cost_load32) { 4796 p.cost_load32 = (char)(c); 4797 p.word1 = (p.word1 & 0xFFE3FFFF) | 0xC0000; // p.load32 = 3 4798 closure_load32(p, c); 4799 } 4800 } 4801 if ( // load32: LONG_2INT(LONG_SHR(load64,INT_CONSTANT)) 4802 lchild.getOpcode() == LONG_SHR_opcode && 4803 lchild.child2.getOpcode() == INT_CONSTANT_opcode 4804 ) { 4805 c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 0 : INFINITE); 4806 if (c < p.cost_load32) { 4807 p.cost_load32 = (char)(c); 4808 p.word1 = (p.word1 & 0xFFE3FFFF) | 0x100000; // p.load32 = 4 4809 closure_load32(p, c); 4810 } 4811 } 4812 } 4813 4814 private void label_LONG_2FLOAT(BURS_TreeNode p) { 4815 p.word0 = 0; 4816 p.initCost(); 4817 BURS_TreeNode lchild; 4818 lchild = p.child1; 4819 label(lchild); 4820 int c; 4821 // r: LONG_2FLOAT(r) 4822 c = STATE(lchild).cost_r + 13; 4823 if (c < p.cost_r) { 4824 p.cost_r = (char)(c); 4825 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB200; // p.r = 178 4826 closure_r(p, c); 4827 } 4828 } 4829 4830 private void label_LONG_2DOUBLE(BURS_TreeNode p) { 4831 p.word0 = 0; 4832 p.initCost(); 4833 BURS_TreeNode lchild; 4834 lchild = p.child1; 4835 label(lchild); 4836 int c; 4837 // r: LONG_2DOUBLE(r) 4838 c = STATE(lchild).cost_r + 13; 4839 if (c < p.cost_r) { 4840 p.cost_r = (char)(c); 4841 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB300; // p.r = 179 4842 closure_r(p, c); 4843 } 4844 } 4845 4846 private void label_FLOAT_2INT(BURS_TreeNode p) { 4847 p.word0 = 0; 4848 p.initCost(); 4849 BURS_TreeNode lchild; 4850 lchild = p.child1; 4851 label(lchild); 4852 int c; 4853 // r: FLOAT_2INT(r) 4854 c = STATE(lchild).cost_r + 13; 4855 if (c < p.cost_r) { 4856 p.cost_r = (char)(c); 4857 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC200; // p.r = 194 4858 closure_r(p, c); 4859 } 4860 } 4861 4862 private void label_FLOAT_2LONG(BURS_TreeNode p) { 4863 p.word0 = 0; 4864 p.initCost(); 4865 BURS_TreeNode lchild; 4866 lchild = p.child1; 4867 label(lchild); 4868 int c; 4869 // r: FLOAT_2LONG(r) 4870 c = STATE(lchild).cost_r + 13; 4871 if (c < p.cost_r) { 4872 p.cost_r = (char)(c); 4873 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC300; // p.r = 195 4874 closure_r(p, c); 4875 } 4876 } 4877 4878 private void label_FLOAT_2DOUBLE(BURS_TreeNode p) { 4879 p.word0 = 0; 4880 p.initCost(); 4881 BURS_TreeNode lchild; 4882 lchild = p.child1; 4883 label(lchild); 4884 int c; 4885 // r: FLOAT_2DOUBLE(r) 4886 c = STATE(lchild).cost_r + 13; 4887 if (c < p.cost_r) { 4888 p.cost_r = (char)(c); 4889 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBE00; // p.r = 190 4890 closure_r(p, c); 4891 } 4892 // r: FLOAT_2DOUBLE(float_load) 4893 c = STATE(lchild).cost_float_load + 15; 4894 if (c < p.cost_r) { 4895 p.cost_r = (char)(c); 4896 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBF00; // p.r = 191 4897 closure_r(p, c); 4898 } 4899 } 4900 4901 private void label_DOUBLE_2INT(BURS_TreeNode p) { 4902 p.word0 = 0; 4903 p.initCost(); 4904 BURS_TreeNode lchild; 4905 lchild = p.child1; 4906 label(lchild); 4907 int c; 4908 // r: DOUBLE_2INT(r) 4909 c = STATE(lchild).cost_r + 13; 4910 if (c < p.cost_r) { 4911 p.cost_r = (char)(c); 4912 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC400; // p.r = 196 4913 closure_r(p, c); 4914 } 4915 } 4916 4917 private void label_DOUBLE_2LONG(BURS_TreeNode p) { 4918 p.word0 = 0; 4919 p.initCost(); 4920 BURS_TreeNode lchild; 4921 lchild = p.child1; 4922 label(lchild); 4923 int c; 4924 // r: DOUBLE_2LONG(r) 4925 c = STATE(lchild).cost_r + 13; 4926 if (c < p.cost_r) { 4927 p.cost_r = (char)(c); 4928 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC500; // p.r = 197 4929 closure_r(p, c); 4930 } 4931 } 4932 4933 private void label_DOUBLE_2FLOAT(BURS_TreeNode p) { 4934 p.word0 = 0; 4935 p.initCost(); 4936 BURS_TreeNode lchild; 4937 lchild = p.child1; 4938 label(lchild); 4939 int c; 4940 // r: DOUBLE_2FLOAT(r) 4941 c = STATE(lchild).cost_r + 13; 4942 if (c < p.cost_r) { 4943 p.cost_r = (char)(c); 4944 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC000; // p.r = 192 4945 closure_r(p, c); 4946 } 4947 // r: DOUBLE_2FLOAT(double_load) 4948 c = STATE(lchild).cost_double_load + 15; 4949 if (c < p.cost_r) { 4950 p.cost_r = (char)(c); 4951 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC100; // p.r = 193 4952 closure_r(p, c); 4953 } 4954 } 4955 4956 private void label_INT_2BYTE(BURS_TreeNode p) { 4957 p.word0 = 0; 4958 p.initCost(); 4959 BURS_TreeNode lchild; 4960 lchild = p.child1; 4961 label(lchild); 4962 int c; 4963 // r: INT_2BYTE(r) 4964 c = STATE(lchild).cost_r + 15; 4965 if (c < p.cost_r) { 4966 p.cost_r = (char)(c); 4967 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5000; // p.r = 80 4968 closure_r(p, c); 4969 } 4970 // r: INT_2BYTE(load8_16_32) 4971 c = STATE(lchild).cost_load8_16_32 + 17; 4972 if (c < p.cost_r) { 4973 p.cost_r = (char)(c); 4974 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5100; // p.r = 81 4975 closure_r(p, c); 4976 } 4977 // r: INT_2BYTE(load8_16_32) 4978 c = STATE(lchild).cost_load8_16_32 + 20; 4979 if (c < p.cost_r) { 4980 p.cost_r = (char)(c); 4981 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6C00; // p.r = 108 4982 closure_r(p, c); 4983 } 4984 } 4985 4986 private void label_INT_2USHORT(BURS_TreeNode p) { 4987 p.word0 = 0; 4988 p.initCost(); 4989 BURS_TreeNode lchild; 4990 lchild = p.child1; 4991 label(lchild); 4992 int c; 4993 // szpr: INT_2USHORT(r) 4994 c = STATE(lchild).cost_r + 23; 4995 if (c < p.cost_szpr) { 4996 p.cost_szpr = (char)(c); 4997 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2A00000; // p.szpr = 21 4998 closure_szpr(p, c); 4999 } 5000 // r: INT_2USHORT(load16_32) 5001 c = STATE(lchild).cost_load16_32 + 25; 5002 if (c < p.cost_r) { 5003 p.cost_r = (char)(c); 5004 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5200; // p.r = 82 5005 closure_r(p, c); 5006 } 5007 // r: INT_2USHORT(load16_32) 5008 c = STATE(lchild).cost_load16_32 + 15; 5009 if (c < p.cost_r) { 5010 p.cost_r = (char)(c); 5011 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7300; // p.r = 115 5012 closure_r(p, c); 5013 } 5014 // r: INT_2USHORT(load16_32) 5015 c = STATE(lchild).cost_load16_32 + 20; 5016 if (c < p.cost_r) { 5017 p.cost_r = (char)(c); 5018 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7400; // p.r = 116 5019 closure_r(p, c); 5020 } 5021 } 5022 5023 private void label_INT_2SHORT(BURS_TreeNode p) { 5024 p.word0 = 0; 5025 p.initCost(); 5026 BURS_TreeNode lchild; 5027 lchild = p.child1; 5028 label(lchild); 5029 int c; 5030 // r: INT_2SHORT(r) 5031 c = STATE(lchild).cost_r + 15; 5032 if (c < p.cost_r) { 5033 p.cost_r = (char)(c); 5034 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5300; // p.r = 83 5035 closure_r(p, c); 5036 } 5037 // r: INT_2SHORT(load16_32) 5038 c = STATE(lchild).cost_load16_32 + 17; 5039 if (c < p.cost_r) { 5040 p.cost_r = (char)(c); 5041 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5400; // p.r = 84 5042 closure_r(p, c); 5043 } 5044 } 5045 5046 private void label_LONG_CMP(BURS_TreeNode p) { 5047 p.word0 = 0; 5048 p.initCost(); 5049 BURS_TreeNode lchild, rchild; 5050 lchild = p.child1; 5051 rchild = p.child2; 5052 label(lchild); 5053 label(rchild); 5054 int c; 5055 // r: LONG_CMP(rlv,rlv) 5056 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 10*13; 5057 if (c < p.cost_r) { 5058 p.cost_r = (char)(c); 5059 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8F00; // p.r = 143 5060 closure_r(p, c); 5061 } 5062 } 5063 5064 private void label_RETURN(BURS_TreeNode p) { 5065 p.word0 = 0; 5066 p.initCost(); 5067 BURS_TreeNode lchild; 5068 lchild = p.child1; 5069 label(lchild); 5070 int c; 5071 if ( // stm: RETURN(NULL) 5072 lchild.getOpcode() == NULL_opcode 5073 ) { 5074 c = 13; 5075 if (c < p.cost_stm) { 5076 p.cost_stm = (char)(c); 5077 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7D; // p.stm = 125 5078 } 5079 } 5080 if ( // stm: RETURN(INT_CONSTANT) 5081 lchild.getOpcode() == INT_CONSTANT_opcode 5082 ) { 5083 c = 11; 5084 if (c < p.cost_stm) { 5085 p.cost_stm = (char)(c); 5086 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7E; // p.stm = 126 5087 } 5088 } 5089 // stm: RETURN(r) 5090 c = STATE(lchild).cost_r + 13; 5091 if (c < p.cost_stm) { 5092 p.cost_stm = (char)(c); 5093 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7F; // p.stm = 127 5094 } 5095 if ( // stm: RETURN(LONG_CONSTANT) 5096 lchild.getOpcode() == LONG_CONSTANT_opcode 5097 ) { 5098 c = 11; 5099 if (c < p.cost_stm) { 5100 p.cost_stm = (char)(c); 5101 p.word0 = (p.word0 & 0xFFFFFF00) | 0x80; // p.stm = 128 5102 } 5103 } 5104 } 5105 5106 private void label_NULL_CHECK(BURS_TreeNode p) { 5107 p.word0 = 0; 5108 p.initCost(); 5109 BURS_TreeNode lchild; 5110 lchild = p.child1; 5111 label(lchild); 5112 int c; 5113 // stm: NULL_CHECK(riv) 5114 c = STATE(lchild).cost_riv + 11; 5115 if (c < p.cost_stm) { 5116 p.cost_stm = (char)(c); 5117 p.word0 = (p.word0 & 0xFFFFFF00) | 0xB; // p.stm = 11 5118 } 5119 } 5120 5121 private void label_GOTO(BURS_TreeNode p) { 5122 p.word0 = 0; 5123 p.initCost(); 5124 // stm: GOTO 5125 if (11 < p.cost_stm) { 5126 p.cost_stm = (char)(11); 5127 p.word0 = (p.word0 & 0xFFFFFF00) | 0x77; // p.stm = 119 5128 } 5129 } 5130 5131 private void label_BOOLEAN_NOT(BURS_TreeNode p) { 5132 p.word0 = 0; 5133 p.initCost(); 5134 BURS_TreeNode lchild; 5135 lchild = p.child1; 5136 label(lchild); 5137 int c; 5138 // r: BOOLEAN_NOT(r) 5139 c = STATE(lchild).cost_r + 13; 5140 if (c < p.cost_r) { 5141 p.cost_r = (char)(c); 5142 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD00; // p.r = 13 5143 closure_r(p, c); 5144 } 5145 } 5146 5147 private void label_BOOLEAN_CMP_INT(BURS_TreeNode p) { 5148 p.word0 = 0; 5149 p.initCost(); 5150 BURS_TreeNode lchild, rchild; 5151 lchild = p.child1; 5152 rchild = p.child2; 5153 label(lchild); 5154 label(rchild); 5155 int c; 5156 // r: BOOLEAN_CMP_INT(r,riv) 5157 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 39; 5158 if (c < p.cost_r) { 5159 p.cost_r = (char)(c); 5160 p.word0 = (p.word0 & 0xFFFF00FF) | 0xE00; // p.r = 14 5161 closure_r(p, c); 5162 } 5163 // boolcmp: BOOLEAN_CMP_INT(r,riv) 5164 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 13; 5165 if (c < p.cost_boolcmp) { 5166 p.cost_boolcmp = (char)(c); 5167 p.word2 = (p.word2 & 0xFFFFF87F) | 0x80; // p.boolcmp = 1 5168 } 5169 if ( // r: BOOLEAN_CMP_INT(r,INT_CONSTANT) 5170 rchild.getOpcode() == INT_CONSTANT_opcode 5171 ) { 5172 c = STATE(lchild).cost_r + (VR(p) == 0 && CMP_TO_TEST(BooleanCmp.getCond(P(p))) ? 37:INFINITE); 5173 if (c < p.cost_r) { 5174 p.cost_r = (char)(c); 5175 p.word0 = (p.word0 & 0xFFFF00FF) | 0xF00; // p.r = 15 5176 closure_r(p, c); 5177 } 5178 } 5179 if ( // boolcmp: BOOLEAN_CMP_INT(r,INT_CONSTANT) 5180 rchild.getOpcode() == INT_CONSTANT_opcode 5181 ) { 5182 c = STATE(lchild).cost_r + (VR(p) == 0 && CMP_TO_TEST(BooleanCmp.getCond(P(p))) ? 11:INFINITE); 5183 if (c < p.cost_boolcmp) { 5184 p.cost_boolcmp = (char)(c); 5185 p.word2 = (p.word2 & 0xFFFFF87F) | 0x100; // p.boolcmp = 2 5186 } 5187 } 5188 if ( // r: BOOLEAN_CMP_INT(r,INT_CONSTANT) 5189 rchild.getOpcode() == INT_CONSTANT_opcode 5190 ) { 5191 c = STATE(lchild).cost_r + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isLESS() ? 11 : INFINITE); 5192 if (c < p.cost_r) { 5193 p.cost_r = (char)(c); 5194 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1000; // p.r = 16 5195 closure_r(p, c); 5196 } 5197 } 5198 if ( // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT) 5199 rchild.getOpcode() == INT_CONSTANT_opcode 5200 ) { 5201 c = STATE(lchild).cost_load32 + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isLESS() ? 16 : INFINITE); 5202 if (c < p.cost_r) { 5203 p.cost_r = (char)(c); 5204 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1100; // p.r = 17 5205 closure_r(p, c); 5206 } 5207 } 5208 if ( // r: BOOLEAN_CMP_INT(r,INT_CONSTANT) 5209 rchild.getOpcode() == INT_CONSTANT_opcode 5210 ) { 5211 c = STATE(lchild).cost_r + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isGREATER_EQUAL() ? 22 : INFINITE); 5212 if (c < p.cost_r) { 5213 p.cost_r = (char)(c); 5214 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1200; // p.r = 18 5215 closure_r(p, c); 5216 } 5217 } 5218 if ( // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT) 5219 rchild.getOpcode() == INT_CONSTANT_opcode 5220 ) { 5221 c = STATE(lchild).cost_load32 + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isGREATER_EQUAL() ? 27 : INFINITE); 5222 if (c < p.cost_r) { 5223 p.cost_r = (char)(c); 5224 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1300; // p.r = 19 5225 closure_r(p, c); 5226 } 5227 } 5228 if ( // r: BOOLEAN_CMP_INT(cz,INT_CONSTANT) 5229 rchild.getOpcode() == INT_CONSTANT_opcode 5230 ) { 5231 c = STATE(lchild).cost_cz + isZERO(VR(p), 26); 5232 if (c < p.cost_r) { 5233 p.cost_r = (char)(c); 5234 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1400; // p.r = 20 5235 closure_r(p, c); 5236 } 5237 } 5238 if ( // boolcmp: BOOLEAN_CMP_INT(cz,INT_CONSTANT) 5239 rchild.getOpcode() == INT_CONSTANT_opcode 5240 ) { 5241 c = STATE(lchild).cost_cz + isZERO(VR(p), 0); 5242 if (c < p.cost_boolcmp) { 5243 p.cost_boolcmp = (char)(c); 5244 p.word2 = (p.word2 & 0xFFFFF87F) | 0x180; // p.boolcmp = 3 5245 } 5246 } 5247 if ( // r: BOOLEAN_CMP_INT(szp,INT_CONSTANT) 5248 rchild.getOpcode() == INT_CONSTANT_opcode 5249 ) { 5250 c = STATE(lchild).cost_szp + (VR(p) == 0 && EQ_NE(BooleanCmp.getCond(P(p)))?26:INFINITE); 5251 if (c < p.cost_r) { 5252 p.cost_r = (char)(c); 5253 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1500; // p.r = 21 5254 closure_r(p, c); 5255 } 5256 } 5257 if ( // boolcmp: BOOLEAN_CMP_INT(szp,INT_CONSTANT) 5258 rchild.getOpcode() == INT_CONSTANT_opcode 5259 ) { 5260 c = STATE(lchild).cost_szp + (VR(p) == 0 && EQ_NE(BooleanCmp.getCond(P(p)))?0:INFINITE); 5261 if (c < p.cost_boolcmp) { 5262 p.cost_boolcmp = (char)(c); 5263 p.word2 = (p.word2 & 0xFFFFF87F) | 0x200; // p.boolcmp = 4 5264 } 5265 } 5266 if ( // r: BOOLEAN_CMP_INT(bittest,INT_CONSTANT) 5267 rchild.getOpcode() == INT_CONSTANT_opcode 5268 ) { 5269 c = STATE(lchild).cost_bittest + ((VR(p) == 0 || VR(p) == 1) && EQ_NE(BooleanCmp.getCond(P(p))) ? 26 : INFINITE); 5270 if (c < p.cost_r) { 5271 p.cost_r = (char)(c); 5272 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1600; // p.r = 22 5273 closure_r(p, c); 5274 } 5275 } 5276 if ( // boolcmp: BOOLEAN_CMP_INT(bittest,INT_CONSTANT) 5277 rchild.getOpcode() == INT_CONSTANT_opcode 5278 ) { 5279 c = STATE(lchild).cost_bittest + ((VR(p) == 0 || VR(p) == 1) && EQ_NE(BooleanCmp.getCond(P(p))) ? 0 : INFINITE); 5280 if (c < p.cost_boolcmp) { 5281 p.cost_boolcmp = (char)(c); 5282 p.word2 = (p.word2 & 0xFFFFF87F) | 0x280; // p.boolcmp = 5 5283 } 5284 } 5285 if ( // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 5286 rchild.getOpcode() == INT_CONSTANT_opcode 5287 ) { 5288 c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 1 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 26 : INFINITE); 5289 if (c < p.cost_r) { 5290 p.cost_r = (char)(c); 5291 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1700; // p.r = 23 5292 closure_r(p, c); 5293 } 5294 } 5295 if ( // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 5296 rchild.getOpcode() == INT_CONSTANT_opcode 5297 ) { 5298 c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 1 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 0 : INFINITE); 5299 if (c < p.cost_boolcmp) { 5300 p.cost_boolcmp = (char)(c); 5301 p.word2 = (p.word2 & 0xFFFFF87F) | 0x300; // p.boolcmp = 6 5302 } 5303 } 5304 if ( // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 5305 rchild.getOpcode() == INT_CONSTANT_opcode 5306 ) { 5307 c = STATE(lchild).cost_boolcmp + ((VR(p) == 1 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 0 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 26 : INFINITE); 5308 if (c < p.cost_r) { 5309 p.cost_r = (char)(c); 5310 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1800; // p.r = 24 5311 closure_r(p, c); 5312 } 5313 } 5314 if ( // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 5315 rchild.getOpcode() == INT_CONSTANT_opcode 5316 ) { 5317 c = STATE(lchild).cost_boolcmp + ((VR(p) == 1 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 0 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 0 : INFINITE); 5318 if (c < p.cost_boolcmp) { 5319 p.cost_boolcmp = (char)(c); 5320 p.word2 = (p.word2 & 0xFFFFF87F) | 0x380; // p.boolcmp = 7 5321 } 5322 } 5323 // r: BOOLEAN_CMP_INT(load32,riv) 5324 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 41; 5325 if (c < p.cost_r) { 5326 p.cost_r = (char)(c); 5327 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1900; // p.r = 25 5328 closure_r(p, c); 5329 } 5330 // boolcmp: BOOLEAN_CMP_INT(load32,riv) 5331 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15; 5332 if (c < p.cost_boolcmp) { 5333 p.cost_boolcmp = (char)(c); 5334 p.word2 = (p.word2 & 0xFFFFF87F) | 0x400; // p.boolcmp = 8 5335 } 5336 // r: BOOLEAN_CMP_INT(r,load32) 5337 c = STATE(lchild).cost_r + STATE(rchild).cost_load32 + 41; 5338 if (c < p.cost_r) { 5339 p.cost_r = (char)(c); 5340 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1A00; // p.r = 26 5341 closure_r(p, c); 5342 } 5343 // boolcmp: BOOLEAN_CMP_INT(riv,load32) 5344 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15; 5345 if (c < p.cost_boolcmp) { 5346 p.cost_boolcmp = (char)(c); 5347 p.word2 = (p.word2 & 0xFFFFF87F) | 0x480; // p.boolcmp = 9 5348 } 5349 } 5350 5351 private void label_BOOLEAN_CMP_LONG(BURS_TreeNode p) { 5352 p.word0 = 0; 5353 p.initCost(); 5354 BURS_TreeNode lchild, rchild; 5355 lchild = p.child1; 5356 rchild = p.child2; 5357 label(lchild); 5358 label(rchild); 5359 int c; 5360 // r: BOOLEAN_CMP_LONG(rlv,rlv) 5361 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 8*13; 5362 if (c < p.cost_r) { 5363 p.cost_r = (char)(c); 5364 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1B00; // p.r = 27 5365 closure_r(p, c); 5366 } 5367 // boolcmp: BOOLEAN_CMP_LONG(rlv,rlv) 5368 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 11*13; 5369 if (c < p.cost_boolcmp) { 5370 p.cost_boolcmp = (char)(c); 5371 p.word2 = (p.word2 & 0xFFFFF87F) | 0x500; // p.boolcmp = 10 5372 } 5373 } 5374 5375 private void label_BYTE_LOAD(BURS_TreeNode p) { 5376 p.word0 = 0; 5377 p.initCost(); 5378 BURS_TreeNode lchild, rchild; 5379 lchild = p.child1; 5380 rchild = p.child2; 5381 label(lchild); 5382 label(rchild); 5383 int c; 5384 // sload8: BYTE_LOAD(riv,riv) 5385 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 5386 if (c < p.cost_sload8) { 5387 p.cost_sload8 = (char)(c); 5388 p.word1 = (p.word1 & 0xFFFFFF9F) | 0x20; // p.sload8 = 1 5389 closure_sload8(p, c); 5390 } 5391 // r: BYTE_LOAD(riv,riv) 5392 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20; 5393 if (c < p.cost_r) { 5394 p.cost_r = (char)(c); 5395 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6700; // p.r = 103 5396 closure_r(p, c); 5397 } 5398 } 5399 5400 private void label_UBYTE_LOAD(BURS_TreeNode p) { 5401 p.word0 = 0; 5402 p.initCost(); 5403 BURS_TreeNode lchild, rchild; 5404 lchild = p.child1; 5405 rchild = p.child2; 5406 label(lchild); 5407 label(rchild); 5408 int c; 5409 // uload8: UBYTE_LOAD(riv,riv) 5410 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 5411 if (c < p.cost_uload8) { 5412 p.cost_uload8 = (char)(c); 5413 p.word1 = (p.word1 & 0xFFFFFC7F) | 0x80; // p.uload8 = 1 5414 closure_uload8(p, c); 5415 } 5416 // r: UBYTE_LOAD(riv,riv) 5417 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15; 5418 if (c < p.cost_r) { 5419 p.cost_r = (char)(c); 5420 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6900; // p.r = 105 5421 closure_r(p, c); 5422 } 5423 } 5424 5425 private void label_SHORT_LOAD(BURS_TreeNode p) { 5426 p.word0 = 0; 5427 p.initCost(); 5428 BURS_TreeNode lchild, rchild; 5429 lchild = p.child1; 5430 rchild = p.child2; 5431 label(lchild); 5432 label(rchild); 5433 int c; 5434 // sload16: SHORT_LOAD(riv,riv) 5435 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 5436 if (c < p.cost_sload16) { 5437 p.cost_sload16 = (char)(c); 5438 p.word1 = (p.word1 & 0xFFFFCFFF) | 0x1000; // p.sload16 = 1 5439 closure_sload16(p, c); 5440 } 5441 // r: SHORT_LOAD(riv,riv) 5442 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20; 5443 if (c < p.cost_r) { 5444 p.cost_r = (char)(c); 5445 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6E00; // p.r = 110 5446 closure_r(p, c); 5447 } 5448 } 5449 5450 private void label_USHORT_LOAD(BURS_TreeNode p) { 5451 p.word0 = 0; 5452 p.initCost(); 5453 BURS_TreeNode lchild, rchild; 5454 lchild = p.child1; 5455 rchild = p.child2; 5456 label(lchild); 5457 label(rchild); 5458 int c; 5459 // uload16: USHORT_LOAD(riv,riv) 5460 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 5461 if (c < p.cost_uload16) { 5462 p.cost_uload16 = (char)(c); 5463 p.word1 = (p.word1 & 0xFFFF3FFF) | 0x4000; // p.uload16 = 1 5464 closure_uload16(p, c); 5465 } 5466 // r: USHORT_LOAD(riv,riv) 5467 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15; 5468 if (c < p.cost_r) { 5469 p.cost_r = (char)(c); 5470 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7000; // p.r = 112 5471 closure_r(p, c); 5472 } 5473 } 5474 5475 private void label_INT_LOAD(BURS_TreeNode p) { 5476 p.word0 = 0; 5477 p.initCost(); 5478 BURS_TreeNode lchild, rchild; 5479 lchild = p.child1; 5480 rchild = p.child2; 5481 label(lchild); 5482 label(rchild); 5483 int c; 5484 // load32: INT_LOAD(riv,riv) 5485 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 5486 if (c < p.cost_load32) { 5487 p.cost_load32 = (char)(c); 5488 p.word1 = (p.word1 & 0xFFE3FFFF) | 0x40000; // p.load32 = 1 5489 closure_load32(p, c); 5490 } 5491 // r: INT_LOAD(riv,riv) 5492 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15; 5493 if (c < p.cost_r) { 5494 p.cost_r = (char)(c); 5495 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7600; // p.r = 118 5496 closure_r(p, c); 5497 } 5498 // r: INT_LOAD(riv,address1scaledreg) 5499 c = STATE(lchild).cost_riv + STATE(rchild).cost_address1scaledreg + 15; 5500 if (c < p.cost_r) { 5501 p.cost_r = (char)(c); 5502 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7700; // p.r = 119 5503 closure_r(p, c); 5504 } 5505 // r: INT_LOAD(address1scaledreg,riv) 5506 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_riv + 15; 5507 if (c < p.cost_r) { 5508 p.cost_r = (char)(c); 5509 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7800; // p.r = 120 5510 closure_r(p, c); 5511 } 5512 // r: INT_LOAD(address1scaledreg,address1reg) 5513 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 15; 5514 if (c < p.cost_r) { 5515 p.cost_r = (char)(c); 5516 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7900; // p.r = 121 5517 closure_r(p, c); 5518 } 5519 // r: INT_LOAD(address1reg,address1scaledreg) 5520 c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 15; 5521 if (c < p.cost_r) { 5522 p.cost_r = (char)(c); 5523 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7A00; // p.r = 122 5524 closure_r(p, c); 5525 } 5526 if ( // r: INT_LOAD(address,INT_CONSTANT) 5527 rchild.getOpcode() == INT_CONSTANT_opcode 5528 ) { 5529 c = STATE(lchild).cost_address + 15; 5530 if (c < p.cost_r) { 5531 p.cost_r = (char)(c); 5532 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7B00; // p.r = 123 5533 closure_r(p, c); 5534 } 5535 } 5536 } 5537 5538 private void label_LONG_LOAD(BURS_TreeNode p) { 5539 p.word0 = 0; 5540 p.initCost(); 5541 BURS_TreeNode lchild, rchild; 5542 lchild = p.child1; 5543 rchild = p.child2; 5544 label(lchild); 5545 label(rchild); 5546 int c; 5547 // load64: LONG_LOAD(riv,riv) 5548 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 5549 if (c < p.cost_load64) { 5550 p.cost_load64 = (char)(c); 5551 p.word1 = (p.word1 & 0xF1FFFFFF) | 0x2000000; // p.load64 = 1 5552 } 5553 // r: LONG_LOAD(riv,riv) 5554 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 30; 5555 if (c < p.cost_r) { 5556 p.cost_r = (char)(c); 5557 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7D00; // p.r = 125 5558 closure_r(p, c); 5559 } 5560 } 5561 5562 private void label_FLOAT_LOAD(BURS_TreeNode p) { 5563 p.word0 = 0; 5564 p.initCost(); 5565 BURS_TreeNode lchild, rchild; 5566 lchild = p.child1; 5567 rchild = p.child2; 5568 label(lchild); 5569 label(rchild); 5570 int c; 5571 // r: FLOAT_LOAD(riv,riv) 5572 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15; 5573 if (c < p.cost_r) { 5574 p.cost_r = (char)(c); 5575 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB800; // p.r = 184 5576 closure_r(p, c); 5577 } 5578 // float_load: FLOAT_LOAD(riv,riv) 5579 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 5580 if (c < p.cost_float_load) { 5581 p.cost_float_load = (char)(c); 5582 p.word2 = (p.word2 & 0xFFFC7FFF) | 0x8000; // p.float_load = 1 5583 } 5584 } 5585 5586 private void label_DOUBLE_LOAD(BURS_TreeNode p) { 5587 p.word0 = 0; 5588 p.initCost(); 5589 BURS_TreeNode lchild, rchild; 5590 lchild = p.child1; 5591 rchild = p.child2; 5592 label(lchild); 5593 label(rchild); 5594 int c; 5595 // r: DOUBLE_LOAD(riv,riv) 5596 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15; 5597 if (c < p.cost_r) { 5598 p.cost_r = (char)(c); 5599 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB600; // p.r = 182 5600 closure_r(p, c); 5601 } 5602 // double_load: DOUBLE_LOAD(riv,riv) 5603 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0; 5604 if (c < p.cost_double_load) { 5605 p.cost_double_load = (char)(c); 5606 p.word2 = (p.word2 & 0xFFE3FFFF) | 0x40000; // p.double_load = 1 5607 } 5608 } 5609 5610 private void label_BYTE_STORE(BURS_TreeNode p) { 5611 p.word0 = 0; 5612 p.initCost(); 5613 BURS_TreeNode lchild, rchild; 5614 lchild = p.child1; 5615 rchild = p.child2; 5616 label(lchild); 5617 label(rchild); 5618 int c; 5619 if ( // stm: BYTE_STORE(BOOLEAN_NOT(UBYTE_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 5620 lchild.getOpcode() == BOOLEAN_NOT_opcode && 5621 lchild.child1.getOpcode() == UBYTE_LOAD_opcode && 5622 rchild.getOpcode() == OTHER_OPERAND_opcode 5623 ) { 5624 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLL(p), 17); 5625 if (c < p.cost_stm) { 5626 p.cost_stm = (char)(c); 5627 p.word0 = (p.word0 & 0xFFFFFF00) | 0x15; // p.stm = 21 5628 } 5629 } 5630 if ( // stm: BYTE_STORE(boolcmp,OTHER_OPERAND(riv,riv)) 5631 rchild.getOpcode() == OTHER_OPERAND_opcode 5632 ) { 5633 c = STATE(lchild).cost_boolcmp + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 5634 if (c < p.cost_stm) { 5635 p.cost_stm = (char)(c); 5636 p.word0 = (p.word0 & 0xFFFFFF00) | 0x17; // p.stm = 23 5637 } 5638 } 5639 if ( // stm: BYTE_STORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv)) 5640 lchild.getOpcode() == INT_2BYTE_opcode && 5641 rchild.getOpcode() == OTHER_OPERAND_opcode 5642 ) { 5643 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 5644 if (c < p.cost_stm) { 5645 p.cost_stm = (char)(c); 5646 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3D; // p.stm = 61 5647 } 5648 } 5649 if ( // stm: BYTE_STORE(riv,OTHER_OPERAND(riv,riv)) 5650 rchild.getOpcode() == OTHER_OPERAND_opcode 5651 ) { 5652 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 5653 if (c < p.cost_stm) { 5654 p.cost_stm = (char)(c); 5655 p.word0 = (p.word0 & 0xFFFFFF00) | 0x53; // p.stm = 83 5656 } 5657 } 5658 if ( // stm: BYTE_STORE(load8,OTHER_OPERAND(riv,riv)) 5659 rchild.getOpcode() == OTHER_OPERAND_opcode 5660 ) { 5661 c = STATE(lchild).cost_load8 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25; 5662 if (c < p.cost_stm) { 5663 p.cost_stm = (char)(c); 5664 p.word0 = (p.word0 & 0xFFFFFF00) | 0x54; // p.stm = 84 5665 } 5666 } 5667 } 5668 5669 private void label_SHORT_STORE(BURS_TreeNode p) { 5670 p.word0 = 0; 5671 p.initCost(); 5672 BURS_TreeNode lchild, rchild; 5673 lchild = p.child1; 5674 rchild = p.child2; 5675 label(lchild); 5676 label(rchild); 5677 int c; 5678 if ( // stm: SHORT_STORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv)) 5679 lchild.getOpcode() == INT_2USHORT_opcode && 5680 rchild.getOpcode() == OTHER_OPERAND_opcode 5681 ) { 5682 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 5683 if (c < p.cost_stm) { 5684 p.cost_stm = (char)(c); 5685 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3F; // p.stm = 63 5686 } 5687 } 5688 if ( // stm: SHORT_STORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv)) 5689 lchild.getOpcode() == INT_2SHORT_opcode && 5690 rchild.getOpcode() == OTHER_OPERAND_opcode 5691 ) { 5692 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 5693 if (c < p.cost_stm) { 5694 p.cost_stm = (char)(c); 5695 p.word0 = (p.word0 & 0xFFFFFF00) | 0x41; // p.stm = 65 5696 } 5697 } 5698 if ( // stm: SHORT_STORE(riv,OTHER_OPERAND(riv,riv)) 5699 rchild.getOpcode() == OTHER_OPERAND_opcode 5700 ) { 5701 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 5702 if (c < p.cost_stm) { 5703 p.cost_stm = (char)(c); 5704 p.word0 = (p.word0 & 0xFFFFFF00) | 0x57; // p.stm = 87 5705 } 5706 } 5707 if ( // stm: SHORT_STORE(load16,OTHER_OPERAND(riv,riv)) 5708 rchild.getOpcode() == OTHER_OPERAND_opcode 5709 ) { 5710 c = STATE(lchild).cost_load16 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25; 5711 if (c < p.cost_stm) { 5712 p.cost_stm = (char)(c); 5713 p.word0 = (p.word0 & 0xFFFFFF00) | 0x58; // p.stm = 88 5714 } 5715 } 5716 } 5717 5718 private void label_INT_STORE(BURS_TreeNode p) { 5719 p.word0 = 0; 5720 p.initCost(); 5721 BURS_TreeNode lchild, rchild; 5722 lchild = p.child1; 5723 rchild = p.child2; 5724 label(lchild); 5725 label(rchild); 5726 int c; 5727 if ( // stm: INT_STORE(INT_ADD(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 5728 lchild.getOpcode() == INT_ADD_opcode && 5729 lchild.child1.getOpcode() == INT_LOAD_opcode && 5730 rchild.getOpcode() == OTHER_OPERAND_opcode 5731 ) { 5732 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLL(p), 17); 5733 if (c < p.cost_stm) { 5734 p.cost_stm = (char)(c); 5735 p.word0 = (p.word0 & 0xFFFFFF00) | 0x19; // p.stm = 25 5736 } 5737 } 5738 if ( // stm: INT_STORE(INT_ADD(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 5739 lchild.getOpcode() == INT_ADD_opcode && 5740 lchild.child2.getOpcode() == INT_LOAD_opcode && 5741 rchild.getOpcode() == OTHER_OPERAND_opcode 5742 ) { 5743 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLR(p), 17); 5744 if (c < p.cost_stm) { 5745 p.cost_stm = (char)(c); 5746 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1A; // p.stm = 26 5747 } 5748 } 5749 if ( // stm: INT_STORE(INT_SUB(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 5750 lchild.getOpcode() == INT_SUB_opcode && 5751 lchild.child1.getOpcode() == INT_LOAD_opcode && 5752 rchild.getOpcode() == OTHER_OPERAND_opcode 5753 ) { 5754 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLL(p), 17); 5755 if (c < p.cost_stm) { 5756 p.cost_stm = (char)(c); 5757 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1D; // p.stm = 29 5758 } 5759 } 5760 if ( // stm: INT_STORE(INT_SUB(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 5761 lchild.getOpcode() == INT_SUB_opcode && 5762 lchild.child2.getOpcode() == INT_LOAD_opcode && 5763 rchild.getOpcode() == OTHER_OPERAND_opcode 5764 ) { 5765 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLR(p), 27); 5766 if (c < p.cost_stm) { 5767 p.cost_stm = (char)(c); 5768 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1E; // p.stm = 30 5769 } 5770 } 5771 if ( // stm: INT_STORE(INT_NEG(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 5772 lchild.getOpcode() == INT_NEG_opcode && 5773 lchild.child1.getOpcode() == INT_LOAD_opcode && 5774 rchild.getOpcode() == OTHER_OPERAND_opcode 5775 ) { 5776 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLL(p), 17); 5777 if (c < p.cost_stm) { 5778 p.cost_stm = (char)(c); 5779 p.word0 = (p.word0 & 0xFFFFFF00) | 0x21; // p.stm = 33 5780 } 5781 } 5782 if ( // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 5783 lchild.getOpcode() == INT_SHL_opcode && 5784 lchild.child1.getOpcode() == INT_LOAD_opcode && 5785 lchild.child2.getOpcode() == INT_AND_opcode && 5786 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 5787 rchild.getOpcode() == OTHER_OPERAND_opcode 5788 ) { 5789 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + (ADDRESS_EQUAL(P(p), PLL(p), VLRR(p) == 31 ? 27 : INFINITE)); 5790 if (c < p.cost_stm) { 5791 p.cost_stm = (char)(c); 5792 p.word0 = (p.word0 & 0xFFFFFF00) | 0x23; // p.stm = 35 5793 } 5794 } 5795 if ( // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 5796 lchild.getOpcode() == INT_SHL_opcode && 5797 lchild.child1.getOpcode() == INT_LOAD_opcode && 5798 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 5799 rchild.getOpcode() == OTHER_OPERAND_opcode 5800 ) { 5801 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLL(p), 17); 5802 if (c < p.cost_stm) { 5803 p.cost_stm = (char)(c); 5804 p.word0 = (p.word0 & 0xFFFFFF00) | 0x24; // p.stm = 36 5805 } 5806 } 5807 if ( // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 5808 lchild.getOpcode() == INT_SHR_opcode && 5809 lchild.child1.getOpcode() == INT_LOAD_opcode && 5810 lchild.child2.getOpcode() == INT_AND_opcode && 5811 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 5812 rchild.getOpcode() == OTHER_OPERAND_opcode 5813 ) { 5814 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + (ADDRESS_EQUAL(P(p), PLL(p), VLRR(p) == 31 ? 27 : INFINITE)); 5815 if (c < p.cost_stm) { 5816 p.cost_stm = (char)(c); 5817 p.word0 = (p.word0 & 0xFFFFFF00) | 0x27; // p.stm = 39 5818 } 5819 } 5820 if ( // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 5821 lchild.getOpcode() == INT_SHR_opcode && 5822 lchild.child1.getOpcode() == INT_LOAD_opcode && 5823 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 5824 rchild.getOpcode() == OTHER_OPERAND_opcode 5825 ) { 5826 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLL(p), 17); 5827 if (c < p.cost_stm) { 5828 p.cost_stm = (char)(c); 5829 p.word0 = (p.word0 & 0xFFFFFF00) | 0x28; // p.stm = 40 5830 } 5831 } 5832 if ( // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 5833 lchild.getOpcode() == INT_USHR_opcode && 5834 lchild.child1.getOpcode() == INT_LOAD_opcode && 5835 lchild.child2.getOpcode() == INT_AND_opcode && 5836 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode && 5837 rchild.getOpcode() == OTHER_OPERAND_opcode 5838 ) { 5839 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + (ADDRESS_EQUAL(P(p), PLL(p), VLRR(p) == 31 ? 27 : INFINITE)); 5840 if (c < p.cost_stm) { 5841 p.cost_stm = (char)(c); 5842 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2B; // p.stm = 43 5843 } 5844 } 5845 if ( // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 5846 lchild.getOpcode() == INT_USHR_opcode && 5847 lchild.child1.getOpcode() == INT_LOAD_opcode && 5848 lchild.child2.getOpcode() == INT_CONSTANT_opcode && 5849 rchild.getOpcode() == OTHER_OPERAND_opcode 5850 ) { 5851 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLL(p), 17); 5852 if (c < p.cost_stm) { 5853 p.cost_stm = (char)(c); 5854 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2C; // p.stm = 44 5855 } 5856 } 5857 if ( // stm: INT_STORE(INT_AND(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 5858 lchild.getOpcode() == INT_AND_opcode && 5859 lchild.child1.getOpcode() == INT_LOAD_opcode && 5860 rchild.getOpcode() == OTHER_OPERAND_opcode 5861 ) { 5862 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLL(p), 17); 5863 if (c < p.cost_stm) { 5864 p.cost_stm = (char)(c); 5865 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2F; // p.stm = 47 5866 } 5867 } 5868 if ( // stm: INT_STORE(INT_AND(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 5869 lchild.getOpcode() == INT_AND_opcode && 5870 lchild.child2.getOpcode() == INT_LOAD_opcode && 5871 rchild.getOpcode() == OTHER_OPERAND_opcode 5872 ) { 5873 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLR(p), 17); 5874 if (c < p.cost_stm) { 5875 p.cost_stm = (char)(c); 5876 p.word0 = (p.word0 & 0xFFFFFF00) | 0x30; // p.stm = 48 5877 } 5878 } 5879 if ( // stm: INT_STORE(INT_OR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 5880 lchild.getOpcode() == INT_OR_opcode && 5881 lchild.child1.getOpcode() == INT_LOAD_opcode && 5882 rchild.getOpcode() == OTHER_OPERAND_opcode 5883 ) { 5884 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLL(p), 17); 5885 if (c < p.cost_stm) { 5886 p.cost_stm = (char)(c); 5887 p.word0 = (p.word0 & 0xFFFFFF00) | 0x33; // p.stm = 51 5888 } 5889 } 5890 if ( // stm: INT_STORE(INT_OR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 5891 lchild.getOpcode() == INT_OR_opcode && 5892 lchild.child2.getOpcode() == INT_LOAD_opcode && 5893 rchild.getOpcode() == OTHER_OPERAND_opcode 5894 ) { 5895 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLR(p), 17); 5896 if (c < p.cost_stm) { 5897 p.cost_stm = (char)(c); 5898 p.word0 = (p.word0 & 0xFFFFFF00) | 0x34; // p.stm = 52 5899 } 5900 } 5901 if ( // stm: INT_STORE(INT_XOR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 5902 lchild.getOpcode() == INT_XOR_opcode && 5903 lchild.child1.getOpcode() == INT_LOAD_opcode && 5904 rchild.getOpcode() == OTHER_OPERAND_opcode 5905 ) { 5906 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLL(p), 17); 5907 if (c < p.cost_stm) { 5908 p.cost_stm = (char)(c); 5909 p.word0 = (p.word0 & 0xFFFFFF00) | 0x37; // p.stm = 55 5910 } 5911 } 5912 if ( // stm: INT_STORE(INT_XOR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 5913 lchild.getOpcode() == INT_XOR_opcode && 5914 lchild.child2.getOpcode() == INT_LOAD_opcode && 5915 rchild.getOpcode() == OTHER_OPERAND_opcode 5916 ) { 5917 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2.child1).cost_riv + STATE(lchild.child2.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLR(p), 17); 5918 if (c < p.cost_stm) { 5919 p.cost_stm = (char)(c); 5920 p.word0 = (p.word0 & 0xFFFFFF00) | 0x38; // p.stm = 56 5921 } 5922 } 5923 if ( // stm: INT_STORE(INT_NOT(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 5924 lchild.getOpcode() == INT_NOT_opcode && 5925 lchild.child1.getOpcode() == INT_LOAD_opcode && 5926 rchild.getOpcode() == OTHER_OPERAND_opcode 5927 ) { 5928 c = STATE(lchild.child1.child1).cost_riv + STATE(lchild.child1.child2).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + ADDRESS_EQUAL(P(p), PLL(p), 17); 5929 if (c < p.cost_stm) { 5930 p.cost_stm = (char)(c); 5931 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3B; // p.stm = 59 5932 } 5933 } 5934 if ( // stm: INT_STORE(LONG_2INT(r),OTHER_OPERAND(riv,riv)) 5935 lchild.getOpcode() == LONG_2INT_opcode && 5936 rchild.getOpcode() == OTHER_OPERAND_opcode 5937 ) { 5938 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 5939 if (c < p.cost_stm) { 5940 p.cost_stm = (char)(c); 5941 p.word0 = (p.word0 & 0xFFFFFF00) | 0x43; // p.stm = 67 5942 } 5943 } 5944 if ( // stm: INT_STORE(riv,OTHER_OPERAND(riv,riv)) 5945 rchild.getOpcode() == OTHER_OPERAND_opcode 5946 ) { 5947 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15; 5948 if (c < p.cost_stm) { 5949 p.cost_stm = (char)(c); 5950 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5B; // p.stm = 91 5951 } 5952 } 5953 if ( // stm: INT_STORE(riv,OTHER_OPERAND(riv,address1scaledreg)) 5954 rchild.getOpcode() == OTHER_OPERAND_opcode 5955 ) { 5956 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_address1scaledreg + 15; 5957 if (c < p.cost_stm) { 5958 p.cost_stm = (char)(c); 5959 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5C; // p.stm = 92 5960 } 5961 } 5962 if ( // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,riv)) 5963 rchild.getOpcode() == OTHER_OPERAND_opcode 5964 ) { 5965 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2).cost_riv + 15; 5966 if (c < p.cost_stm) { 5967 p.cost_stm = (char)(c); 5968 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5D; // p.stm = 93 5969 } 5970 } 5971 if ( // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,address1reg)) 5972 rchild.getOpcode() == OTHER_OPERAND_opcode 5973 ) { 5974 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2).cost_address1reg + 15; 5975 if (c < p.cost_stm) { 5976 p.cost_stm = (char)(c); 5977 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5E; // p.stm = 94 5978 } 5979 } 5980 if ( // stm: INT_STORE(riv,OTHER_OPERAND(address1reg,address1scaledreg)) 5981 rchild.getOpcode() == OTHER_OPERAND_opcode 5982 ) { 5983 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address1reg + STATE(rchild.child2).cost_address1scaledreg + 15; 5984 if (c < p.cost_stm) { 5985 p.cost_stm = (char)(c); 5986 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5F; // p.stm = 95 5987 } 5988 } 5989 if ( // stm: INT_STORE(riv,OTHER_OPERAND(address,INT_CONSTANT)) 5990 rchild.getOpcode() == OTHER_OPERAND_opcode && 5991 rchild.child2.getOpcode() == INT_CONSTANT_opcode 5992 ) { 5993 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address + 15; 5994 if (c < p.cost_stm) { 5995 p.cost_stm = (char)(c); 5996 p.word0 = (p.word0 & 0xFFFFFF00) | 0x60; // p.stm = 96 5997 } 5998 } 5999 } 6000 6001 private void label_LONG_STORE(BURS_TreeNode p) { 6002 p.word0 = 0; 6003 p.initCost(); 6004 BURS_TreeNode lchild, rchild; 6005 lchild = p.child1; 6006 rchild = p.child2; 6007 label(lchild); 6008 label(rchild); 6009 int c; 6010 if ( // stm: LONG_STORE(r,OTHER_OPERAND(riv,riv)) 6011 rchild.getOpcode() == OTHER_OPERAND_opcode 6012 ) { 6013 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 30; 6014 if (c < p.cost_stm) { 6015 p.cost_stm = (char)(c); 6016 p.word0 = (p.word0 & 0xFFFFFF00) | 0x62; // p.stm = 98 6017 } 6018 } 6019 if ( // stm: LONG_STORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv)) 6020 lchild.getOpcode() == LONG_CONSTANT_opcode && 6021 rchild.getOpcode() == OTHER_OPERAND_opcode 6022 ) { 6023 c = STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 26; 6024 if (c < p.cost_stm) { 6025 p.cost_stm = (char)(c); 6026 p.word0 = (p.word0 & 0xFFFFFF00) | 0x63; // p.stm = 99 6027 } 6028 } 6029 if ( // stm: LONG_STORE(load64,OTHER_OPERAND(riv,riv)) 6030 rchild.getOpcode() == OTHER_OPERAND_opcode 6031 ) { 6032 c = STATE(lchild).cost_load64 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 32; 6033 if (c < p.cost_stm) { 6034 p.cost_stm = (char)(c); 6035 p.word0 = (p.word0 & 0xFFFFFF00) | 0x8E; // p.stm = 142 6036 } 6037 } 6038 } 6039 6040 private void label_FLOAT_STORE(BURS_TreeNode p) { 6041 p.word0 = 0; 6042 p.initCost(); 6043 BURS_TreeNode lchild, rchild; 6044 lchild = p.child1; 6045 rchild = p.child2; 6046 label(lchild); 6047 label(rchild); 6048 int c; 6049 if ( // stm: FLOAT_STORE(r,OTHER_OPERAND(riv,riv)) 6050 rchild.getOpcode() == OTHER_OPERAND_opcode 6051 ) { 6052 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 17; 6053 if (c < p.cost_stm) { 6054 p.cost_stm = (char)(c); 6055 p.word0 = (p.word0 & 0xFFFFFF00) | 0x84; // p.stm = 132 6056 } 6057 } 6058 } 6059 6060 private void label_DOUBLE_STORE(BURS_TreeNode p) { 6061 p.word0 = 0; 6062 p.initCost(); 6063 BURS_TreeNode lchild, rchild; 6064 lchild = p.child1; 6065 rchild = p.child2; 6066 label(lchild); 6067 label(rchild); 6068 int c; 6069 if ( // stm: DOUBLE_STORE(r,OTHER_OPERAND(riv,riv)) 6070 rchild.getOpcode() == OTHER_OPERAND_opcode 6071 ) { 6072 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 17; 6073 if (c < p.cost_stm) { 6074 p.cost_stm = (char)(c); 6075 p.word0 = (p.word0 & 0xFFFFFF00) | 0x82; // p.stm = 130 6076 } 6077 } 6078 } 6079 6080 private void label_PREPARE_INT(BURS_TreeNode p) { 6081 p.word0 = 0; 6082 p.initCost(); 6083 BURS_TreeNode lchild, rchild; 6084 lchild = p.child1; 6085 rchild = p.child2; 6086 label(lchild); 6087 label(rchild); 6088 int c; 6089 // r: PREPARE_INT(riv,riv) 6090 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15; 6091 if (c < p.cost_r) { 6092 p.cost_r = (char)(c); 6093 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7F00; // p.r = 127 6094 closure_r(p, c); 6095 } 6096 // r: PREPARE_INT(r,address1scaledreg) 6097 c = STATE(lchild).cost_r + STATE(rchild).cost_address1scaledreg + 15; 6098 if (c < p.cost_r) { 6099 p.cost_r = (char)(c); 6100 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8000; // p.r = 128 6101 closure_r(p, c); 6102 } 6103 // r: PREPARE_INT(address1scaledreg,r) 6104 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_r + 15; 6105 if (c < p.cost_r) { 6106 p.cost_r = (char)(c); 6107 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8100; // p.r = 129 6108 closure_r(p, c); 6109 } 6110 // r: PREPARE_INT(address1scaledreg,address1reg) 6111 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 15; 6112 if (c < p.cost_r) { 6113 p.cost_r = (char)(c); 6114 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8200; // p.r = 130 6115 closure_r(p, c); 6116 } 6117 // r: PREPARE_INT(address1reg,address1scaledreg) 6118 c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 15; 6119 if (c < p.cost_r) { 6120 p.cost_r = (char)(c); 6121 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8300; // p.r = 131 6122 closure_r(p, c); 6123 } 6124 if ( // r: PREPARE_INT(address,INT_CONSTANT) 6125 rchild.getOpcode() == INT_CONSTANT_opcode 6126 ) { 6127 c = STATE(lchild).cost_address + 15; 6128 if (c < p.cost_r) { 6129 p.cost_r = (char)(c); 6130 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8400; // p.r = 132 6131 closure_r(p, c); 6132 } 6133 } 6134 if ( // r: PREPARE_INT(INT_CONSTANT,address) 6135 lchild.getOpcode() == INT_CONSTANT_opcode 6136 ) { 6137 c = STATE(rchild).cost_address + 15; 6138 if (c < p.cost_r) { 6139 p.cost_r = (char)(c); 6140 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8500; // p.r = 133 6141 closure_r(p, c); 6142 } 6143 } 6144 } 6145 6146 private void label_PREPARE_LONG(BURS_TreeNode p) { 6147 p.word0 = 0; 6148 p.initCost(); 6149 BURS_TreeNode lchild, rchild; 6150 lchild = p.child1; 6151 rchild = p.child2; 6152 label(lchild); 6153 label(rchild); 6154 int c; 6155 // r: PREPARE_LONG(riv,riv) 6156 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 30; 6157 if (c < p.cost_r) { 6158 p.cost_r = (char)(c); 6159 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8600; // p.r = 134 6160 closure_r(p, c); 6161 } 6162 } 6163 6164 private void label_ATTEMPT_INT(BURS_TreeNode p) { 6165 p.word0 = 0; 6166 p.initCost(); 6167 BURS_TreeNode lchild, rchild; 6168 lchild = p.child1; 6169 rchild = p.child2; 6170 label(lchild); 6171 label(rchild); 6172 int c; 6173 if ( // r: ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))) 6174 rchild.getOpcode() == OTHER_OPERAND_opcode && 6175 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 6176 ) { 6177 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67; 6178 if (c < p.cost_r) { 6179 p.cost_r = (char)(c); 6180 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8700; // p.r = 135 6181 closure_r(p, c); 6182 } 6183 } 6184 if ( // r: ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))) 6185 rchild.getOpcode() == OTHER_OPERAND_opcode && 6186 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 6187 ) { 6188 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67; 6189 if (c < p.cost_r) { 6190 p.cost_r = (char)(c); 6191 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8800; // p.r = 136 6192 closure_r(p, c); 6193 } 6194 } 6195 if ( // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))) 6196 rchild.getOpcode() == OTHER_OPERAND_opcode && 6197 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 6198 ) { 6199 c = STATE(lchild).cost_address1scaledreg + STATE(rchild.child1).cost_r + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67; 6200 if (c < p.cost_r) { 6201 p.cost_r = (char)(c); 6202 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8900; // p.r = 137 6203 closure_r(p, c); 6204 } 6205 } 6206 if ( // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))) 6207 rchild.getOpcode() == OTHER_OPERAND_opcode && 6208 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 6209 ) { 6210 c = STATE(lchild).cost_address1scaledreg + STATE(rchild.child1).cost_address1reg + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67; 6211 if (c < p.cost_r) { 6212 p.cost_r = (char)(c); 6213 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8A00; // p.r = 138 6214 closure_r(p, c); 6215 } 6216 } 6217 if ( // r: ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))) 6218 rchild.getOpcode() == OTHER_OPERAND_opcode && 6219 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 6220 ) { 6221 c = STATE(lchild).cost_address1reg + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67; 6222 if (c < p.cost_r) { 6223 p.cost_r = (char)(c); 6224 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8B00; // p.r = 139 6225 closure_r(p, c); 6226 } 6227 } 6228 if ( // r: ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))) 6229 rchild.getOpcode() == OTHER_OPERAND_opcode && 6230 rchild.child1.getOpcode() == INT_CONSTANT_opcode && 6231 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 6232 ) { 6233 c = STATE(lchild).cost_address + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67; 6234 if (c < p.cost_r) { 6235 p.cost_r = (char)(c); 6236 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8C00; // p.r = 140 6237 closure_r(p, c); 6238 } 6239 } 6240 if ( // r: ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))) 6241 lchild.getOpcode() == INT_CONSTANT_opcode && 6242 rchild.getOpcode() == OTHER_OPERAND_opcode && 6243 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 6244 ) { 6245 c = STATE(rchild.child1).cost_address + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67; 6246 if (c < p.cost_r) { 6247 p.cost_r = (char)(c); 6248 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8D00; // p.r = 141 6249 closure_r(p, c); 6250 } 6251 } 6252 } 6253 6254 private void label_ATTEMPT_LONG(BURS_TreeNode p) { 6255 p.word0 = 0; 6256 p.initCost(); 6257 BURS_TreeNode lchild, rchild; 6258 lchild = p.child1; 6259 rchild = p.child2; 6260 label(lchild); 6261 label(rchild); 6262 int c; 6263 if ( // r: ATTEMPT_LONG(riv,OTHER_OPERAND(riv,OTHER_OPERAND(rlv,rlv))) 6264 rchild.getOpcode() == OTHER_OPERAND_opcode && 6265 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 6266 ) { 6267 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2.child1).cost_rlv + STATE(rchild.child2.child2).cost_rlv + 67; 6268 if (c < p.cost_r) { 6269 p.cost_r = (char)(c); 6270 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8E00; // p.r = 142 6271 closure_r(p, c); 6272 } 6273 } 6274 } 6275 6276 private void label_CALL(BURS_TreeNode p) { 6277 p.word0 = 0; 6278 p.initCost(); 6279 BURS_TreeNode lchild, rchild; 6280 lchild = p.child1; 6281 rchild = p.child2; 6282 label(lchild); 6283 label(rchild); 6284 int c; 6285 // r: CALL(r,any) 6286 c = STATE(lchild).cost_r + STATE(rchild).cost_any + 13; 6287 if (c < p.cost_r) { 6288 p.cost_r = (char)(c); 6289 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9000; // p.r = 144 6290 closure_r(p, c); 6291 } 6292 if ( // r: CALL(BRANCH_TARGET,any) 6293 lchild.getOpcode() == BRANCH_TARGET_opcode 6294 ) { 6295 c = STATE(rchild).cost_any + 13; 6296 if (c < p.cost_r) { 6297 p.cost_r = (char)(c); 6298 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9100; // p.r = 145 6299 closure_r(p, c); 6300 } 6301 } 6302 if ( // r: CALL(INT_LOAD(riv,riv),any) 6303 lchild.getOpcode() == INT_LOAD_opcode 6304 ) { 6305 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild).cost_any + 11; 6306 if (c < p.cost_r) { 6307 p.cost_r = (char)(c); 6308 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9200; // p.r = 146 6309 closure_r(p, c); 6310 } 6311 } 6312 if ( // r: CALL(INT_CONSTANT,any) 6313 lchild.getOpcode() == INT_CONSTANT_opcode 6314 ) { 6315 c = STATE(rchild).cost_any + 23; 6316 if (c < p.cost_r) { 6317 p.cost_r = (char)(c); 6318 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9300; // p.r = 147 6319 closure_r(p, c); 6320 } 6321 } 6322 } 6323 6324 private void label_SYSCALL(BURS_TreeNode p) { 6325 p.word0 = 0; 6326 p.initCost(); 6327 BURS_TreeNode lchild, rchild; 6328 lchild = p.child1; 6329 rchild = p.child2; 6330 label(lchild); 6331 label(rchild); 6332 int c; 6333 // r: SYSCALL(r,any) 6334 c = STATE(lchild).cost_r + STATE(rchild).cost_any + 13; 6335 if (c < p.cost_r) { 6336 p.cost_r = (char)(c); 6337 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9400; // p.r = 148 6338 closure_r(p, c); 6339 } 6340 if ( // r: SYSCALL(INT_LOAD(riv,riv),any) 6341 lchild.getOpcode() == INT_LOAD_opcode 6342 ) { 6343 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild).cost_any + 11; 6344 if (c < p.cost_r) { 6345 p.cost_r = (char)(c); 6346 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9500; // p.r = 149 6347 closure_r(p, c); 6348 } 6349 } 6350 if ( // r: SYSCALL(INT_CONSTANT,any) 6351 lchild.getOpcode() == INT_CONSTANT_opcode 6352 ) { 6353 c = STATE(rchild).cost_any + 23; 6354 if (c < p.cost_r) { 6355 p.cost_r = (char)(c); 6356 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9600; // p.r = 150 6357 closure_r(p, c); 6358 } 6359 } 6360 } 6361 6362 private void label_YIELDPOINT_PROLOGUE(BURS_TreeNode p) { 6363 p.word0 = 0; 6364 p.initCost(); 6365 // stm: YIELDPOINT_PROLOGUE 6366 if (10 < p.cost_stm) { 6367 p.cost_stm = (char)(10); 6368 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5; // p.stm = 5 6369 } 6370 } 6371 6372 private void label_YIELDPOINT_EPILOGUE(BURS_TreeNode p) { 6373 p.word0 = 0; 6374 p.initCost(); 6375 // stm: YIELDPOINT_EPILOGUE 6376 if (10 < p.cost_stm) { 6377 p.cost_stm = (char)(10); 6378 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6; // p.stm = 6 6379 } 6380 } 6381 6382 private void label_YIELDPOINT_BACKEDGE(BURS_TreeNode p) { 6383 p.word0 = 0; 6384 p.initCost(); 6385 // stm: YIELDPOINT_BACKEDGE 6386 if (10 < p.cost_stm) { 6387 p.cost_stm = (char)(10); 6388 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7; // p.stm = 7 6389 } 6390 } 6391 6392 private void label_YIELDPOINT_OSR(BURS_TreeNode p) { 6393 p.word0 = 0; 6394 p.initCost(); 6395 BURS_TreeNode lchild, rchild; 6396 lchild = p.child1; 6397 rchild = p.child2; 6398 label(lchild); 6399 label(rchild); 6400 int c; 6401 // stm: YIELDPOINT_OSR(any,any) 6402 c = STATE(lchild).cost_any + STATE(rchild).cost_any + 10; 6403 if (c < p.cost_stm) { 6404 p.cost_stm = (char)(c); 6405 p.word0 = (p.word0 & 0xFFFFFF00) | 0x81; // p.stm = 129 6406 } 6407 } 6408 6409 private void label_IR_PROLOGUE(BURS_TreeNode p) { 6410 p.word0 = 0; 6411 p.initCost(); 6412 // stm: IR_PROLOGUE 6413 if (11 < p.cost_stm) { 6414 p.cost_stm = (char)(11); 6415 p.word0 = (p.word0 & 0xFFFFFF00) | 0xC; // p.stm = 12 6416 } 6417 } 6418 6419 private void label_RESOLVE(BURS_TreeNode p) { 6420 p.word0 = 0; 6421 p.initCost(); 6422 // stm: RESOLVE 6423 if (10 < p.cost_stm) { 6424 p.cost_stm = (char)(10); 6425 p.word0 = (p.word0 & 0xFFFFFF00) | 0x9; // p.stm = 9 6426 } 6427 } 6428 6429 private void label_GET_TIME_BASE(BURS_TreeNode p) { 6430 p.word0 = 0; 6431 p.initCost(); 6432 // r: GET_TIME_BASE 6433 if (15 < p.cost_r) { 6434 p.cost_r = (char)(15); 6435 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9700; // p.r = 151 6436 closure_r(p, 15); 6437 } 6438 } 6439 6440 private void label_TRAP_IF(BURS_TreeNode p) { 6441 p.word0 = 0; 6442 p.initCost(); 6443 BURS_TreeNode lchild, rchild; 6444 lchild = p.child1; 6445 rchild = p.child2; 6446 label(lchild); 6447 label(rchild); 6448 int c; 6449 if ( // stm: TRAP_IF(r,INT_CONSTANT) 6450 rchild.getOpcode() == INT_CONSTANT_opcode 6451 ) { 6452 c = STATE(lchild).cost_r + 10; 6453 if (c < p.cost_stm) { 6454 p.cost_stm = (char)(c); 6455 p.word0 = (p.word0 & 0xFFFFFF00) | 0x10; // p.stm = 16 6456 } 6457 } 6458 if ( // stm: TRAP_IF(r,LONG_CONSTANT) 6459 rchild.getOpcode() == LONG_CONSTANT_opcode 6460 ) { 6461 c = STATE(lchild).cost_r + 10; 6462 if (c < p.cost_stm) { 6463 p.cost_stm = (char)(c); 6464 p.word0 = (p.word0 & 0xFFFFFF00) | 0x11; // p.stm = 17 6465 } 6466 } 6467 // stm: TRAP_IF(r,r) 6468 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 10; 6469 if (c < p.cost_stm) { 6470 p.cost_stm = (char)(c); 6471 p.word0 = (p.word0 & 0xFFFFFF00) | 0x12; // p.stm = 18 6472 } 6473 // stm: TRAP_IF(load32,riv) 6474 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15; 6475 if (c < p.cost_stm) { 6476 p.cost_stm = (char)(c); 6477 p.word0 = (p.word0 & 0xFFFFFF00) | 0x13; // p.stm = 19 6478 } 6479 // stm: TRAP_IF(riv,load32) 6480 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15; 6481 if (c < p.cost_stm) { 6482 p.cost_stm = (char)(c); 6483 p.word0 = (p.word0 & 0xFFFFFF00) | 0x14; // p.stm = 20 6484 } 6485 } 6486 6487 private void label_TRAP(BURS_TreeNode p) { 6488 p.word0 = 0; 6489 p.initCost(); 6490 // stm: TRAP 6491 if (10 < p.cost_stm) { 6492 p.cost_stm = (char)(10); 6493 p.word0 = (p.word0 & 0xFFFFFF00) | 0xF; // p.stm = 15 6494 } 6495 } 6496 6497 private void label_FLOAT_AS_INT_BITS(BURS_TreeNode p) { 6498 p.word0 = 0; 6499 p.initCost(); 6500 BURS_TreeNode lchild; 6501 lchild = p.child1; 6502 label(lchild); 6503 int c; 6504 // r: FLOAT_AS_INT_BITS(r) 6505 c = STATE(lchild).cost_r + 13; 6506 if (c < p.cost_r) { 6507 p.cost_r = (char)(c); 6508 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC600; // p.r = 198 6509 closure_r(p, c); 6510 } 6511 // load32: FLOAT_AS_INT_BITS(float_load) 6512 c = STATE(lchild).cost_float_load + 0; 6513 if (c < p.cost_load32) { 6514 p.cost_load32 = (char)(c); 6515 p.word1 = (p.word1 & 0xFFE3FFFF) | 0x180000; // p.load32 = 6 6516 closure_load32(p, c); 6517 } 6518 } 6519 6520 private void label_INT_BITS_AS_FLOAT(BURS_TreeNode p) { 6521 p.word0 = 0; 6522 p.initCost(); 6523 BURS_TreeNode lchild; 6524 lchild = p.child1; 6525 label(lchild); 6526 int c; 6527 // r: INT_BITS_AS_FLOAT(riv) 6528 c = STATE(lchild).cost_riv + 13; 6529 if (c < p.cost_r) { 6530 p.cost_r = (char)(c); 6531 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC800; // p.r = 200 6532 closure_r(p, c); 6533 } 6534 // float_load: INT_BITS_AS_FLOAT(load32) 6535 c = STATE(lchild).cost_load32 + 0; 6536 if (c < p.cost_float_load) { 6537 p.cost_float_load = (char)(c); 6538 p.word2 = (p.word2 & 0xFFFC7FFF) | 0x18000; // p.float_load = 3 6539 } 6540 } 6541 6542 private void label_DOUBLE_AS_LONG_BITS(BURS_TreeNode p) { 6543 p.word0 = 0; 6544 p.initCost(); 6545 BURS_TreeNode lchild; 6546 lchild = p.child1; 6547 label(lchild); 6548 int c; 6549 // r: DOUBLE_AS_LONG_BITS(r) 6550 c = STATE(lchild).cost_r + 13; 6551 if (c < p.cost_r) { 6552 p.cost_r = (char)(c); 6553 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC700; // p.r = 199 6554 closure_r(p, c); 6555 } 6556 // load64: DOUBLE_AS_LONG_BITS(double_load) 6557 c = STATE(lchild).cost_double_load + 0; 6558 if (c < p.cost_load64) { 6559 p.cost_load64 = (char)(c); 6560 p.word1 = (p.word1 & 0xF1FFFFFF) | 0x8000000; // p.load64 = 4 6561 } 6562 } 6563 6564 private void label_LONG_BITS_AS_DOUBLE(BURS_TreeNode p) { 6565 p.word0 = 0; 6566 p.initCost(); 6567 BURS_TreeNode lchild; 6568 lchild = p.child1; 6569 label(lchild); 6570 int c; 6571 // r: LONG_BITS_AS_DOUBLE(rlv) 6572 c = STATE(lchild).cost_rlv + 13; 6573 if (c < p.cost_r) { 6574 p.cost_r = (char)(c); 6575 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC900; // p.r = 201 6576 closure_r(p, c); 6577 } 6578 // double_load: LONG_BITS_AS_DOUBLE(load64) 6579 c = STATE(lchild).cost_load64 + 0; 6580 if (c < p.cost_double_load) { 6581 p.cost_double_load = (char)(c); 6582 p.word2 = (p.word2 & 0xFFE3FFFF) | 0xC0000; // p.double_load = 3 6583 } 6584 } 6585 6586 private void label_LOWTABLESWITCH(BURS_TreeNode p) { 6587 p.word0 = 0; 6588 p.initCost(); 6589 BURS_TreeNode lchild; 6590 lchild = p.child1; 6591 label(lchild); 6592 int c; 6593 // stm: LOWTABLESWITCH(r) 6594 c = STATE(lchild).cost_r + 10; 6595 if (c < p.cost_stm) { 6596 p.cost_stm = (char)(c); 6597 p.word0 = (p.word0 & 0xFFFFFF00) | 0x8; // p.stm = 8 6598 } 6599 } 6600 6601 private void label_ADDRESS_CONSTANT(BURS_TreeNode p) { 6602 p.word0 = 0; 6603 p.initCost(); 6604 // any: ADDRESS_CONSTANT 6605 if (0 < p.cost_any) { 6606 p.cost_any = (char)(0); 6607 p.word1 = (p.word1 & 0xFFFFFFE3) | 0xC; // p.any = 3 6608 } 6609 } 6610 6611 private void label_INT_CONSTANT(BURS_TreeNode p) { 6612 p.word0 = 0; 6613 p.initCost(); 6614 // riv: INT_CONSTANT 6615 if (0 < p.cost_riv) { 6616 p.cost_riv = (char)(0); 6617 p.word0 = (p.word0 & 0x9FFFFFFF) | 0x40000000; // p.riv = 2 6618 closure_riv(p, 0); 6619 } 6620 } 6621 6622 private void label_LONG_CONSTANT(BURS_TreeNode p) { 6623 p.word0 = 0; 6624 p.initCost(); 6625 // rlv: LONG_CONSTANT 6626 if (0 < p.cost_rlv) { 6627 p.cost_rlv = (char)(0); 6628 p.word1 = (p.word1 & 0xFFFFFFFC) | 0x2; // p.rlv = 2 6629 } 6630 // any: LONG_CONSTANT 6631 if (0 < p.cost_any) { 6632 p.cost_any = (char)(0); 6633 p.word1 = (p.word1 & 0xFFFFFFE3) | 0x10; // p.any = 4 6634 } 6635 } 6636 6637 private void label_REGISTER(BURS_TreeNode p) { 6638 p.word0 = 0; 6639 p.initCost(); 6640 // r: REGISTER 6641 if (0 < p.cost_r) { 6642 p.cost_r = (char)(0); 6643 p.word0 = (p.word0 & 0xFFFF00FF) | 0x100; // p.r = 1 6644 closure_r(p, 0); 6645 } 6646 } 6647 6648 private void label_OTHER_OPERAND(BURS_TreeNode p) { 6649 p.word0 = 0; 6650 p.initCost(); 6651 BURS_TreeNode lchild, rchild; 6652 lchild = p.child1; 6653 rchild = p.child2; 6654 label(lchild); 6655 label(rchild); 6656 int c; 6657 // any: OTHER_OPERAND(any,any) 6658 c = STATE(lchild).cost_any + STATE(rchild).cost_any + 0; 6659 if (c < p.cost_any) { 6660 p.cost_any = (char)(c); 6661 p.word1 = (p.word1 & 0xFFFFFFE3) | 0x14; // p.any = 5 6662 } 6663 } 6664 6665 private void label_NULL(BURS_TreeNode p) { 6666 p.word0 = 0; 6667 p.initCost(); 6668 // any: NULL 6669 if (0 < p.cost_any) { 6670 p.cost_any = (char)(0); 6671 p.word1 = (p.word1 & 0xFFFFFFE3) | 0x4; // p.any = 1 6672 } 6673 } 6674 6675 private void label_BRANCH_TARGET(BURS_TreeNode p) { 6676 p.word0 = 0; 6677 p.initCost(); 6678 } 6679 6680 private void label_MATERIALIZE_FP_CONSTANT(BURS_TreeNode p) { 6681 p.word0 = 0; 6682 p.initCost(); 6683 BURS_TreeNode lchild; 6684 lchild = p.child1; 6685 label(lchild); 6686 int c; 6687 if ( // r: MATERIALIZE_FP_CONSTANT(INT_CONSTANT) 6688 lchild.getOpcode() == INT_CONSTANT_opcode 6689 ) { 6690 c = 15; 6691 if (c < p.cost_r) { 6692 p.cost_r = (char)(c); 6693 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCA00; // p.r = 202 6694 closure_r(p, c); 6695 } 6696 } 6697 if ( // float_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT) 6698 lchild.getOpcode() == INT_CONSTANT_opcode 6699 ) { 6700 c = (Binary.getResult(P(p)).isFloat() ? 0 : INFINITE); 6701 if (c < p.cost_float_load) { 6702 p.cost_float_load = (char)(c); 6703 p.word2 = (p.word2 & 0xFFFC7FFF) | 0x20000; // p.float_load = 4 6704 } 6705 } 6706 if ( // double_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT) 6707 lchild.getOpcode() == INT_CONSTANT_opcode 6708 ) { 6709 c = (Binary.getResult(P(p)).isDouble() ? 0 : INFINITE); 6710 if (c < p.cost_double_load) { 6711 p.cost_double_load = (char)(c); 6712 p.word2 = (p.word2 & 0xFFE3FFFF) | 0x100000; // p.double_load = 4 6713 } 6714 } 6715 } 6716 6717 private void label_GET_CURRENT_PROCESSOR(BURS_TreeNode p) { 6718 p.word0 = 0; 6719 p.initCost(); 6720 // r: GET_CURRENT_PROCESSOR 6721 if (15 < p.cost_r) { 6722 p.cost_r = (char)(15); 6723 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6600; // p.r = 102 6724 closure_r(p, 15); 6725 } 6726 } 6727 6728 private void label_CLEAR_FLOATING_POINT_STATE(BURS_TreeNode p) { 6729 p.word0 = 0; 6730 p.initCost(); 6731 // stm: CLEAR_FLOATING_POINT_STATE 6732 if (0 < p.cost_stm) { 6733 p.cost_stm = (char)(0); 6734 p.word0 = (p.word0 & 0xFFFFFF00) | 0x86; // p.stm = 134 6735 } 6736 } 6737 6738 private void label_PREFETCH(BURS_TreeNode p) { 6739 p.word0 = 0; 6740 p.initCost(); 6741 BURS_TreeNode lchild; 6742 lchild = p.child1; 6743 label(lchild); 6744 int c; 6745 // stm: PREFETCH(r) 6746 c = STATE(lchild).cost_r + 11; 6747 if (c < p.cost_stm) { 6748 p.cost_stm = (char)(c); 6749 p.word0 = (p.word0 & 0xFFFFFF00) | 0x78; // p.stm = 120 6750 } 6751 } 6752 6753 private void label_PAUSE(BURS_TreeNode p) { 6754 p.word0 = 0; 6755 p.initCost(); 6756 // stm: PAUSE 6757 if (11 < p.cost_stm) { 6758 p.cost_stm = (char)(11); 6759 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7C; // p.stm = 124 6760 } 6761 } 6762 6763 private void label_CMP_CMOV(BURS_TreeNode p) { 6764 p.word0 = 0; 6765 p.initCost(); 6766 BURS_TreeNode lchild, rchild; 6767 lchild = p.child1; 6768 rchild = p.child2; 6769 label(lchild); 6770 label(rchild); 6771 int c; 6772 if ( // r: CMP_CMOV(r,OTHER_OPERAND(riv,any)) 6773 rchild.getOpcode() == OTHER_OPERAND_opcode 6774 ) { 6775 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_any + (13 + 30); 6776 if (c < p.cost_r) { 6777 p.cost_r = (char)(c); 6778 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1C00; // p.r = 28 6779 closure_r(p, c); 6780 } 6781 } 6782 if ( // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,any)) 6783 rchild.getOpcode() == OTHER_OPERAND_opcode && 6784 rchild.child1.getOpcode() == INT_CONSTANT_opcode 6785 ) { 6786 c = STATE(lchild).cost_r + STATE(rchild.child2).cost_any + (VRL(p) == 0 && CMP_TO_TEST(CondMove.getCond(P(p))) ? (11 + 30):INFINITE); 6787 if (c < p.cost_r) { 6788 p.cost_r = (char)(c); 6789 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1D00; // p.r = 29 6790 closure_r(p, c); 6791 } 6792 } 6793 if ( // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 6794 rchild.getOpcode() == OTHER_OPERAND_opcode && 6795 rchild.child1.getOpcode() == INT_CONSTANT_opcode && 6796 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 6797 rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode && 6798 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 6799 ) { 6800 c = STATE(lchild).cost_r + ((VRL(p) == 0 && CondMove.getCond(P(p)).isLESS() && VRRL(p) == -1 && VRRR(p) == 0) || (VRL(p) == 0 && CondMove.getCond(P(p)).isGREATER_EQUAL() && VRRL(p) == 0 && VRRR(p) == -1) ? 13 : INFINITE); 6801 if (c < p.cost_r) { 6802 p.cost_r = (char)(c); 6803 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1E00; // p.r = 30 6804 closure_r(p, c); 6805 } 6806 } 6807 if ( // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 6808 rchild.getOpcode() == OTHER_OPERAND_opcode && 6809 rchild.child1.getOpcode() == INT_CONSTANT_opcode && 6810 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 6811 rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode && 6812 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 6813 ) { 6814 c = STATE(lchild).cost_load32 + ((VRL(p) == 0 && CondMove.getCond(P(p)).isLESS() && VRRL(p) == -1 && VRRR(p) == 0) || (VRL(p) == 0 && CondMove.getCond(P(p)).isGREATER_EQUAL() && VRRL(p) == 0 && VRRR(p) == -1) ? 18 : INFINITE); 6815 if (c < p.cost_r) { 6816 p.cost_r = (char)(c); 6817 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1F00; // p.r = 31 6818 closure_r(p, c); 6819 } 6820 } 6821 if ( // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 6822 rchild.getOpcode() == OTHER_OPERAND_opcode && 6823 rchild.child1.getOpcode() == INT_CONSTANT_opcode && 6824 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 6825 rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode && 6826 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 6827 ) { 6828 c = STATE(lchild).cost_r + ((VRL(p) == 0 && CondMove.getCond(P(p)).isLESS() && VRRL(p) == 0 && VRRR(p) == -1) || (VRL(p) == 0 && CondMove.getCond(P(p)).isGREATER_EQUAL() && VRRL(p) == -1 && VRRR(p) == 0) ? 26 : INFINITE); 6829 if (c < p.cost_r) { 6830 p.cost_r = (char)(c); 6831 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2000; // p.r = 32 6832 closure_r(p, c); 6833 } 6834 } 6835 if ( // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 6836 rchild.getOpcode() == OTHER_OPERAND_opcode && 6837 rchild.child1.getOpcode() == INT_CONSTANT_opcode && 6838 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 6839 rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode && 6840 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode 6841 ) { 6842 c = STATE(lchild).cost_load32 + ((VRL(p) == 0 && CondMove.getCond(P(p)).isLESS() && VRRL(p) == 0 && VRRR(p) == -1) || (VRL(p) == 0 && CondMove.getCond(P(p)).isGREATER_EQUAL() && VRRL(p) == -1 && VRRR(p) == 0) ? 31 : INFINITE); 6843 if (c < p.cost_r) { 6844 p.cost_r = (char)(c); 6845 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2100; // p.r = 33 6846 closure_r(p, c); 6847 } 6848 } 6849 if ( // r: CMP_CMOV(load8,OTHER_OPERAND(INT_CONSTANT,any)) 6850 rchild.getOpcode() == OTHER_OPERAND_opcode && 6851 rchild.child1.getOpcode() == INT_CONSTANT_opcode 6852 ) { 6853 c = STATE(lchild).cost_load8 + STATE(rchild.child2).cost_any + FITS(CondMove.getVal2(P(p)), 8, (15 + 30)); 6854 if (c < p.cost_r) { 6855 p.cost_r = (char)(c); 6856 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2200; // p.r = 34 6857 closure_r(p, c); 6858 } 6859 } 6860 if ( // r: CMP_CMOV(uload8,OTHER_OPERAND(riv,any)) 6861 rchild.getOpcode() == OTHER_OPERAND_opcode 6862 ) { 6863 c = STATE(lchild).cost_uload8 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_any + (15 + 30); 6864 if (c < p.cost_r) { 6865 p.cost_r = (char)(c); 6866 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2300; // p.r = 35 6867 closure_r(p, c); 6868 } 6869 } 6870 if ( // r: CMP_CMOV(riv,OTHER_OPERAND(uload8,any)) 6871 rchild.getOpcode() == OTHER_OPERAND_opcode 6872 ) { 6873 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_uload8 + STATE(rchild.child2).cost_any + (15 + 30); 6874 if (c < p.cost_r) { 6875 p.cost_r = (char)(c); 6876 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2400; // p.r = 36 6877 closure_r(p, c); 6878 } 6879 } 6880 if ( // r: CMP_CMOV(sload16,OTHER_OPERAND(INT_CONSTANT,any)) 6881 rchild.getOpcode() == OTHER_OPERAND_opcode && 6882 rchild.child1.getOpcode() == INT_CONSTANT_opcode 6883 ) { 6884 c = STATE(lchild).cost_sload16 + STATE(rchild.child2).cost_any + FITS(CondMove.getVal2(P(p)), 8, (15 + 30)); 6885 if (c < p.cost_r) { 6886 p.cost_r = (char)(c); 6887 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2500; // p.r = 37 6888 closure_r(p, c); 6889 } 6890 } 6891 if ( // r: CMP_CMOV(load32,OTHER_OPERAND(riv,any)) 6892 rchild.getOpcode() == OTHER_OPERAND_opcode 6893 ) { 6894 c = STATE(lchild).cost_load32 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_any + (15 + 30); 6895 if (c < p.cost_r) { 6896 p.cost_r = (char)(c); 6897 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2600; // p.r = 38 6898 closure_r(p, c); 6899 } 6900 } 6901 if ( // r: CMP_CMOV(riv,OTHER_OPERAND(load32,any)) 6902 rchild.getOpcode() == OTHER_OPERAND_opcode 6903 ) { 6904 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_load32 + STATE(rchild.child2).cost_any + (15 + 30); 6905 if (c < p.cost_r) { 6906 p.cost_r = (char)(c); 6907 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2700; // p.r = 39 6908 closure_r(p, c); 6909 } 6910 } 6911 if ( // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any)) 6912 rchild.getOpcode() == OTHER_OPERAND_opcode && 6913 rchild.child1.getOpcode() == INT_CONSTANT_opcode 6914 ) { 6915 c = STATE(lchild).cost_boolcmp + STATE(rchild.child2).cost_any + ((VRL(p) == 0 && CondMove.getCond(P(p)).isNOT_EQUAL()) || (VRL(p) == 1 && CondMove.getCond(P(p)).isEQUAL()) ? 30 : INFINITE); 6916 if (c < p.cost_r) { 6917 p.cost_r = (char)(c); 6918 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2800; // p.r = 40 6919 closure_r(p, c); 6920 } 6921 } 6922 if ( // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any)) 6923 rchild.getOpcode() == OTHER_OPERAND_opcode && 6924 rchild.child1.getOpcode() == INT_CONSTANT_opcode 6925 ) { 6926 c = STATE(lchild).cost_boolcmp + STATE(rchild.child2).cost_any + ((VRL(p) == 1 && CondMove.getCond(P(p)).isNOT_EQUAL()) || (VRL(p) == 0 && CondMove.getCond(P(p)).isEQUAL()) ? 30 : INFINITE); 6927 if (c < p.cost_r) { 6928 p.cost_r = (char)(c); 6929 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2900; // p.r = 41 6930 closure_r(p, c); 6931 } 6932 } 6933 if ( // r: CMP_CMOV(bittest,OTHER_OPERAND(INT_CONSTANT,any)) 6934 rchild.getOpcode() == OTHER_OPERAND_opcode && 6935 rchild.child1.getOpcode() == INT_CONSTANT_opcode 6936 ) { 6937 c = STATE(lchild).cost_bittest + STATE(rchild.child2).cost_any + ((VRL(p) == 0 || VRL(p) == 1) && EQ_NE(CondMove.getCond(P(p))) ? 30 : INFINITE); 6938 if (c < p.cost_r) { 6939 p.cost_r = (char)(c); 6940 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2A00; // p.r = 42 6941 closure_r(p, c); 6942 } 6943 } 6944 if ( // r: CMP_CMOV(cz,OTHER_OPERAND(INT_CONSTANT,any)) 6945 rchild.getOpcode() == OTHER_OPERAND_opcode && 6946 rchild.child1.getOpcode() == INT_CONSTANT_opcode 6947 ) { 6948 c = STATE(lchild).cost_cz + STATE(rchild.child2).cost_any + isZERO(VRL(p), 30); 6949 if (c < p.cost_r) { 6950 p.cost_r = (char)(c); 6951 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2B00; // p.r = 43 6952 closure_r(p, c); 6953 } 6954 } 6955 if ( // r: CMP_CMOV(szp,OTHER_OPERAND(INT_CONSTANT,any)) 6956 rchild.getOpcode() == OTHER_OPERAND_opcode && 6957 rchild.child1.getOpcode() == INT_CONSTANT_opcode 6958 ) { 6959 c = STATE(lchild).cost_szp + STATE(rchild.child2).cost_any + isZERO(VRL(p), 30); 6960 if (c < p.cost_r) { 6961 p.cost_r = (char)(c); 6962 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2C00; // p.r = 44 6963 closure_r(p, c); 6964 } 6965 } 6966 } 6967 6968 private void label_FCMP_CMOV(BURS_TreeNode p) { 6969 p.word0 = 0; 6970 p.initCost(); 6971 BURS_TreeNode lchild, rchild; 6972 lchild = p.child1; 6973 rchild = p.child2; 6974 label(lchild); 6975 label(rchild); 6976 int c; 6977 if ( // r: FCMP_CMOV(r,OTHER_OPERAND(r,any)) 6978 rchild.getOpcode() == OTHER_OPERAND_opcode 6979 ) { 6980 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2).cost_any + 13*2; 6981 if (c < p.cost_r) { 6982 p.cost_r = (char)(c); 6983 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCB00; // p.r = 203 6984 closure_r(p, c); 6985 } 6986 } 6987 if ( // r: FCMP_CMOV(r,OTHER_OPERAND(float_load,any)) 6988 rchild.getOpcode() == OTHER_OPERAND_opcode 6989 ) { 6990 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_float_load + STATE(rchild.child2).cost_any + 13+15; 6991 if (c < p.cost_r) { 6992 p.cost_r = (char)(c); 6993 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCC00; // p.r = 204 6994 closure_r(p, c); 6995 } 6996 } 6997 if ( // r: FCMP_CMOV(r,OTHER_OPERAND(double_load,any)) 6998 rchild.getOpcode() == OTHER_OPERAND_opcode 6999 ) { 7000 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_double_load + STATE(rchild.child2).cost_any + 13+15; 7001 if (c < p.cost_r) { 7002 p.cost_r = (char)(c); 7003 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCD00; // p.r = 205 7004 closure_r(p, c); 7005 } 7006 } 7007 if ( // r: FCMP_CMOV(float_load,OTHER_OPERAND(r,any)) 7008 rchild.getOpcode() == OTHER_OPERAND_opcode 7009 ) { 7010 c = STATE(lchild).cost_float_load + STATE(rchild.child1).cost_r + STATE(rchild.child2).cost_any + 13+15; 7011 if (c < p.cost_r) { 7012 p.cost_r = (char)(c); 7013 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCE00; // p.r = 206 7014 closure_r(p, c); 7015 } 7016 } 7017 if ( // r: FCMP_CMOV(double_load,OTHER_OPERAND(r,any)) 7018 rchild.getOpcode() == OTHER_OPERAND_opcode 7019 ) { 7020 c = STATE(lchild).cost_double_load + STATE(rchild.child1).cost_r + STATE(rchild.child2).cost_any + 13+15; 7021 if (c < p.cost_r) { 7022 p.cost_r = (char)(c); 7023 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCF00; // p.r = 207 7024 closure_r(p, c); 7025 } 7026 } 7027 } 7028 7029 private void label_LCMP_CMOV(BURS_TreeNode p) { 7030 p.word0 = 0; 7031 p.initCost(); 7032 BURS_TreeNode lchild, rchild; 7033 lchild = p.child1; 7034 rchild = p.child2; 7035 label(lchild); 7036 label(rchild); 7037 int c; 7038 if ( // r: LCMP_CMOV(r,OTHER_OPERAND(rlv,any)) 7039 rchild.getOpcode() == OTHER_OPERAND_opcode 7040 ) { 7041 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_rlv + STATE(rchild.child2).cost_any + (8*13 + 30); 7042 if (c < p.cost_r) { 7043 p.cost_r = (char)(c); 7044 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2D00; // p.r = 45 7045 closure_r(p, c); 7046 } 7047 } 7048 } 7049 7050 private void label_FCMP_FCMOV(BURS_TreeNode p) { 7051 p.word0 = 0; 7052 p.initCost(); 7053 BURS_TreeNode lchild, rchild; 7054 lchild = p.child1; 7055 rchild = p.child2; 7056 label(lchild); 7057 label(rchild); 7058 int c; 7059 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(r,any)) 7060 rchild.getOpcode() == OTHER_OPERAND_opcode 7061 ) { 7062 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2).cost_any + 13*4; 7063 if (c < p.cost_r) { 7064 p.cost_r = (char)(c); 7065 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD000; // p.r = 208 7066 closure_r(p, c); 7067 } 7068 } 7069 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,float_load))) 7070 rchild.getOpcode() == OTHER_OPERAND_opcode && 7071 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 7072 ) { 7073 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2.child1).cost_r + STATE(rchild.child2.child2).cost_float_load + 15+13*3; 7074 if (c < p.cost_r) { 7075 p.cost_r = (char)(c); 7076 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD100; // p.r = 209 7077 closure_r(p, c); 7078 } 7079 } 7080 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,double_load))) 7081 rchild.getOpcode() == OTHER_OPERAND_opcode && 7082 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 7083 ) { 7084 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2.child1).cost_r + STATE(rchild.child2.child2).cost_double_load + 15+13*3; 7085 if (c < p.cost_r) { 7086 p.cost_r = (char)(c); 7087 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD200; // p.r = 210 7088 closure_r(p, c); 7089 } 7090 } 7091 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(float_load,r))) 7092 rchild.getOpcode() == OTHER_OPERAND_opcode && 7093 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 7094 ) { 7095 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2.child1).cost_float_load + STATE(rchild.child2.child2).cost_r + 15+13*3; 7096 if (c < p.cost_r) { 7097 p.cost_r = (char)(c); 7098 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD300; // p.r = 211 7099 closure_r(p, c); 7100 } 7101 } 7102 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(double_load,r))) 7103 rchild.getOpcode() == OTHER_OPERAND_opcode && 7104 rchild.child2.getOpcode() == OTHER_OPERAND_opcode 7105 ) { 7106 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2.child1).cost_double_load + STATE(rchild.child2.child2).cost_r + 15+13*3; 7107 if (c < p.cost_r) { 7108 p.cost_r = (char)(c); 7109 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD400; // p.r = 212 7110 closure_r(p, c); 7111 } 7112 } 7113 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(float_load,any)) 7114 rchild.getOpcode() == OTHER_OPERAND_opcode 7115 ) { 7116 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_float_load + STATE(rchild.child2).cost_any + (SSE2_CMP_OP(CondMove.getCond(P(p)), true) != null ? 15+13*3 : INFINITE); 7117 if (c < p.cost_r) { 7118 p.cost_r = (char)(c); 7119 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD500; // p.r = 213 7120 closure_r(p, c); 7121 } 7122 } 7123 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(double_load,any)) 7124 rchild.getOpcode() == OTHER_OPERAND_opcode 7125 ) { 7126 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_double_load + STATE(rchild.child2).cost_any + (SSE2_CMP_OP(CondMove.getCond(P(p)), false) != null ? 15+13*3 : INFINITE); 7127 if (c < p.cost_r) { 7128 p.cost_r = (char)(c); 7129 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD600; // p.r = 214 7130 closure_r(p, c); 7131 } 7132 } 7133 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,FLOAT_NEG(r)))) 7134 rchild.getOpcode() == OTHER_OPERAND_opcode && 7135 rchild.child1.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode && 7136 rchild.child1.child1.getOpcode() == INT_CONSTANT_opcode && 7137 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 7138 rchild.child2.child2.getOpcode() == FLOAT_NEG_opcode 7139 ) { 7140 c = STATE(lchild).cost_r + STATE(rchild.child2.child1).cost_r + STATE(rchild.child2.child2.child1).cost_r + (IS_MATERIALIZE_ZERO(PRL(p)) && SSE2_IS_GT_OR_GE(CondMove.getCond(P(p))) && SIMILAR_REGISTERS(CondMove.getVal1(P(p)), CondMove.getTrueValue(P(p)), Unary.getVal(PRRR(p))) ? 11 : INFINITE ); 7141 if (c < p.cost_r) { 7142 p.cost_r = (char)(c); 7143 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD700; // p.r = 215 7144 closure_r(p, c); 7145 } 7146 } 7147 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(FLOAT_NEG(r),r))) 7148 rchild.getOpcode() == OTHER_OPERAND_opcode && 7149 rchild.child1.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode && 7150 rchild.child1.child1.getOpcode() == INT_CONSTANT_opcode && 7151 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 7152 rchild.child2.child1.getOpcode() == FLOAT_NEG_opcode 7153 ) { 7154 c = STATE(lchild).cost_r + STATE(rchild.child2.child1.child1).cost_r + STATE(rchild.child2.child2).cost_r + (IS_MATERIALIZE_ZERO(PRL(p)) && SSE2_IS_LT_OR_LE(CondMove.getCond(P(p))) && SIMILAR_REGISTERS(CondMove.getVal1(P(p)), CondMove.getFalseValue(P(p)), Unary.getVal(PRRL(p))) ? 11 : INFINITE ); 7155 if (c < p.cost_r) { 7156 p.cost_r = (char)(c); 7157 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD800; // p.r = 216 7158 closure_r(p, c); 7159 } 7160 } 7161 if ( // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(FLOAT_NEG(r),r))) 7162 lchild.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode && 7163 lchild.child1.getOpcode() == INT_CONSTANT_opcode && 7164 rchild.getOpcode() == OTHER_OPERAND_opcode && 7165 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 7166 rchild.child2.child1.getOpcode() == FLOAT_NEG_opcode 7167 ) { 7168 c = STATE(rchild.child1).cost_r + STATE(rchild.child2.child1.child1).cost_r + STATE(rchild.child2.child2).cost_r + (IS_MATERIALIZE_ZERO(PRL(p)) && SSE2_IS_GT_OR_GE(CondMove.getCond(P(p))) && SIMILAR_REGISTERS(CondMove.getVal2(P(p)), CondMove.getFalseValue(P(p)), Unary.getVal(PRRL(p))) ? 11 : INFINITE ); 7169 if (c < p.cost_r) { 7170 p.cost_r = (char)(c); 7171 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD900; // p.r = 217 7172 closure_r(p, c); 7173 } 7174 } 7175 if ( // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,FLOAT_NEG(r)))) 7176 lchild.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode && 7177 lchild.child1.getOpcode() == INT_CONSTANT_opcode && 7178 rchild.getOpcode() == OTHER_OPERAND_opcode && 7179 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 7180 rchild.child2.child2.getOpcode() == FLOAT_NEG_opcode 7181 ) { 7182 c = STATE(rchild.child1).cost_r + STATE(rchild.child2.child1).cost_r + STATE(rchild.child2.child2.child1).cost_r + (IS_MATERIALIZE_ZERO(PRL(p)) && SSE2_IS_LT_OR_LE(CondMove.getCond(P(p))) && SIMILAR_REGISTERS(CondMove.getVal2(P(p)), CondMove.getTrueValue(P(p)), Unary.getVal(PRRR(p))) ? 11 : INFINITE ); 7183 if (c < p.cost_r) { 7184 p.cost_r = (char)(c); 7185 p.word0 = (p.word0 & 0xFFFF00FF) | 0xDA00; // p.r = 218 7186 closure_r(p, c); 7187 } 7188 } 7189 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,DOUBLE_NEG(r)))) 7190 rchild.getOpcode() == OTHER_OPERAND_opcode && 7191 rchild.child1.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode && 7192 rchild.child1.child1.getOpcode() == INT_CONSTANT_opcode && 7193 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 7194 rchild.child2.child2.getOpcode() == DOUBLE_NEG_opcode 7195 ) { 7196 c = STATE(lchild).cost_r + STATE(rchild.child2.child1).cost_r + STATE(rchild.child2.child2.child1).cost_r + (IS_MATERIALIZE_ZERO(PRL(p)) && SSE2_IS_GT_OR_GE(CondMove.getCond(P(p))) && SIMILAR_REGISTERS(CondMove.getVal1(P(p)), CondMove.getTrueValue(P(p)), Unary.getVal(PRRR(p))) ? 11 : INFINITE ); 7197 if (c < p.cost_r) { 7198 p.cost_r = (char)(c); 7199 p.word0 = (p.word0 & 0xFFFF00FF) | 0xDB00; // p.r = 219 7200 closure_r(p, c); 7201 } 7202 } 7203 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(DOUBLE_NEG(r),r))) 7204 rchild.getOpcode() == OTHER_OPERAND_opcode && 7205 rchild.child1.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode && 7206 rchild.child1.child1.getOpcode() == INT_CONSTANT_opcode && 7207 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 7208 rchild.child2.child1.getOpcode() == DOUBLE_NEG_opcode 7209 ) { 7210 c = STATE(lchild).cost_r + STATE(rchild.child2.child1.child1).cost_r + STATE(rchild.child2.child2).cost_r + (IS_MATERIALIZE_ZERO(PRL(p)) && SSE2_IS_LT_OR_LE(CondMove.getCond(P(p))) && SIMILAR_REGISTERS(CondMove.getVal1(P(p)), CondMove.getFalseValue(P(p)), Unary.getVal(PRRL(p))) ? 11 : INFINITE ); 7211 if (c < p.cost_r) { 7212 p.cost_r = (char)(c); 7213 p.word0 = (p.word0 & 0xFFFF00FF) | 0xDC00; // p.r = 220 7214 closure_r(p, c); 7215 } 7216 } 7217 if ( // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(DOUBLE_NEG(r),r))) 7218 lchild.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode && 7219 lchild.child1.getOpcode() == INT_CONSTANT_opcode && 7220 rchild.getOpcode() == OTHER_OPERAND_opcode && 7221 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 7222 rchild.child2.child1.getOpcode() == DOUBLE_NEG_opcode 7223 ) { 7224 c = STATE(rchild.child1).cost_r + STATE(rchild.child2.child1.child1).cost_r + STATE(rchild.child2.child2).cost_r + (IS_MATERIALIZE_ZERO(PRL(p)) && SSE2_IS_GT_OR_GE(CondMove.getCond(P(p))) && SIMILAR_REGISTERS(CondMove.getVal2(P(p)), CondMove.getFalseValue(P(p)), Unary.getVal(PRRL(p))) ? 11 : INFINITE ); 7225 if (c < p.cost_r) { 7226 p.cost_r = (char)(c); 7227 p.word0 = (p.word0 & 0xFFFF00FF) | 0xDD00; // p.r = 221 7228 closure_r(p, c); 7229 } 7230 } 7231 if ( // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,DOUBLE_NEG(r)))) 7232 lchild.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode && 7233 lchild.child1.getOpcode() == INT_CONSTANT_opcode && 7234 rchild.getOpcode() == OTHER_OPERAND_opcode && 7235 rchild.child2.getOpcode() == OTHER_OPERAND_opcode && 7236 rchild.child2.child2.getOpcode() == DOUBLE_NEG_opcode 7237 ) { 7238 c = STATE(rchild.child1).cost_r + STATE(rchild.child2.child1).cost_r + STATE(rchild.child2.child2.child1).cost_r + (IS_MATERIALIZE_ZERO(PRL(p)) && SSE2_IS_LT_OR_LE(CondMove.getCond(P(p))) && SIMILAR_REGISTERS(CondMove.getVal2(P(p)), CondMove.getTrueValue(P(p)), Unary.getVal(PRRR(p))) ? 11 : INFINITE ); 7239 if (c < p.cost_r) { 7240 p.cost_r = (char)(c); 7241 p.word0 = (p.word0 & 0xFFFF00FF) | 0xDE00; // p.r = 222 7242 closure_r(p, c); 7243 } 7244 } 7245 } 7246 7247 public void label(BURS_TreeNode p) { 7248 p.initCost(); 7249 switch (p.getOpcode()) { 7250 case GET_CAUGHT_EXCEPTION_opcode: label_GET_CAUGHT_EXCEPTION(p); break; 7251 case SET_CAUGHT_EXCEPTION_opcode: label_SET_CAUGHT_EXCEPTION(p); break; 7252 case IG_PATCH_POINT_opcode: label_IG_PATCH_POINT(p); break; 7253 case INT_ALOAD_opcode: label_INT_ALOAD(p); break; 7254 case LONG_ALOAD_opcode: label_LONG_ALOAD(p); break; 7255 case FLOAT_ALOAD_opcode: label_FLOAT_ALOAD(p); break; 7256 case DOUBLE_ALOAD_opcode: label_DOUBLE_ALOAD(p); break; 7257 case UBYTE_ALOAD_opcode: label_UBYTE_ALOAD(p); break; 7258 case BYTE_ALOAD_opcode: label_BYTE_ALOAD(p); break; 7259 case USHORT_ALOAD_opcode: label_USHORT_ALOAD(p); break; 7260 case SHORT_ALOAD_opcode: label_SHORT_ALOAD(p); break; 7261 case INT_ASTORE_opcode: label_INT_ASTORE(p); break; 7262 case LONG_ASTORE_opcode: label_LONG_ASTORE(p); break; 7263 case FLOAT_ASTORE_opcode: label_FLOAT_ASTORE(p); break; 7264 case DOUBLE_ASTORE_opcode: label_DOUBLE_ASTORE(p); break; 7265 case BYTE_ASTORE_opcode: label_BYTE_ASTORE(p); break; 7266 case SHORT_ASTORE_opcode: label_SHORT_ASTORE(p); break; 7267 case INT_IFCMP_opcode: label_INT_IFCMP(p); break; 7268 case INT_IFCMP2_opcode: label_INT_IFCMP2(p); break; 7269 case LONG_IFCMP_opcode: label_LONG_IFCMP(p); break; 7270 case FLOAT_IFCMP_opcode: label_FLOAT_IFCMP(p); break; 7271 case DOUBLE_IFCMP_opcode: label_DOUBLE_IFCMP(p); break; 7272 case UNINT_BEGIN_opcode: label_UNINT_BEGIN(p); break; 7273 case UNINT_END_opcode: label_UNINT_END(p); break; 7274 case FENCE_opcode: label_FENCE(p); break; 7275 case READ_CEILING_opcode: label_READ_CEILING(p); break; 7276 case WRITE_FLOOR_opcode: label_WRITE_FLOOR(p); break; 7277 case NOP_opcode: label_NOP(p); break; 7278 case INT_MOVE_opcode: label_INT_MOVE(p); break; 7279 case LONG_MOVE_opcode: label_LONG_MOVE(p); break; 7280 case FLOAT_MOVE_opcode: label_FLOAT_MOVE(p); break; 7281 case DOUBLE_MOVE_opcode: label_DOUBLE_MOVE(p); break; 7282 case GUARD_MOVE_opcode: label_GUARD_MOVE(p); break; 7283 case GUARD_COMBINE_opcode: label_GUARD_COMBINE(p); break; 7284 case INT_ADD_opcode: label_INT_ADD(p); break; 7285 case LONG_ADD_opcode: label_LONG_ADD(p); break; 7286 case FLOAT_ADD_opcode: label_FLOAT_ADD(p); break; 7287 case DOUBLE_ADD_opcode: label_DOUBLE_ADD(p); break; 7288 case INT_SUB_opcode: label_INT_SUB(p); break; 7289 case LONG_SUB_opcode: label_LONG_SUB(p); break; 7290 case FLOAT_SUB_opcode: label_FLOAT_SUB(p); break; 7291 case DOUBLE_SUB_opcode: label_DOUBLE_SUB(p); break; 7292 case INT_MUL_opcode: label_INT_MUL(p); break; 7293 case LONG_MUL_opcode: label_LONG_MUL(p); break; 7294 case FLOAT_MUL_opcode: label_FLOAT_MUL(p); break; 7295 case DOUBLE_MUL_opcode: label_DOUBLE_MUL(p); break; 7296 case INT_DIV_opcode: label_INT_DIV(p); break; 7297 case FLOAT_DIV_opcode: label_FLOAT_DIV(p); break; 7298 case DOUBLE_DIV_opcode: label_DOUBLE_DIV(p); break; 7299 case INT_REM_opcode: label_INT_REM(p); break; 7300 case FLOAT_REM_opcode: label_FLOAT_REM(p); break; 7301 case DOUBLE_REM_opcode: label_DOUBLE_REM(p); break; 7302 case INT_NEG_opcode: label_INT_NEG(p); break; 7303 case LONG_NEG_opcode: label_LONG_NEG(p); break; 7304 case FLOAT_NEG_opcode: label_FLOAT_NEG(p); break; 7305 case DOUBLE_NEG_opcode: label_DOUBLE_NEG(p); break; 7306 case FLOAT_SQRT_opcode: label_FLOAT_SQRT(p); break; 7307 case DOUBLE_SQRT_opcode: label_DOUBLE_SQRT(p); break; 7308 case INT_SHL_opcode: label_INT_SHL(p); break; 7309 case LONG_SHL_opcode: label_LONG_SHL(p); break; 7310 case INT_SHR_opcode: label_INT_SHR(p); break; 7311 case LONG_SHR_opcode: label_LONG_SHR(p); break; 7312 case INT_USHR_opcode: label_INT_USHR(p); break; 7313 case LONG_USHR_opcode: label_LONG_USHR(p); break; 7314 case INT_AND_opcode: label_INT_AND(p); break; 7315 case LONG_AND_opcode: label_LONG_AND(p); break; 7316 case INT_OR_opcode: label_INT_OR(p); break; 7317 case LONG_OR_opcode: label_LONG_OR(p); break; 7318 case INT_XOR_opcode: label_INT_XOR(p); break; 7319 case INT_NOT_opcode: label_INT_NOT(p); break; 7320 case LONG_NOT_opcode: label_LONG_NOT(p); break; 7321 case LONG_XOR_opcode: label_LONG_XOR(p); break; 7322 case ADDR_2LONG_opcode: label_ADDR_2LONG(p); break; 7323 case INT_2LONG_opcode: label_INT_2LONG(p); break; 7324 case INT_2FLOAT_opcode: label_INT_2FLOAT(p); break; 7325 case INT_2DOUBLE_opcode: label_INT_2DOUBLE(p); break; 7326 case LONG_2INT_opcode: label_LONG_2INT(p); break; 7327 case LONG_2FLOAT_opcode: label_LONG_2FLOAT(p); break; 7328 case LONG_2DOUBLE_opcode: label_LONG_2DOUBLE(p); break; 7329 case FLOAT_2INT_opcode: label_FLOAT_2INT(p); break; 7330 case FLOAT_2LONG_opcode: label_FLOAT_2LONG(p); break; 7331 case FLOAT_2DOUBLE_opcode: label_FLOAT_2DOUBLE(p); break; 7332 case DOUBLE_2INT_opcode: label_DOUBLE_2INT(p); break; 7333 case DOUBLE_2LONG_opcode: label_DOUBLE_2LONG(p); break; 7334 case DOUBLE_2FLOAT_opcode: label_DOUBLE_2FLOAT(p); break; 7335 case INT_2BYTE_opcode: label_INT_2BYTE(p); break; 7336 case INT_2USHORT_opcode: label_INT_2USHORT(p); break; 7337 case INT_2SHORT_opcode: label_INT_2SHORT(p); break; 7338 case LONG_CMP_opcode: label_LONG_CMP(p); break; 7339 case RETURN_opcode: label_RETURN(p); break; 7340 case NULL_CHECK_opcode: label_NULL_CHECK(p); break; 7341 case GOTO_opcode: label_GOTO(p); break; 7342 case BOOLEAN_NOT_opcode: label_BOOLEAN_NOT(p); break; 7343 case BOOLEAN_CMP_INT_opcode: label_BOOLEAN_CMP_INT(p); break; 7344 case BOOLEAN_CMP_LONG_opcode: label_BOOLEAN_CMP_LONG(p); break; 7345 case BYTE_LOAD_opcode: label_BYTE_LOAD(p); break; 7346 case UBYTE_LOAD_opcode: label_UBYTE_LOAD(p); break; 7347 case SHORT_LOAD_opcode: label_SHORT_LOAD(p); break; 7348 case USHORT_LOAD_opcode: label_USHORT_LOAD(p); break; 7349 case INT_LOAD_opcode: label_INT_LOAD(p); break; 7350 case LONG_LOAD_opcode: label_LONG_LOAD(p); break; 7351 case FLOAT_LOAD_opcode: label_FLOAT_LOAD(p); break; 7352 case DOUBLE_LOAD_opcode: label_DOUBLE_LOAD(p); break; 7353 case BYTE_STORE_opcode: label_BYTE_STORE(p); break; 7354 case SHORT_STORE_opcode: label_SHORT_STORE(p); break; 7355 case INT_STORE_opcode: label_INT_STORE(p); break; 7356 case LONG_STORE_opcode: label_LONG_STORE(p); break; 7357 case FLOAT_STORE_opcode: label_FLOAT_STORE(p); break; 7358 case DOUBLE_STORE_opcode: label_DOUBLE_STORE(p); break; 7359 case PREPARE_INT_opcode: label_PREPARE_INT(p); break; 7360 case PREPARE_LONG_opcode: label_PREPARE_LONG(p); break; 7361 case ATTEMPT_INT_opcode: label_ATTEMPT_INT(p); break; 7362 case ATTEMPT_LONG_opcode: label_ATTEMPT_LONG(p); break; 7363 case CALL_opcode: label_CALL(p); break; 7364 case SYSCALL_opcode: label_SYSCALL(p); break; 7365 case YIELDPOINT_PROLOGUE_opcode: label_YIELDPOINT_PROLOGUE(p); break; 7366 case YIELDPOINT_EPILOGUE_opcode: label_YIELDPOINT_EPILOGUE(p); break; 7367 case YIELDPOINT_BACKEDGE_opcode: label_YIELDPOINT_BACKEDGE(p); break; 7368 case YIELDPOINT_OSR_opcode: label_YIELDPOINT_OSR(p); break; 7369 case IR_PROLOGUE_opcode: label_IR_PROLOGUE(p); break; 7370 case RESOLVE_opcode: label_RESOLVE(p); break; 7371 case GET_TIME_BASE_opcode: label_GET_TIME_BASE(p); break; 7372 case TRAP_IF_opcode: label_TRAP_IF(p); break; 7373 case TRAP_opcode: label_TRAP(p); break; 7374 case FLOAT_AS_INT_BITS_opcode: label_FLOAT_AS_INT_BITS(p); break; 7375 case INT_BITS_AS_FLOAT_opcode: label_INT_BITS_AS_FLOAT(p); break; 7376 case DOUBLE_AS_LONG_BITS_opcode: label_DOUBLE_AS_LONG_BITS(p); break; 7377 case LONG_BITS_AS_DOUBLE_opcode: label_LONG_BITS_AS_DOUBLE(p); break; 7378 case LOWTABLESWITCH_opcode: label_LOWTABLESWITCH(p); break; 7379 case ADDRESS_CONSTANT_opcode: label_ADDRESS_CONSTANT(p); break; 7380 case INT_CONSTANT_opcode: label_INT_CONSTANT(p); break; 7381 case LONG_CONSTANT_opcode: label_LONG_CONSTANT(p); break; 7382 case REGISTER_opcode: label_REGISTER(p); break; 7383 case OTHER_OPERAND_opcode: label_OTHER_OPERAND(p); break; 7384 case NULL_opcode: label_NULL(p); break; 7385 case BRANCH_TARGET_opcode: label_BRANCH_TARGET(p); break; 7386 case MATERIALIZE_FP_CONSTANT_opcode: label_MATERIALIZE_FP_CONSTANT(p); break; 7387 case GET_CURRENT_PROCESSOR_opcode: label_GET_CURRENT_PROCESSOR(p); break; 7388 case CLEAR_FLOATING_POINT_STATE_opcode: label_CLEAR_FLOATING_POINT_STATE(p); break; 7389 case PREFETCH_opcode: label_PREFETCH(p); break; 7390 case PAUSE_opcode: label_PAUSE(p); break; 7391 case CMP_CMOV_opcode: label_CMP_CMOV(p); break; 7392 case FCMP_CMOV_opcode: label_FCMP_CMOV(p); break; 7393 case LCMP_CMOV_opcode: label_LCMP_CMOV(p); break; 7394 case FCMP_FCMOV_opcode: label_FCMP_FCMOV(p); break; 7395 default: 7396 throw new OptimizingCompilerException("BURS","terminal not in grammar:",OperatorNames.operatorName[p.getOpcode()]); } 7397 } 7398 7399 static BURS_TreeNode kids(BURS_TreeNode p, int eruleno, int kidnumber) { 7400 if (BURS.DEBUG) { 7401 switch (eruleno) { 7402 case 37: // address: address1scaledreg 7403 case 36: // address1scaledreg: address1reg 7404 case 33: // load8_16_32: load8 7405 case 32: // load8_16_32: load16_32 7406 case 31: // load16_32: load32 7407 case 30: // load16_32: load16 7408 case 27: // load16: uload16 7409 case 26: // load16: sload16 7410 case 21: // load8: uload8 7411 case 20: // load8: sload8 7412 case 12: // any: riv 7413 case 9: // rlv: r 7414 case 7: // riv: r 7415 case 6: // szp: szpr 7416 case 5: // r: szpr 7417 case 4: // cz: czr 7418 case 3: // r: czr 7419 case 1: // stm: r 7420 if (kidnumber == 0) return p; 7421 break; 7422 case 458: // stm: CLEAR_FLOATING_POINT_STATE 7423 case 457: // double_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT) 7424 case 456: // float_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT) 7425 case 455: // r: MATERIALIZE_FP_CONSTANT(INT_CONSTANT) 7426 case 381: // r: GET_TIME_BASE 7427 case 373: // stm: RETURN(LONG_CONSTANT) 7428 case 371: // stm: RETURN(INT_CONSTANT) 7429 case 370: // stm: RETURN(NULL) 7430 case 369: // stm: PAUSE 7431 case 368: // stm: FENCE 7432 case 367: // stm: READ_CEILING 7433 case 366: // stm: WRITE_FLOOR 7434 case 364: // stm: GOTO 7435 case 271: // r: GET_CURRENT_PROCESSOR 7436 case 270: // r: LONG_MOVE(LONG_CONSTANT) 7437 case 71: // stm: TRAP 7438 case 70: // stm: SET_CAUGHT_EXCEPTION(INT_CONSTANT) 7439 case 68: // r: GET_CAUGHT_EXCEPTION 7440 case 67: // stm: IR_PROLOGUE 7441 case 65: // r: GUARD_COMBINE 7442 case 64: // r: GUARD_MOVE 7443 case 63: // stm: NOP 7444 case 62: // stm: RESOLVE 7445 case 60: // stm: YIELDPOINT_BACKEDGE 7446 case 59: // stm: YIELDPOINT_EPILOGUE 7447 case 58: // stm: YIELDPOINT_PROLOGUE 7448 case 57: // stm: UNINT_END 7449 case 56: // stm: UNINT_BEGIN 7450 case 55: // stm: IG_PATCH_POINT 7451 case 14: // any: LONG_CONSTANT 7452 case 13: // any: ADDRESS_CONSTANT 7453 case 11: // any: NULL 7454 case 10: // rlv: LONG_CONSTANT 7455 case 8: // riv: INT_CONSTANT 7456 case 2: // r: REGISTER 7457 break; 7458 case 464: // stm: DOUBLE_IFCMP(double_load,r) 7459 case 463: // stm: DOUBLE_IFCMP(r,double_load) 7460 case 462: // stm: DOUBLE_IFCMP(r,r) 7461 case 461: // stm: FLOAT_IFCMP(float_load,r) 7462 case 460: // stm: FLOAT_IFCMP(r,float_load) 7463 case 459: // stm: FLOAT_IFCMP(r,r) 7464 case 430: // float_load: FLOAT_ALOAD(riv,riv) 7465 case 429: // r: FLOAT_ALOAD(riv,riv) 7466 case 428: // float_load: FLOAT_LOAD(riv,riv) 7467 case 427: // r: FLOAT_LOAD(riv,riv) 7468 case 426: // double_load: DOUBLE_ALOAD(riv,riv) 7469 case 425: // r: DOUBLE_ALOAD(riv,riv) 7470 case 424: // double_load: DOUBLE_LOAD(riv,riv) 7471 case 423: // r: DOUBLE_LOAD(riv,riv) 7472 case 418: // r: DOUBLE_REM(r,r) 7473 case 417: // r: FLOAT_REM(r,r) 7474 case 412: // r: DOUBLE_DIV(r,double_load) 7475 case 411: // r: DOUBLE_DIV(r,r) 7476 case 410: // r: FLOAT_DIV(r,float_load) 7477 case 409: // r: FLOAT_DIV(r,r) 7478 case 408: // r: DOUBLE_MUL(double_load,r) 7479 case 407: // r: DOUBLE_MUL(r,double_load) 7480 case 406: // r: DOUBLE_MUL(r,r) 7481 case 405: // r: FLOAT_MUL(float_load,r) 7482 case 404: // r: FLOAT_MUL(r,float_load) 7483 case 403: // r: FLOAT_MUL(r,r) 7484 case 402: // r: DOUBLE_SUB(r,double_load) 7485 case 401: // r: DOUBLE_SUB(r,r) 7486 case 400: // r: FLOAT_SUB(r,float_load) 7487 case 399: // r: FLOAT_SUB(r,r) 7488 case 398: // r: DOUBLE_ADD(double_load,r) 7489 case 397: // r: DOUBLE_ADD(r,double_load) 7490 case 396: // r: DOUBLE_ADD(r,r) 7491 case 395: // r: FLOAT_ADD(float_load,r) 7492 case 394: // r: FLOAT_ADD(r,float_load) 7493 case 393: // r: FLOAT_ADD(r,r) 7494 case 382: // stm: YIELDPOINT_OSR(any,any) 7495 case 378: // r: SYSCALL(r,any) 7496 case 374: // r: CALL(r,any) 7497 case 363: // r: LONG_CMP(rlv,rlv) 7498 case 362: // stm: LONG_IFCMP(rlv,rlv) 7499 case 361: // stm: INT_IFCMP2(riv,load32) 7500 case 360: // stm: INT_IFCMP2(load32,riv) 7501 case 359: // stm: INT_IFCMP2(r,riv) 7502 case 353: // stm: INT_IFCMP(r,load32) 7503 case 352: // stm: INT_IFCMP(load32,riv) 7504 case 350: // stm: INT_IFCMP(r,uload8) 7505 case 349: // stm: INT_IFCMP(uload8,r) 7506 case 346: // stm: INT_IFCMP(r,riv) 7507 case 304: // r: PREPARE_LONG(riv,riv) 7508 case 301: // r: PREPARE_INT(address1reg,address1scaledreg) 7509 case 300: // r: PREPARE_INT(address1scaledreg,address1reg) 7510 case 299: // r: PREPARE_INT(address1scaledreg,r) 7511 case 298: // r: PREPARE_INT(r,address1scaledreg) 7512 case 297: // r: PREPARE_INT(riv,riv) 7513 case 296: // r: LONG_ALOAD(riv,riv) 7514 case 295: // r: LONG_LOAD(riv,riv) 7515 case 294: // r: INT_ALOAD(riv,riv) 7516 case 292: // r: INT_LOAD(address1reg,address1scaledreg) 7517 case 291: // r: INT_LOAD(address1scaledreg,address1reg) 7518 case 290: // r: INT_LOAD(address1scaledreg,riv) 7519 case 289: // r: INT_LOAD(riv,address1scaledreg) 7520 case 288: // r: INT_LOAD(riv,riv) 7521 case 283: // r: USHORT_ALOAD(riv,riv) 7522 case 282: // r: USHORT_LOAD(riv,riv) 7523 case 281: // r: SHORT_ALOAD(riv,riv) 7524 case 280: // r: SHORT_LOAD(riv,riv) 7525 case 275: // r: UBYTE_ALOAD(riv,riv) 7526 case 274: // r: UBYTE_LOAD(riv,riv) 7527 case 273: // r: BYTE_ALOAD(riv,riv) 7528 case 272: // r: BYTE_LOAD(riv,riv) 7529 case 221: // r: LONG_XOR(r,rlv) 7530 case 220: // r: LONG_OR(rlv,rlv) 7531 case 219: // r: LONG_AND(rlv,rlv) 7532 case 217: // r: LONG_USHR(rlv,riv) 7533 case 215: // r: LONG_SHR(rlv,riv) 7534 case 213: // r: LONG_SHL(rlv,riv) 7535 case 211: // r: LONG_MUL(rlv,rlv) 7536 case 210: // r: LONG_SUB(rlv,rlv) 7537 case 209: // r: LONG_ADD(r,rlv) 7538 case 201: // szpr: INT_XOR(load32,riv) 7539 case 200: // szpr: INT_XOR(riv,load32) 7540 case 199: // szpr: INT_XOR(riv,riv) 7541 case 194: // szpr: INT_OR(load32,riv) 7542 case 193: // szpr: INT_OR(riv,load32) 7543 case 192: // szpr: INT_OR(riv,riv) 7544 case 187: // szp: INT_AND(riv,load8_16_32) 7545 case 186: // szp: INT_AND(load8_16_32,riv) 7546 case 185: // szpr: INT_AND(load32,riv) 7547 case 184: // szpr: INT_AND(riv,load32) 7548 case 183: // szp: INT_AND(r,riv) 7549 case 182: // szpr: INT_AND(riv,riv) 7550 case 168: // szpr: INT_USHR(riv,riv) 7551 case 161: // szpr: INT_SHR(riv,riv) 7552 case 152: // szpr: INT_SHL(riv,riv) 7553 case 147: // r: INT_REM(riv,load32) 7554 case 146: // r: INT_REM(riv,riv) 7555 case 145: // r: INT_DIV(riv,load32) 7556 case 144: // r: INT_DIV(riv,riv) 7557 case 143: // r: INT_MUL(load32,riv) 7558 case 142: // r: INT_MUL(riv,load32) 7559 case 141: // r: INT_MUL(riv,riv) 7560 case 136: // czr: INT_SUB(load32,riv) 7561 case 135: // czr: INT_SUB(riv,load32) 7562 case 134: // r: INT_SUB(load32,r) 7563 case 133: // r: INT_SUB(riv,r) 7564 case 132: // czr: INT_SUB(riv,r) 7565 case 127: // czr: INT_ADD(load32,riv) 7566 case 126: // czr: INT_ADD(riv,load32) 7567 case 125: // r: INT_ADD(r,riv) 7568 case 124: // czr: INT_ADD(r,riv) 7569 case 105: // boolcmp: BOOLEAN_CMP_LONG(rlv,rlv) 7570 case 104: // r: BOOLEAN_CMP_LONG(rlv,rlv) 7571 case 101: // boolcmp: BOOLEAN_CMP_INT(riv,load32) 7572 case 100: // r: BOOLEAN_CMP_INT(r,load32) 7573 case 99: // boolcmp: BOOLEAN_CMP_INT(load32,riv) 7574 case 98: // r: BOOLEAN_CMP_INT(load32,riv) 7575 case 81: // boolcmp: BOOLEAN_CMP_INT(r,riv) 7576 case 80: // r: BOOLEAN_CMP_INT(r,riv) 7577 case 76: // stm: TRAP_IF(riv,load32) 7578 case 75: // stm: TRAP_IF(load32,riv) 7579 case 74: // stm: TRAP_IF(r,r) 7580 case 52: // r: INT_ADD(address1reg,address1scaledreg) 7581 case 51: // r: INT_ADD(address1scaledreg,address1reg) 7582 case 50: // r: INT_ADD(r,address1scaledreg) 7583 case 49: // r: INT_ADD(address1scaledreg,r) 7584 case 48: // address: INT_ADD(address1reg,address1scaledreg) 7585 case 47: // address: INT_ADD(address1scaledreg,address1reg) 7586 case 45: // address: INT_ADD(address1scaledreg,r) 7587 case 44: // address: INT_ADD(r,address1scaledreg) 7588 case 41: // address: INT_ADD(r,r) 7589 case 35: // load64: LONG_ALOAD(riv,riv) 7590 case 34: // load64: LONG_LOAD(riv,riv) 7591 case 29: // load32: INT_ALOAD(riv,riv) 7592 case 28: // load32: INT_LOAD(riv,riv) 7593 case 25: // uload16: USHORT_ALOAD(riv,riv) 7594 case 24: // uload16: USHORT_LOAD(riv,riv) 7595 case 23: // sload16: SHORT_ALOAD(riv,riv) 7596 case 22: // sload16: SHORT_LOAD(riv,riv) 7597 case 19: // uload8: UBYTE_ALOAD(riv,riv) 7598 case 18: // uload8: UBYTE_LOAD(riv,riv) 7599 case 17: // sload8: BYTE_ALOAD(riv,riv) 7600 case 16: // sload8: BYTE_LOAD(riv,riv) 7601 case 15: // any: OTHER_OPERAND(any,any) 7602 if (kidnumber == 0) return p.child1; 7603 if (kidnumber == 1) return p.child2; 7604 break; 7605 case 454: // double_load: LONG_BITS_AS_DOUBLE(load64) 7606 case 453: // r: LONG_BITS_AS_DOUBLE(rlv) 7607 case 452: // float_load: INT_BITS_AS_FLOAT(load32) 7608 case 451: // r: INT_BITS_AS_FLOAT(riv) 7609 case 450: // load64: DOUBLE_AS_LONG_BITS(double_load) 7610 case 449: // r: DOUBLE_AS_LONG_BITS(r) 7611 case 448: // load32: FLOAT_AS_INT_BITS(float_load) 7612 case 447: // r: FLOAT_AS_INT_BITS(r) 7613 case 446: // r: DOUBLE_2LONG(r) 7614 case 445: // r: DOUBLE_2INT(r) 7615 case 444: // r: FLOAT_2LONG(r) 7616 case 443: // r: FLOAT_2INT(r) 7617 case 442: // r: DOUBLE_2FLOAT(double_load) 7618 case 441: // r: DOUBLE_2FLOAT(r) 7619 case 440: // r: FLOAT_2DOUBLE(float_load) 7620 case 439: // r: FLOAT_2DOUBLE(r) 7621 case 438: // r: INT_2DOUBLE(load32) 7622 case 437: // r: INT_2DOUBLE(riv) 7623 case 436: // r: INT_2FLOAT(load32) 7624 case 435: // r: INT_2FLOAT(riv) 7625 case 422: // r: DOUBLE_MOVE(r) 7626 case 421: // r: FLOAT_MOVE(r) 7627 case 420: // r: LONG_2DOUBLE(r) 7628 case 419: // r: LONG_2FLOAT(r) 7629 case 416: // r: DOUBLE_SQRT(r) 7630 case 415: // r: FLOAT_SQRT(r) 7631 case 414: // r: DOUBLE_NEG(r) 7632 case 413: // r: FLOAT_NEG(r) 7633 case 372: // stm: RETURN(r) 7634 case 365: // stm: PREFETCH(r) 7635 case 358: // stm: INT_IFCMP(bittest,INT_CONSTANT) 7636 case 357: // stm: INT_IFCMP(szp,INT_CONSTANT) 7637 case 356: // stm: INT_IFCMP(cz,INT_CONSTANT) 7638 case 355: // stm: INT_IFCMP(boolcmp,INT_CONSTANT) 7639 case 354: // stm: INT_IFCMP(boolcmp,INT_CONSTANT) 7640 case 351: // stm: INT_IFCMP(sload16,INT_CONSTANT) 7641 case 348: // stm: INT_IFCMP(load8,INT_CONSTANT) 7642 case 347: // stm: INT_IFCMP(r,INT_CONSTANT) 7643 case 302: // r: PREPARE_INT(address,INT_CONSTANT) 7644 case 293: // r: INT_LOAD(address,INT_CONSTANT) 7645 case 286: // r: INT_2USHORT(load16_32) 7646 case 285: // r: INT_2USHORT(load16_32) 7647 case 284: // r: INT_AND(load16_32,INT_CONSTANT) 7648 case 278: // r: INT_2BYTE(load8_16_32) 7649 case 277: // r: INT_AND(load8_16_32,INT_CONSTANT) 7650 case 276: // uload8: INT_AND(load8_16_32,INT_CONSTANT) 7651 case 269: // r: LONG_MOVE(r) 7652 case 268: // load64: LONG_MOVE(load64) 7653 case 267: // load32: INT_MOVE(load32) 7654 case 266: // load16: INT_MOVE(load16) 7655 case 265: // uload16: INT_MOVE(uload16) 7656 case 264: // sload16: INT_MOVE(sload16) 7657 case 263: // load8: INT_MOVE(load8) 7658 case 262: // uload8: INT_MOVE(uload8) 7659 case 261: // sload8: INT_MOVE(sload8) 7660 case 260: // address: INT_MOVE(address) 7661 case 259: // address1scaledreg: INT_MOVE(address1scaledreg) 7662 case 258: // address1reg: INT_MOVE(address1reg) 7663 case 257: // szp: INT_MOVE(szp) 7664 case 256: // szpr: INT_MOVE(szpr) 7665 case 255: // cz: INT_MOVE(cz) 7666 case 254: // czr: INT_MOVE(czr) 7667 case 253: // r: INT_MOVE(riv) 7668 case 246: // r: LONG_2INT(load64) 7669 case 243: // r: LONG_2INT(r) 7670 case 242: // r: ADDR_2LONG(load32) 7671 case 241: // r: ADDR_2LONG(r) 7672 case 236: // r: INT_2LONG(load32) 7673 case 235: // r: INT_2LONG(r) 7674 case 232: // r: INT_2SHORT(load16_32) 7675 case 231: // r: INT_2SHORT(r) 7676 case 228: // r: INT_2USHORT(load16_32) 7677 case 227: // szpr: INT_2USHORT(r) 7678 case 224: // r: INT_2BYTE(load8_16_32) 7679 case 223: // r: INT_2BYTE(r) 7680 case 222: // r: LONG_NOT(r) 7681 case 212: // r: LONG_NEG(r) 7682 case 206: // r: INT_NOT(r) 7683 case 169: // szpr: INT_USHR(riv,INT_CONSTANT) 7684 case 162: // szpr: INT_SHR(riv,INT_CONSTANT) 7685 case 154: // r: INT_SHL(r,INT_CONSTANT) 7686 case 153: // szpr: INT_SHL(r,INT_CONSTANT) 7687 case 148: // szpr: INT_NEG(r) 7688 case 111: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 7689 case 110: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 7690 case 109: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 7691 case 108: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 7692 case 97: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 7693 case 96: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 7694 case 95: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 7695 case 94: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 7696 case 93: // boolcmp: BOOLEAN_CMP_INT(bittest,INT_CONSTANT) 7697 case 92: // r: BOOLEAN_CMP_INT(bittest,INT_CONSTANT) 7698 case 91: // boolcmp: BOOLEAN_CMP_INT(szp,INT_CONSTANT) 7699 case 90: // r: BOOLEAN_CMP_INT(szp,INT_CONSTANT) 7700 case 89: // boolcmp: BOOLEAN_CMP_INT(cz,INT_CONSTANT) 7701 case 88: // r: BOOLEAN_CMP_INT(cz,INT_CONSTANT) 7702 case 87: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT) 7703 case 86: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT) 7704 case 85: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT) 7705 case 84: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT) 7706 case 83: // boolcmp: BOOLEAN_CMP_INT(r,INT_CONSTANT) 7707 case 82: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT) 7708 case 77: // r: BOOLEAN_NOT(r) 7709 case 73: // stm: TRAP_IF(r,LONG_CONSTANT) 7710 case 72: // stm: TRAP_IF(r,INT_CONSTANT) 7711 case 69: // stm: SET_CAUGHT_EXCEPTION(r) 7712 case 66: // stm: NULL_CHECK(riv) 7713 case 61: // stm: LOWTABLESWITCH(r) 7714 case 54: // r: INT_MOVE(address) 7715 case 53: // r: INT_ADD(address,INT_CONSTANT) 7716 case 46: // address: INT_ADD(address1scaledreg,INT_CONSTANT) 7717 case 43: // address1scaledreg: INT_ADD(address1scaledreg,INT_CONSTANT) 7718 case 42: // address1reg: INT_ADD(address1reg,INT_CONSTANT) 7719 case 40: // address1reg: INT_MOVE(r) 7720 case 39: // address1reg: INT_ADD(r,INT_CONSTANT) 7721 case 38: // address1scaledreg: INT_SHL(r,INT_CONSTANT) 7722 if (kidnumber == 0) return p.child1; 7723 break; 7724 case 208: // stm: INT_ASTORE(INT_NOT(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7725 case 207: // stm: INT_STORE(INT_NOT(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7726 case 173: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 7727 case 171: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 7728 case 166: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 7729 case 164: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 7730 case 159: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 7731 case 157: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 7732 case 150: // stm: INT_ASTORE(INT_NEG(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7733 case 149: // stm: INT_STORE(INT_NEG(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7734 case 79: // stm: BYTE_ASTORE(BOOLEAN_NOT(UBYTE_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7735 case 78: // stm: BYTE_STORE(BOOLEAN_NOT(UBYTE_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7736 if (kidnumber == 0) return p.child1.child1.child1; 7737 if (kidnumber == 1) return p.child1.child1.child2; 7738 if (kidnumber == 2) return p.child2.child1; 7739 if (kidnumber == 3) return p.child2.child2; 7740 break; 7741 case 486: // stm: LONG_STORE(load64,OTHER_OPERAND(riv,riv)) 7742 case 485: // stm: LONG_ASTORE(load64,OTHER_OPERAND(riv,riv)) 7743 case 476: // r: FCMP_FCMOV(r,OTHER_OPERAND(double_load,any)) 7744 case 475: // r: FCMP_FCMOV(r,OTHER_OPERAND(float_load,any)) 7745 case 470: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,any)) 7746 case 469: // r: FCMP_CMOV(double_load,OTHER_OPERAND(r,any)) 7747 case 468: // r: FCMP_CMOV(float_load,OTHER_OPERAND(r,any)) 7748 case 467: // r: FCMP_CMOV(r,OTHER_OPERAND(double_load,any)) 7749 case 466: // r: FCMP_CMOV(r,OTHER_OPERAND(float_load,any)) 7750 case 465: // r: FCMP_CMOV(r,OTHER_OPERAND(r,any)) 7751 case 434: // stm: FLOAT_ASTORE(r,OTHER_OPERAND(riv,riv)) 7752 case 433: // stm: FLOAT_STORE(r,OTHER_OPERAND(riv,riv)) 7753 case 432: // stm: DOUBLE_ASTORE(r,OTHER_OPERAND(riv,riv)) 7754 case 431: // stm: DOUBLE_STORE(r,OTHER_OPERAND(riv,riv)) 7755 case 344: // stm: LONG_ASTORE(r,OTHER_OPERAND(riv,riv)) 7756 case 342: // stm: LONG_STORE(r,OTHER_OPERAND(riv,riv)) 7757 case 341: // stm: INT_ASTORE(riv,OTHER_OPERAND(riv,riv)) 7758 case 339: // stm: INT_STORE(riv,OTHER_OPERAND(address1reg,address1scaledreg)) 7759 case 338: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,address1reg)) 7760 case 337: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,riv)) 7761 case 336: // stm: INT_STORE(riv,OTHER_OPERAND(riv,address1scaledreg)) 7762 case 335: // stm: INT_STORE(riv,OTHER_OPERAND(riv,riv)) 7763 case 334: // stm: SHORT_ASTORE(load16,OTHER_OPERAND(riv,riv)) 7764 case 333: // stm: SHORT_ASTORE(riv,OTHER_OPERAND(riv,riv)) 7765 case 332: // stm: SHORT_STORE(load16,OTHER_OPERAND(riv,riv)) 7766 case 331: // stm: SHORT_STORE(riv,OTHER_OPERAND(riv,riv)) 7767 case 330: // stm: BYTE_ASTORE(load8,OTHER_OPERAND(riv,riv)) 7768 case 329: // stm: BYTE_ASTORE(riv,OTHER_OPERAND(riv,riv)) 7769 case 328: // stm: BYTE_STORE(load8,OTHER_OPERAND(riv,riv)) 7770 case 327: // stm: BYTE_STORE(riv,OTHER_OPERAND(riv,riv)) 7771 case 123: // r: LCMP_CMOV(r,OTHER_OPERAND(rlv,any)) 7772 case 117: // r: CMP_CMOV(riv,OTHER_OPERAND(load32,any)) 7773 case 116: // r: CMP_CMOV(load32,OTHER_OPERAND(riv,any)) 7774 case 114: // r: CMP_CMOV(riv,OTHER_OPERAND(uload8,any)) 7775 case 113: // r: CMP_CMOV(uload8,OTHER_OPERAND(riv,any)) 7776 case 106: // r: CMP_CMOV(r,OTHER_OPERAND(riv,any)) 7777 case 103: // stm: BYTE_ASTORE(boolcmp,OTHER_OPERAND(riv,riv)) 7778 case 102: // stm: BYTE_STORE(boolcmp,OTHER_OPERAND(riv,riv)) 7779 if (kidnumber == 0) return p.child1; 7780 if (kidnumber == 1) return p.child2.child1; 7781 if (kidnumber == 2) return p.child2.child2; 7782 break; 7783 case 122: // r: CMP_CMOV(szp,OTHER_OPERAND(INT_CONSTANT,any)) 7784 case 121: // r: CMP_CMOV(cz,OTHER_OPERAND(INT_CONSTANT,any)) 7785 case 120: // r: CMP_CMOV(bittest,OTHER_OPERAND(INT_CONSTANT,any)) 7786 case 119: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any)) 7787 case 118: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any)) 7788 case 115: // r: CMP_CMOV(sload16,OTHER_OPERAND(INT_CONSTANT,any)) 7789 case 112: // r: CMP_CMOV(load8,OTHER_OPERAND(INT_CONSTANT,any)) 7790 case 107: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,any)) 7791 if (kidnumber == 0) return p.child1; 7792 if (kidnumber == 1) return p.child2.child2; 7793 break; 7794 case 204: // stm: INT_ASTORE(INT_XOR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 7795 case 202: // stm: INT_STORE(INT_XOR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 7796 case 197: // stm: INT_ASTORE(INT_OR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 7797 case 195: // stm: INT_STORE(INT_OR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 7798 case 190: // stm: INT_ASTORE(INT_AND(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 7799 case 188: // stm: INT_STORE(INT_AND(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 7800 case 139: // stm: INT_ASTORE(INT_SUB(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 7801 case 137: // stm: INT_STORE(INT_SUB(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 7802 case 130: // stm: INT_ASTORE(INT_ADD(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 7803 case 128: // stm: INT_STORE(INT_ADD(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 7804 if (kidnumber == 0) return p.child1.child1.child1; 7805 if (kidnumber == 1) return p.child1.child1.child2; 7806 if (kidnumber == 2) return p.child1.child2; 7807 if (kidnumber == 3) return p.child2.child1; 7808 if (kidnumber == 4) return p.child2.child2; 7809 break; 7810 case 205: // stm: INT_ASTORE(INT_XOR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7811 case 203: // stm: INT_STORE(INT_XOR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7812 case 198: // stm: INT_ASTORE(INT_OR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7813 case 196: // stm: INT_STORE(INT_OR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7814 case 191: // stm: INT_ASTORE(INT_AND(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7815 case 189: // stm: INT_STORE(INT_AND(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7816 case 140: // stm: INT_ASTORE(INT_SUB(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7817 case 138: // stm: INT_STORE(INT_SUB(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7818 case 131: // stm: INT_ASTORE(INT_ADD(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7819 case 129: // stm: INT_STORE(INT_ADD(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 7820 if (kidnumber == 0) return p.child1.child1; 7821 if (kidnumber == 1) return p.child1.child2.child1; 7822 if (kidnumber == 2) return p.child1.child2.child2; 7823 if (kidnumber == 3) return p.child2.child1; 7824 if (kidnumber == 4) return p.child2.child2; 7825 break; 7826 case 340: // stm: INT_STORE(riv,OTHER_OPERAND(address,INT_CONSTANT)) 7827 case 218: // r: LONG_USHR(rlv,INT_AND(riv,INT_CONSTANT)) 7828 case 216: // r: LONG_SHR(rlv,INT_AND(riv,INT_CONSTANT)) 7829 case 214: // r: LONG_SHL(rlv,INT_AND(riv,INT_CONSTANT)) 7830 case 167: // szpr: INT_USHR(riv,INT_AND(r,INT_CONSTANT)) 7831 case 160: // szpr: INT_SHR(riv,INT_AND(r,INT_CONSTANT)) 7832 case 151: // szpr: INT_SHL(riv,INT_AND(r,INT_CONSTANT)) 7833 if (kidnumber == 0) return p.child1; 7834 if (kidnumber == 1) return p.child2.child1; 7835 break; 7836 case 388: // bittest: INT_AND(INT_SHR(r,INT_CONSTANT),INT_CONSTANT) 7837 case 385: // bittest: INT_AND(INT_USHR(r,INT_CONSTANT),INT_CONSTANT) 7838 case 287: // r: INT_USHR(INT_SHL(load16_32,INT_CONSTANT),INT_CONSTANT) 7839 case 279: // r: INT_USHR(INT_SHL(load8_16_32,INT_CONSTANT),INT_CONSTANT) 7840 case 252: // load32: LONG_2INT(LONG_SHR(load64,INT_CONSTANT)) 7841 case 251: // load32: LONG_2INT(LONG_USHR(load64,INT_CONSTANT)) 7842 case 250: // r: LONG_2INT(LONG_SHR(load64,INT_CONSTANT)) 7843 case 249: // r: LONG_2INT(LONG_USHR(load64,INT_CONSTANT)) 7844 case 248: // r: LONG_2INT(LONG_SHR(r,INT_CONSTANT)) 7845 case 247: // r: LONG_2INT(LONG_USHR(r,INT_CONSTANT)) 7846 case 240: // r: LONG_SHL(INT_2LONG(load64),INT_CONSTANT) 7847 case 239: // r: LONG_SHL(INT_2LONG(r),INT_CONSTANT) 7848 case 238: // r: LONG_AND(INT_2LONG(load32),LONG_CONSTANT) 7849 case 237: // r: LONG_AND(INT_2LONG(r),LONG_CONSTANT) 7850 case 155: // szpr: INT_SHL(INT_SHR(r,INT_CONSTANT),INT_CONSTANT) 7851 if (kidnumber == 0) return p.child1.child1; 7852 break; 7853 case 172: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 7854 case 170: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 7855 case 165: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 7856 case 163: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 7857 case 158: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 7858 case 156: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 7859 if (kidnumber == 0) return p.child1.child1.child1; 7860 if (kidnumber == 1) return p.child1.child1.child2; 7861 if (kidnumber == 2) return p.child1.child2.child1; 7862 if (kidnumber == 3) return p.child2.child1; 7863 if (kidnumber == 4) return p.child2.child2; 7864 break; 7865 case 177: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT)) 7866 case 176: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT)) 7867 case 175: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT)) 7868 case 174: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT)) 7869 if (kidnumber == 0) return p.child1.child1; 7870 if (kidnumber == 1) return p.child2.child1; 7871 break; 7872 case 181: // r: INT_OR(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT))) 7873 case 178: // r: INT_OR(INT_SHL(r,INT_AND(r,INT_CONSTANT)),INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT))) 7874 if (kidnumber == 0) return p.child1.child1; 7875 if (kidnumber == 1) return p.child1.child2.child1; 7876 if (kidnumber == 2) return p.child2.child1; 7877 if (kidnumber == 3) return p.child2.child2.child1.child1; 7878 break; 7879 case 180: // r: INT_OR(INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_USHR(r,INT_AND(r,INT_CONSTANT))) 7880 case 179: // r: INT_OR(INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_SHL(r,INT_AND(r,INT_CONSTANT))) 7881 if (kidnumber == 0) return p.child1.child1; 7882 if (kidnumber == 1) return p.child1.child2.child1.child1; 7883 if (kidnumber == 2) return p.child2.child1; 7884 if (kidnumber == 3) return p.child2.child2.child1; 7885 break; 7886 case 245: // stm: INT_ASTORE(LONG_2INT(r),OTHER_OPERAND(riv,riv)) 7887 case 244: // stm: INT_STORE(LONG_2INT(r),OTHER_OPERAND(riv,riv)) 7888 case 234: // stm: SHORT_ASTORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv)) 7889 case 233: // stm: SHORT_STORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv)) 7890 case 230: // stm: SHORT_ASTORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv)) 7891 case 229: // stm: SHORT_STORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv)) 7892 case 226: // stm: BYTE_ASTORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv)) 7893 case 225: // stm: BYTE_STORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv)) 7894 if (kidnumber == 0) return p.child1.child1; 7895 if (kidnumber == 1) return p.child2.child1; 7896 if (kidnumber == 2) return p.child2.child2; 7897 break; 7898 case 380: // r: SYSCALL(INT_CONSTANT,any) 7899 case 377: // r: CALL(INT_CONSTANT,any) 7900 case 375: // r: CALL(BRANCH_TARGET,any) 7901 case 303: // r: PREPARE_INT(INT_CONSTANT,address) 7902 if (kidnumber == 0) return p.child2; 7903 break; 7904 case 474: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(double_load,r))) 7905 case 473: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(float_load,r))) 7906 case 472: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,double_load))) 7907 case 471: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,float_load))) 7908 case 326: // r: ATTEMPT_LONG(riv,OTHER_OPERAND(riv,OTHER_OPERAND(rlv,rlv))) 7909 case 309: // r: ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))) 7910 case 308: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))) 7911 case 307: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))) 7912 case 306: // r: ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))) 7913 case 305: // r: ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))) 7914 if (kidnumber == 0) return p.child1; 7915 if (kidnumber == 1) return p.child2.child1; 7916 if (kidnumber == 2) return p.child2.child2.child1; 7917 if (kidnumber == 3) return p.child2.child2.child2; 7918 break; 7919 case 310: // r: ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))) 7920 if (kidnumber == 0) return p.child1; 7921 if (kidnumber == 1) return p.child2.child2.child1; 7922 if (kidnumber == 2) return p.child2.child2.child2; 7923 break; 7924 case 311: // r: ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))) 7925 if (kidnumber == 0) return p.child2.child1; 7926 if (kidnumber == 1) return p.child2.child2.child1; 7927 if (kidnumber == 2) return p.child2.child2.child2; 7928 break; 7929 case 323: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7930 case 322: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7931 case 321: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7932 case 320: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7933 case 319: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7934 case 316: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7935 case 315: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7936 case 314: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7937 case 313: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7938 case 312: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7939 if (kidnumber == 0) return p.child1.child1; 7940 if (kidnumber == 1) return p.child1.child2.child1; 7941 if (kidnumber == 2) return p.child1.child2.child2.child1; 7942 if (kidnumber == 3) return p.child1.child2.child2.child2; 7943 break; 7944 case 324: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7945 case 317: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7946 if (kidnumber == 0) return p.child1.child1; 7947 if (kidnumber == 1) return p.child1.child2.child2.child1; 7948 if (kidnumber == 2) return p.child1.child2.child2.child2; 7949 break; 7950 case 325: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7951 case 318: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 7952 if (kidnumber == 0) return p.child1.child2.child1; 7953 if (kidnumber == 1) return p.child1.child2.child2.child1; 7954 if (kidnumber == 2) return p.child1.child2.child2.child2; 7955 break; 7956 case 345: // stm: LONG_ASTORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv)) 7957 case 343: // stm: LONG_STORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv)) 7958 if (kidnumber == 0) return p.child2.child1; 7959 if (kidnumber == 1) return p.child2.child2; 7960 break; 7961 case 379: // r: SYSCALL(INT_LOAD(riv,riv),any) 7962 case 376: // r: CALL(INT_LOAD(riv,riv),any) 7963 if (kidnumber == 0) return p.child1.child1; 7964 if (kidnumber == 1) return p.child1.child2; 7965 if (kidnumber == 2) return p.child2; 7966 break; 7967 case 387: // bittest: INT_AND(INT_SHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 7968 case 386: // bittest: INT_AND(INT_SHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 7969 case 384: // bittest: INT_AND(INT_USHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 7970 case 383: // bittest: INT_AND(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 7971 if (kidnumber == 0) return p.child1.child1; 7972 if (kidnumber == 1) return p.child1.child2.child1; 7973 break; 7974 case 390: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)),load32) 7975 case 389: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(riv,INT_CONSTANT)),r) 7976 if (kidnumber == 0) return p.child1.child2.child1; 7977 if (kidnumber == 1) return p.child2; 7978 break; 7979 case 392: // bittest: INT_AND(load32,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT))) 7980 case 391: // bittest: INT_AND(r,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT))) 7981 if (kidnumber == 0) return p.child1; 7982 if (kidnumber == 1) return p.child2.child2.child1; 7983 break; 7984 case 481: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,DOUBLE_NEG(r)))) 7985 case 477: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,FLOAT_NEG(r)))) 7986 if (kidnumber == 0) return p.child1; 7987 if (kidnumber == 1) return p.child2.child2.child1; 7988 if (kidnumber == 2) return p.child2.child2.child2.child1; 7989 break; 7990 case 482: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(DOUBLE_NEG(r),r))) 7991 case 478: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(FLOAT_NEG(r),r))) 7992 if (kidnumber == 0) return p.child1; 7993 if (kidnumber == 1) return p.child2.child2.child1.child1; 7994 if (kidnumber == 2) return p.child2.child2.child2; 7995 break; 7996 case 483: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(DOUBLE_NEG(r),r))) 7997 case 479: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(FLOAT_NEG(r),r))) 7998 if (kidnumber == 0) return p.child2.child1; 7999 if (kidnumber == 1) return p.child2.child2.child1.child1; 8000 if (kidnumber == 2) return p.child2.child2.child2; 8001 break; 8002 case 484: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,DOUBLE_NEG(r)))) 8003 case 480: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,FLOAT_NEG(r)))) 8004 if (kidnumber == 0) return p.child2.child1; 8005 if (kidnumber == 1) return p.child2.child2.child1; 8006 if (kidnumber == 2) return p.child2.child2.child2.child1; 8007 break; 8008 } 8009 throw new OptimizingCompilerException("BURS","Bad rule number ",Integer.toString(eruleno)); 8010 } else return null; 8011 } 8012 8013 static void mark_kids(BURS_TreeNode p, int eruleno) 8014 { 8015 byte[] ntsrule = nts[eruleno]; 8016 switch (eruleno) { 8017 case 37: // address: address1scaledreg 8018 case 36: // address1scaledreg: address1reg 8019 case 33: // load8_16_32: load8 8020 case 32: // load8_16_32: load16_32 8021 case 31: // load16_32: load32 8022 case 30: // load16_32: load16 8023 case 27: // load16: uload16 8024 case 26: // load16: sload16 8025 case 21: // load8: uload8 8026 case 20: // load8: sload8 8027 case 12: // any: riv 8028 case 9: // rlv: r 8029 case 7: // riv: r 8030 case 6: // szp: szpr 8031 case 5: // r: szpr 8032 case 4: // cz: czr 8033 case 3: // r: czr 8034 case 1: // stm: r 8035 mark(p, ntsrule[0]); 8036 break; 8037 case 458: // stm: CLEAR_FLOATING_POINT_STATE 8038 case 457: // double_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT) 8039 case 456: // float_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT) 8040 case 455: // r: MATERIALIZE_FP_CONSTANT(INT_CONSTANT) 8041 case 381: // r: GET_TIME_BASE 8042 case 373: // stm: RETURN(LONG_CONSTANT) 8043 case 371: // stm: RETURN(INT_CONSTANT) 8044 case 370: // stm: RETURN(NULL) 8045 case 369: // stm: PAUSE 8046 case 368: // stm: FENCE 8047 case 367: // stm: READ_CEILING 8048 case 366: // stm: WRITE_FLOOR 8049 case 364: // stm: GOTO 8050 case 271: // r: GET_CURRENT_PROCESSOR 8051 case 270: // r: LONG_MOVE(LONG_CONSTANT) 8052 case 71: // stm: TRAP 8053 case 70: // stm: SET_CAUGHT_EXCEPTION(INT_CONSTANT) 8054 case 68: // r: GET_CAUGHT_EXCEPTION 8055 case 67: // stm: IR_PROLOGUE 8056 case 65: // r: GUARD_COMBINE 8057 case 64: // r: GUARD_MOVE 8058 case 63: // stm: NOP 8059 case 62: // stm: RESOLVE 8060 case 60: // stm: YIELDPOINT_BACKEDGE 8061 case 59: // stm: YIELDPOINT_EPILOGUE 8062 case 58: // stm: YIELDPOINT_PROLOGUE 8063 case 57: // stm: UNINT_END 8064 case 56: // stm: UNINT_BEGIN 8065 case 55: // stm: IG_PATCH_POINT 8066 case 14: // any: LONG_CONSTANT 8067 case 13: // any: ADDRESS_CONSTANT 8068 case 11: // any: NULL 8069 case 10: // rlv: LONG_CONSTANT 8070 case 8: // riv: INT_CONSTANT 8071 case 2: // r: REGISTER 8072 break; 8073 case 464: // stm: DOUBLE_IFCMP(double_load,r) 8074 case 463: // stm: DOUBLE_IFCMP(r,double_load) 8075 case 462: // stm: DOUBLE_IFCMP(r,r) 8076 case 461: // stm: FLOAT_IFCMP(float_load,r) 8077 case 460: // stm: FLOAT_IFCMP(r,float_load) 8078 case 459: // stm: FLOAT_IFCMP(r,r) 8079 case 430: // float_load: FLOAT_ALOAD(riv,riv) 8080 case 429: // r: FLOAT_ALOAD(riv,riv) 8081 case 428: // float_load: FLOAT_LOAD(riv,riv) 8082 case 427: // r: FLOAT_LOAD(riv,riv) 8083 case 426: // double_load: DOUBLE_ALOAD(riv,riv) 8084 case 425: // r: DOUBLE_ALOAD(riv,riv) 8085 case 424: // double_load: DOUBLE_LOAD(riv,riv) 8086 case 423: // r: DOUBLE_LOAD(riv,riv) 8087 case 418: // r: DOUBLE_REM(r,r) 8088 case 417: // r: FLOAT_REM(r,r) 8089 case 412: // r: DOUBLE_DIV(r,double_load) 8090 case 411: // r: DOUBLE_DIV(r,r) 8091 case 410: // r: FLOAT_DIV(r,float_load) 8092 case 409: // r: FLOAT_DIV(r,r) 8093 case 408: // r: DOUBLE_MUL(double_load,r) 8094 case 407: // r: DOUBLE_MUL(r,double_load) 8095 case 406: // r: DOUBLE_MUL(r,r) 8096 case 405: // r: FLOAT_MUL(float_load,r) 8097 case 404: // r: FLOAT_MUL(r,float_load) 8098 case 403: // r: FLOAT_MUL(r,r) 8099 case 402: // r: DOUBLE_SUB(r,double_load) 8100 case 401: // r: DOUBLE_SUB(r,r) 8101 case 400: // r: FLOAT_SUB(r,float_load) 8102 case 399: // r: FLOAT_SUB(r,r) 8103 case 398: // r: DOUBLE_ADD(double_load,r) 8104 case 397: // r: DOUBLE_ADD(r,double_load) 8105 case 396: // r: DOUBLE_ADD(r,r) 8106 case 395: // r: FLOAT_ADD(float_load,r) 8107 case 394: // r: FLOAT_ADD(r,float_load) 8108 case 393: // r: FLOAT_ADD(r,r) 8109 case 382: // stm: YIELDPOINT_OSR(any,any) 8110 case 378: // r: SYSCALL(r,any) 8111 case 374: // r: CALL(r,any) 8112 case 363: // r: LONG_CMP(rlv,rlv) 8113 case 362: // stm: LONG_IFCMP(rlv,rlv) 8114 case 361: // stm: INT_IFCMP2(riv,load32) 8115 case 360: // stm: INT_IFCMP2(load32,riv) 8116 case 359: // stm: INT_IFCMP2(r,riv) 8117 case 353: // stm: INT_IFCMP(r,load32) 8118 case 352: // stm: INT_IFCMP(load32,riv) 8119 case 350: // stm: INT_IFCMP(r,uload8) 8120 case 349: // stm: INT_IFCMP(uload8,r) 8121 case 346: // stm: INT_IFCMP(r,riv) 8122 case 304: // r: PREPARE_LONG(riv,riv) 8123 case 301: // r: PREPARE_INT(address1reg,address1scaledreg) 8124 case 300: // r: PREPARE_INT(address1scaledreg,address1reg) 8125 case 299: // r: PREPARE_INT(address1scaledreg,r) 8126 case 298: // r: PREPARE_INT(r,address1scaledreg) 8127 case 297: // r: PREPARE_INT(riv,riv) 8128 case 296: // r: LONG_ALOAD(riv,riv) 8129 case 295: // r: LONG_LOAD(riv,riv) 8130 case 294: // r: INT_ALOAD(riv,riv) 8131 case 292: // r: INT_LOAD(address1reg,address1scaledreg) 8132 case 291: // r: INT_LOAD(address1scaledreg,address1reg) 8133 case 290: // r: INT_LOAD(address1scaledreg,riv) 8134 case 289: // r: INT_LOAD(riv,address1scaledreg) 8135 case 288: // r: INT_LOAD(riv,riv) 8136 case 283: // r: USHORT_ALOAD(riv,riv) 8137 case 282: // r: USHORT_LOAD(riv,riv) 8138 case 281: // r: SHORT_ALOAD(riv,riv) 8139 case 280: // r: SHORT_LOAD(riv,riv) 8140 case 275: // r: UBYTE_ALOAD(riv,riv) 8141 case 274: // r: UBYTE_LOAD(riv,riv) 8142 case 273: // r: BYTE_ALOAD(riv,riv) 8143 case 272: // r: BYTE_LOAD(riv,riv) 8144 case 221: // r: LONG_XOR(r,rlv) 8145 case 220: // r: LONG_OR(rlv,rlv) 8146 case 219: // r: LONG_AND(rlv,rlv) 8147 case 217: // r: LONG_USHR(rlv,riv) 8148 case 215: // r: LONG_SHR(rlv,riv) 8149 case 213: // r: LONG_SHL(rlv,riv) 8150 case 211: // r: LONG_MUL(rlv,rlv) 8151 case 210: // r: LONG_SUB(rlv,rlv) 8152 case 209: // r: LONG_ADD(r,rlv) 8153 case 201: // szpr: INT_XOR(load32,riv) 8154 case 200: // szpr: INT_XOR(riv,load32) 8155 case 199: // szpr: INT_XOR(riv,riv) 8156 case 194: // szpr: INT_OR(load32,riv) 8157 case 193: // szpr: INT_OR(riv,load32) 8158 case 192: // szpr: INT_OR(riv,riv) 8159 case 187: // szp: INT_AND(riv,load8_16_32) 8160 case 186: // szp: INT_AND(load8_16_32,riv) 8161 case 185: // szpr: INT_AND(load32,riv) 8162 case 184: // szpr: INT_AND(riv,load32) 8163 case 183: // szp: INT_AND(r,riv) 8164 case 182: // szpr: INT_AND(riv,riv) 8165 case 168: // szpr: INT_USHR(riv,riv) 8166 case 161: // szpr: INT_SHR(riv,riv) 8167 case 152: // szpr: INT_SHL(riv,riv) 8168 case 147: // r: INT_REM(riv,load32) 8169 case 146: // r: INT_REM(riv,riv) 8170 case 145: // r: INT_DIV(riv,load32) 8171 case 144: // r: INT_DIV(riv,riv) 8172 case 143: // r: INT_MUL(load32,riv) 8173 case 142: // r: INT_MUL(riv,load32) 8174 case 141: // r: INT_MUL(riv,riv) 8175 case 136: // czr: INT_SUB(load32,riv) 8176 case 135: // czr: INT_SUB(riv,load32) 8177 case 134: // r: INT_SUB(load32,r) 8178 case 133: // r: INT_SUB(riv,r) 8179 case 132: // czr: INT_SUB(riv,r) 8180 case 127: // czr: INT_ADD(load32,riv) 8181 case 126: // czr: INT_ADD(riv,load32) 8182 case 125: // r: INT_ADD(r,riv) 8183 case 124: // czr: INT_ADD(r,riv) 8184 case 105: // boolcmp: BOOLEAN_CMP_LONG(rlv,rlv) 8185 case 104: // r: BOOLEAN_CMP_LONG(rlv,rlv) 8186 case 101: // boolcmp: BOOLEAN_CMP_INT(riv,load32) 8187 case 100: // r: BOOLEAN_CMP_INT(r,load32) 8188 case 99: // boolcmp: BOOLEAN_CMP_INT(load32,riv) 8189 case 98: // r: BOOLEAN_CMP_INT(load32,riv) 8190 case 81: // boolcmp: BOOLEAN_CMP_INT(r,riv) 8191 case 80: // r: BOOLEAN_CMP_INT(r,riv) 8192 case 76: // stm: TRAP_IF(riv,load32) 8193 case 75: // stm: TRAP_IF(load32,riv) 8194 case 74: // stm: TRAP_IF(r,r) 8195 case 52: // r: INT_ADD(address1reg,address1scaledreg) 8196 case 51: // r: INT_ADD(address1scaledreg,address1reg) 8197 case 50: // r: INT_ADD(r,address1scaledreg) 8198 case 49: // r: INT_ADD(address1scaledreg,r) 8199 case 48: // address: INT_ADD(address1reg,address1scaledreg) 8200 case 47: // address: INT_ADD(address1scaledreg,address1reg) 8201 case 45: // address: INT_ADD(address1scaledreg,r) 8202 case 44: // address: INT_ADD(r,address1scaledreg) 8203 case 41: // address: INT_ADD(r,r) 8204 case 35: // load64: LONG_ALOAD(riv,riv) 8205 case 34: // load64: LONG_LOAD(riv,riv) 8206 case 29: // load32: INT_ALOAD(riv,riv) 8207 case 28: // load32: INT_LOAD(riv,riv) 8208 case 25: // uload16: USHORT_ALOAD(riv,riv) 8209 case 24: // uload16: USHORT_LOAD(riv,riv) 8210 case 23: // sload16: SHORT_ALOAD(riv,riv) 8211 case 22: // sload16: SHORT_LOAD(riv,riv) 8212 case 19: // uload8: UBYTE_ALOAD(riv,riv) 8213 case 18: // uload8: UBYTE_LOAD(riv,riv) 8214 case 17: // sload8: BYTE_ALOAD(riv,riv) 8215 case 16: // sload8: BYTE_LOAD(riv,riv) 8216 case 15: // any: OTHER_OPERAND(any,any) 8217 mark(p.child1, ntsrule[0]); 8218 mark(p.child2, ntsrule[1]); 8219 break; 8220 case 454: // double_load: LONG_BITS_AS_DOUBLE(load64) 8221 case 453: // r: LONG_BITS_AS_DOUBLE(rlv) 8222 case 452: // float_load: INT_BITS_AS_FLOAT(load32) 8223 case 451: // r: INT_BITS_AS_FLOAT(riv) 8224 case 450: // load64: DOUBLE_AS_LONG_BITS(double_load) 8225 case 449: // r: DOUBLE_AS_LONG_BITS(r) 8226 case 448: // load32: FLOAT_AS_INT_BITS(float_load) 8227 case 447: // r: FLOAT_AS_INT_BITS(r) 8228 case 446: // r: DOUBLE_2LONG(r) 8229 case 445: // r: DOUBLE_2INT(r) 8230 case 444: // r: FLOAT_2LONG(r) 8231 case 443: // r: FLOAT_2INT(r) 8232 case 442: // r: DOUBLE_2FLOAT(double_load) 8233 case 441: // r: DOUBLE_2FLOAT(r) 8234 case 440: // r: FLOAT_2DOUBLE(float_load) 8235 case 439: // r: FLOAT_2DOUBLE(r) 8236 case 438: // r: INT_2DOUBLE(load32) 8237 case 437: // r: INT_2DOUBLE(riv) 8238 case 436: // r: INT_2FLOAT(load32) 8239 case 435: // r: INT_2FLOAT(riv) 8240 case 422: // r: DOUBLE_MOVE(r) 8241 case 421: // r: FLOAT_MOVE(r) 8242 case 420: // r: LONG_2DOUBLE(r) 8243 case 419: // r: LONG_2FLOAT(r) 8244 case 416: // r: DOUBLE_SQRT(r) 8245 case 415: // r: FLOAT_SQRT(r) 8246 case 414: // r: DOUBLE_NEG(r) 8247 case 413: // r: FLOAT_NEG(r) 8248 case 372: // stm: RETURN(r) 8249 case 365: // stm: PREFETCH(r) 8250 case 358: // stm: INT_IFCMP(bittest,INT_CONSTANT) 8251 case 357: // stm: INT_IFCMP(szp,INT_CONSTANT) 8252 case 356: // stm: INT_IFCMP(cz,INT_CONSTANT) 8253 case 355: // stm: INT_IFCMP(boolcmp,INT_CONSTANT) 8254 case 354: // stm: INT_IFCMP(boolcmp,INT_CONSTANT) 8255 case 351: // stm: INT_IFCMP(sload16,INT_CONSTANT) 8256 case 348: // stm: INT_IFCMP(load8,INT_CONSTANT) 8257 case 347: // stm: INT_IFCMP(r,INT_CONSTANT) 8258 case 302: // r: PREPARE_INT(address,INT_CONSTANT) 8259 case 293: // r: INT_LOAD(address,INT_CONSTANT) 8260 case 286: // r: INT_2USHORT(load16_32) 8261 case 285: // r: INT_2USHORT(load16_32) 8262 case 284: // r: INT_AND(load16_32,INT_CONSTANT) 8263 case 278: // r: INT_2BYTE(load8_16_32) 8264 case 277: // r: INT_AND(load8_16_32,INT_CONSTANT) 8265 case 276: // uload8: INT_AND(load8_16_32,INT_CONSTANT) 8266 case 269: // r: LONG_MOVE(r) 8267 case 268: // load64: LONG_MOVE(load64) 8268 case 267: // load32: INT_MOVE(load32) 8269 case 266: // load16: INT_MOVE(load16) 8270 case 265: // uload16: INT_MOVE(uload16) 8271 case 264: // sload16: INT_MOVE(sload16) 8272 case 263: // load8: INT_MOVE(load8) 8273 case 262: // uload8: INT_MOVE(uload8) 8274 case 261: // sload8: INT_MOVE(sload8) 8275 case 260: // address: INT_MOVE(address) 8276 case 259: // address1scaledreg: INT_MOVE(address1scaledreg) 8277 case 258: // address1reg: INT_MOVE(address1reg) 8278 case 257: // szp: INT_MOVE(szp) 8279 case 256: // szpr: INT_MOVE(szpr) 8280 case 255: // cz: INT_MOVE(cz) 8281 case 254: // czr: INT_MOVE(czr) 8282 case 253: // r: INT_MOVE(riv) 8283 case 246: // r: LONG_2INT(load64) 8284 case 243: // r: LONG_2INT(r) 8285 case 242: // r: ADDR_2LONG(load32) 8286 case 241: // r: ADDR_2LONG(r) 8287 case 236: // r: INT_2LONG(load32) 8288 case 235: // r: INT_2LONG(r) 8289 case 232: // r: INT_2SHORT(load16_32) 8290 case 231: // r: INT_2SHORT(r) 8291 case 228: // r: INT_2USHORT(load16_32) 8292 case 227: // szpr: INT_2USHORT(r) 8293 case 224: // r: INT_2BYTE(load8_16_32) 8294 case 223: // r: INT_2BYTE(r) 8295 case 222: // r: LONG_NOT(r) 8296 case 212: // r: LONG_NEG(r) 8297 case 206: // r: INT_NOT(r) 8298 case 169: // szpr: INT_USHR(riv,INT_CONSTANT) 8299 case 162: // szpr: INT_SHR(riv,INT_CONSTANT) 8300 case 154: // r: INT_SHL(r,INT_CONSTANT) 8301 case 153: // szpr: INT_SHL(r,INT_CONSTANT) 8302 case 148: // szpr: INT_NEG(r) 8303 case 111: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 8304 case 110: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 8305 case 109: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 8306 case 108: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT))) 8307 case 97: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 8308 case 96: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 8309 case 95: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 8310 case 94: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT) 8311 case 93: // boolcmp: BOOLEAN_CMP_INT(bittest,INT_CONSTANT) 8312 case 92: // r: BOOLEAN_CMP_INT(bittest,INT_CONSTANT) 8313 case 91: // boolcmp: BOOLEAN_CMP_INT(szp,INT_CONSTANT) 8314 case 90: // r: BOOLEAN_CMP_INT(szp,INT_CONSTANT) 8315 case 89: // boolcmp: BOOLEAN_CMP_INT(cz,INT_CONSTANT) 8316 case 88: // r: BOOLEAN_CMP_INT(cz,INT_CONSTANT) 8317 case 87: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT) 8318 case 86: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT) 8319 case 85: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT) 8320 case 84: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT) 8321 case 83: // boolcmp: BOOLEAN_CMP_INT(r,INT_CONSTANT) 8322 case 82: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT) 8323 case 77: // r: BOOLEAN_NOT(r) 8324 case 73: // stm: TRAP_IF(r,LONG_CONSTANT) 8325 case 72: // stm: TRAP_IF(r,INT_CONSTANT) 8326 case 69: // stm: SET_CAUGHT_EXCEPTION(r) 8327 case 66: // stm: NULL_CHECK(riv) 8328 case 61: // stm: LOWTABLESWITCH(r) 8329 case 54: // r: INT_MOVE(address) 8330 case 53: // r: INT_ADD(address,INT_CONSTANT) 8331 case 46: // address: INT_ADD(address1scaledreg,INT_CONSTANT) 8332 case 43: // address1scaledreg: INT_ADD(address1scaledreg,INT_CONSTANT) 8333 case 42: // address1reg: INT_ADD(address1reg,INT_CONSTANT) 8334 case 40: // address1reg: INT_MOVE(r) 8335 case 39: // address1reg: INT_ADD(r,INT_CONSTANT) 8336 case 38: // address1scaledreg: INT_SHL(r,INT_CONSTANT) 8337 mark(p.child1, ntsrule[0]); 8338 break; 8339 case 208: // stm: INT_ASTORE(INT_NOT(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8340 case 207: // stm: INT_STORE(INT_NOT(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8341 case 173: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 8342 case 171: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 8343 case 166: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 8344 case 164: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 8345 case 159: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 8346 case 157: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv)) 8347 case 150: // stm: INT_ASTORE(INT_NEG(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8348 case 149: // stm: INT_STORE(INT_NEG(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8349 case 79: // stm: BYTE_ASTORE(BOOLEAN_NOT(UBYTE_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8350 case 78: // stm: BYTE_STORE(BOOLEAN_NOT(UBYTE_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8351 mark(p.child1.child1.child1, ntsrule[0]); 8352 mark(p.child1.child1.child2, ntsrule[1]); 8353 mark(p.child2.child1, ntsrule[2]); 8354 mark(p.child2.child2, ntsrule[3]); 8355 break; 8356 case 486: // stm: LONG_STORE(load64,OTHER_OPERAND(riv,riv)) 8357 case 485: // stm: LONG_ASTORE(load64,OTHER_OPERAND(riv,riv)) 8358 case 476: // r: FCMP_FCMOV(r,OTHER_OPERAND(double_load,any)) 8359 case 475: // r: FCMP_FCMOV(r,OTHER_OPERAND(float_load,any)) 8360 case 470: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,any)) 8361 case 469: // r: FCMP_CMOV(double_load,OTHER_OPERAND(r,any)) 8362 case 468: // r: FCMP_CMOV(float_load,OTHER_OPERAND(r,any)) 8363 case 467: // r: FCMP_CMOV(r,OTHER_OPERAND(double_load,any)) 8364 case 466: // r: FCMP_CMOV(r,OTHER_OPERAND(float_load,any)) 8365 case 465: // r: FCMP_CMOV(r,OTHER_OPERAND(r,any)) 8366 case 434: // stm: FLOAT_ASTORE(r,OTHER_OPERAND(riv,riv)) 8367 case 433: // stm: FLOAT_STORE(r,OTHER_OPERAND(riv,riv)) 8368 case 432: // stm: DOUBLE_ASTORE(r,OTHER_OPERAND(riv,riv)) 8369 case 431: // stm: DOUBLE_STORE(r,OTHER_OPERAND(riv,riv)) 8370 case 344: // stm: LONG_ASTORE(r,OTHER_OPERAND(riv,riv)) 8371 case 342: // stm: LONG_STORE(r,OTHER_OPERAND(riv,riv)) 8372 case 341: // stm: INT_ASTORE(riv,OTHER_OPERAND(riv,riv)) 8373 case 339: // stm: INT_STORE(riv,OTHER_OPERAND(address1reg,address1scaledreg)) 8374 case 338: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,address1reg)) 8375 case 337: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,riv)) 8376 case 336: // stm: INT_STORE(riv,OTHER_OPERAND(riv,address1scaledreg)) 8377 case 335: // stm: INT_STORE(riv,OTHER_OPERAND(riv,riv)) 8378 case 334: // stm: SHORT_ASTORE(load16,OTHER_OPERAND(riv,riv)) 8379 case 333: // stm: SHORT_ASTORE(riv,OTHER_OPERAND(riv,riv)) 8380 case 332: // stm: SHORT_STORE(load16,OTHER_OPERAND(riv,riv)) 8381 case 331: // stm: SHORT_STORE(riv,OTHER_OPERAND(riv,riv)) 8382 case 330: // stm: BYTE_ASTORE(load8,OTHER_OPERAND(riv,riv)) 8383 case 329: // stm: BYTE_ASTORE(riv,OTHER_OPERAND(riv,riv)) 8384 case 328: // stm: BYTE_STORE(load8,OTHER_OPERAND(riv,riv)) 8385 case 327: // stm: BYTE_STORE(riv,OTHER_OPERAND(riv,riv)) 8386 case 123: // r: LCMP_CMOV(r,OTHER_OPERAND(rlv,any)) 8387 case 117: // r: CMP_CMOV(riv,OTHER_OPERAND(load32,any)) 8388 case 116: // r: CMP_CMOV(load32,OTHER_OPERAND(riv,any)) 8389 case 114: // r: CMP_CMOV(riv,OTHER_OPERAND(uload8,any)) 8390 case 113: // r: CMP_CMOV(uload8,OTHER_OPERAND(riv,any)) 8391 case 106: // r: CMP_CMOV(r,OTHER_OPERAND(riv,any)) 8392 case 103: // stm: BYTE_ASTORE(boolcmp,OTHER_OPERAND(riv,riv)) 8393 case 102: // stm: BYTE_STORE(boolcmp,OTHER_OPERAND(riv,riv)) 8394 mark(p.child1, ntsrule[0]); 8395 mark(p.child2.child1, ntsrule[1]); 8396 mark(p.child2.child2, ntsrule[2]); 8397 break; 8398 case 122: // r: CMP_CMOV(szp,OTHER_OPERAND(INT_CONSTANT,any)) 8399 case 121: // r: CMP_CMOV(cz,OTHER_OPERAND(INT_CONSTANT,any)) 8400 case 120: // r: CMP_CMOV(bittest,OTHER_OPERAND(INT_CONSTANT,any)) 8401 case 119: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any)) 8402 case 118: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any)) 8403 case 115: // r: CMP_CMOV(sload16,OTHER_OPERAND(INT_CONSTANT,any)) 8404 case 112: // r: CMP_CMOV(load8,OTHER_OPERAND(INT_CONSTANT,any)) 8405 case 107: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,any)) 8406 mark(p.child1, ntsrule[0]); 8407 mark(p.child2.child2, ntsrule[1]); 8408 break; 8409 case 204: // stm: INT_ASTORE(INT_XOR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 8410 case 202: // stm: INT_STORE(INT_XOR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 8411 case 197: // stm: INT_ASTORE(INT_OR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 8412 case 195: // stm: INT_STORE(INT_OR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 8413 case 190: // stm: INT_ASTORE(INT_AND(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 8414 case 188: // stm: INT_STORE(INT_AND(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 8415 case 139: // stm: INT_ASTORE(INT_SUB(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 8416 case 137: // stm: INT_STORE(INT_SUB(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 8417 case 130: // stm: INT_ASTORE(INT_ADD(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 8418 case 128: // stm: INT_STORE(INT_ADD(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv)) 8419 mark(p.child1.child1.child1, ntsrule[0]); 8420 mark(p.child1.child1.child2, ntsrule[1]); 8421 mark(p.child1.child2, ntsrule[2]); 8422 mark(p.child2.child1, ntsrule[3]); 8423 mark(p.child2.child2, ntsrule[4]); 8424 break; 8425 case 205: // stm: INT_ASTORE(INT_XOR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8426 case 203: // stm: INT_STORE(INT_XOR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8427 case 198: // stm: INT_ASTORE(INT_OR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8428 case 196: // stm: INT_STORE(INT_OR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8429 case 191: // stm: INT_ASTORE(INT_AND(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8430 case 189: // stm: INT_STORE(INT_AND(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8431 case 140: // stm: INT_ASTORE(INT_SUB(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8432 case 138: // stm: INT_STORE(INT_SUB(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8433 case 131: // stm: INT_ASTORE(INT_ADD(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8434 case 129: // stm: INT_STORE(INT_ADD(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv)) 8435 mark(p.child1.child1, ntsrule[0]); 8436 mark(p.child1.child2.child1, ntsrule[1]); 8437 mark(p.child1.child2.child2, ntsrule[2]); 8438 mark(p.child2.child1, ntsrule[3]); 8439 mark(p.child2.child2, ntsrule[4]); 8440 break; 8441 case 340: // stm: INT_STORE(riv,OTHER_OPERAND(address,INT_CONSTANT)) 8442 case 218: // r: LONG_USHR(rlv,INT_AND(riv,INT_CONSTANT)) 8443 case 216: // r: LONG_SHR(rlv,INT_AND(riv,INT_CONSTANT)) 8444 case 214: // r: LONG_SHL(rlv,INT_AND(riv,INT_CONSTANT)) 8445 case 167: // szpr: INT_USHR(riv,INT_AND(r,INT_CONSTANT)) 8446 case 160: // szpr: INT_SHR(riv,INT_AND(r,INT_CONSTANT)) 8447 case 151: // szpr: INT_SHL(riv,INT_AND(r,INT_CONSTANT)) 8448 mark(p.child1, ntsrule[0]); 8449 mark(p.child2.child1, ntsrule[1]); 8450 break; 8451 case 388: // bittest: INT_AND(INT_SHR(r,INT_CONSTANT),INT_CONSTANT) 8452 case 385: // bittest: INT_AND(INT_USHR(r,INT_CONSTANT),INT_CONSTANT) 8453 case 287: // r: INT_USHR(INT_SHL(load16_32,INT_CONSTANT),INT_CONSTANT) 8454 case 279: // r: INT_USHR(INT_SHL(load8_16_32,INT_CONSTANT),INT_CONSTANT) 8455 case 252: // load32: LONG_2INT(LONG_SHR(load64,INT_CONSTANT)) 8456 case 251: // load32: LONG_2INT(LONG_USHR(load64,INT_CONSTANT)) 8457 case 250: // r: LONG_2INT(LONG_SHR(load64,INT_CONSTANT)) 8458 case 249: // r: LONG_2INT(LONG_USHR(load64,INT_CONSTANT)) 8459 case 248: // r: LONG_2INT(LONG_SHR(r,INT_CONSTANT)) 8460 case 247: // r: LONG_2INT(LONG_USHR(r,INT_CONSTANT)) 8461 case 240: // r: LONG_SHL(INT_2LONG(load64),INT_CONSTANT) 8462 case 239: // r: LONG_SHL(INT_2LONG(r),INT_CONSTANT) 8463 case 238: // r: LONG_AND(INT_2LONG(load32),LONG_CONSTANT) 8464 case 237: // r: LONG_AND(INT_2LONG(r),LONG_CONSTANT) 8465 case 155: // szpr: INT_SHL(INT_SHR(r,INT_CONSTANT),INT_CONSTANT) 8466 mark(p.child1.child1, ntsrule[0]); 8467 break; 8468 case 172: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 8469 case 170: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 8470 case 165: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 8471 case 163: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 8472 case 158: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 8473 case 156: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv)) 8474 mark(p.child1.child1.child1, ntsrule[0]); 8475 mark(p.child1.child1.child2, ntsrule[1]); 8476 mark(p.child1.child2.child1, ntsrule[2]); 8477 mark(p.child2.child1, ntsrule[3]); 8478 mark(p.child2.child2, ntsrule[4]); 8479 break; 8480 case 177: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT)) 8481 case 176: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT)) 8482 case 175: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT)) 8483 case 174: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT)) 8484 mark(p.child1.child1, ntsrule[0]); 8485 mark(p.child2.child1, ntsrule[1]); 8486 break; 8487 case 181: // r: INT_OR(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT))) 8488 case 178: // r: INT_OR(INT_SHL(r,INT_AND(r,INT_CONSTANT)),INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT))) 8489 mark(p.child1.child1, ntsrule[0]); 8490 mark(p.child1.child2.child1, ntsrule[1]); 8491 mark(p.child2.child1, ntsrule[2]); 8492 mark(p.child2.child2.child1.child1, ntsrule[3]); 8493 break; 8494 case 180: // r: INT_OR(INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_USHR(r,INT_AND(r,INT_CONSTANT))) 8495 case 179: // r: INT_OR(INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_SHL(r,INT_AND(r,INT_CONSTANT))) 8496 mark(p.child1.child1, ntsrule[0]); 8497 mark(p.child1.child2.child1.child1, ntsrule[1]); 8498 mark(p.child2.child1, ntsrule[2]); 8499 mark(p.child2.child2.child1, ntsrule[3]); 8500 break; 8501 case 245: // stm: INT_ASTORE(LONG_2INT(r),OTHER_OPERAND(riv,riv)) 8502 case 244: // stm: INT_STORE(LONG_2INT(r),OTHER_OPERAND(riv,riv)) 8503 case 234: // stm: SHORT_ASTORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv)) 8504 case 233: // stm: SHORT_STORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv)) 8505 case 230: // stm: SHORT_ASTORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv)) 8506 case 229: // stm: SHORT_STORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv)) 8507 case 226: // stm: BYTE_ASTORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv)) 8508 case 225: // stm: BYTE_STORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv)) 8509 mark(p.child1.child1, ntsrule[0]); 8510 mark(p.child2.child1, ntsrule[1]); 8511 mark(p.child2.child2, ntsrule[2]); 8512 break; 8513 case 380: // r: SYSCALL(INT_CONSTANT,any) 8514 case 377: // r: CALL(INT_CONSTANT,any) 8515 case 375: // r: CALL(BRANCH_TARGET,any) 8516 case 303: // r: PREPARE_INT(INT_CONSTANT,address) 8517 mark(p.child2, ntsrule[0]); 8518 break; 8519 case 474: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(double_load,r))) 8520 case 473: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(float_load,r))) 8521 case 472: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,double_load))) 8522 case 471: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,float_load))) 8523 case 326: // r: ATTEMPT_LONG(riv,OTHER_OPERAND(riv,OTHER_OPERAND(rlv,rlv))) 8524 case 309: // r: ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))) 8525 case 308: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))) 8526 case 307: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))) 8527 case 306: // r: ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))) 8528 case 305: // r: ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))) 8529 mark(p.child1, ntsrule[0]); 8530 mark(p.child2.child1, ntsrule[1]); 8531 mark(p.child2.child2.child1, ntsrule[2]); 8532 mark(p.child2.child2.child2, ntsrule[3]); 8533 break; 8534 case 310: // r: ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))) 8535 mark(p.child1, ntsrule[0]); 8536 mark(p.child2.child2.child1, ntsrule[1]); 8537 mark(p.child2.child2.child2, ntsrule[2]); 8538 break; 8539 case 311: // r: ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))) 8540 mark(p.child2.child1, ntsrule[0]); 8541 mark(p.child2.child2.child1, ntsrule[1]); 8542 mark(p.child2.child2.child2, ntsrule[2]); 8543 break; 8544 case 323: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8545 case 322: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8546 case 321: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8547 case 320: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8548 case 319: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8549 case 316: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8550 case 315: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8551 case 314: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8552 case 313: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8553 case 312: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8554 mark(p.child1.child1, ntsrule[0]); 8555 mark(p.child1.child2.child1, ntsrule[1]); 8556 mark(p.child1.child2.child2.child1, ntsrule[2]); 8557 mark(p.child1.child2.child2.child2, ntsrule[3]); 8558 break; 8559 case 324: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8560 case 317: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8561 mark(p.child1.child1, ntsrule[0]); 8562 mark(p.child1.child2.child2.child1, ntsrule[1]); 8563 mark(p.child1.child2.child2.child2, ntsrule[2]); 8564 break; 8565 case 325: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8566 case 318: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT) 8567 mark(p.child1.child2.child1, ntsrule[0]); 8568 mark(p.child1.child2.child2.child1, ntsrule[1]); 8569 mark(p.child1.child2.child2.child2, ntsrule[2]); 8570 break; 8571 case 345: // stm: LONG_ASTORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv)) 8572 case 343: // stm: LONG_STORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv)) 8573 mark(p.child2.child1, ntsrule[0]); 8574 mark(p.child2.child2, ntsrule[1]); 8575 break; 8576 case 379: // r: SYSCALL(INT_LOAD(riv,riv),any) 8577 case 376: // r: CALL(INT_LOAD(riv,riv),any) 8578 mark(p.child1.child1, ntsrule[0]); 8579 mark(p.child1.child2, ntsrule[1]); 8580 mark(p.child2, ntsrule[2]); 8581 break; 8582 case 387: // bittest: INT_AND(INT_SHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 8583 case 386: // bittest: INT_AND(INT_SHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 8584 case 384: // bittest: INT_AND(INT_USHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 8585 case 383: // bittest: INT_AND(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT) 8586 mark(p.child1.child1, ntsrule[0]); 8587 mark(p.child1.child2.child1, ntsrule[1]); 8588 break; 8589 case 390: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)),load32) 8590 case 389: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(riv,INT_CONSTANT)),r) 8591 mark(p.child1.child2.child1, ntsrule[0]); 8592 mark(p.child2, ntsrule[1]); 8593 break; 8594 case 392: // bittest: INT_AND(load32,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT))) 8595 case 391: // bittest: INT_AND(r,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT))) 8596 mark(p.child1, ntsrule[0]); 8597 mark(p.child2.child2.child1, ntsrule[1]); 8598 break; 8599 case 481: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,DOUBLE_NEG(r)))) 8600 case 477: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,FLOAT_NEG(r)))) 8601 mark(p.child1, ntsrule[0]); 8602 mark(p.child2.child2.child1, ntsrule[1]); 8603 mark(p.child2.child2.child2.child1, ntsrule[2]); 8604 break; 8605 case 482: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(DOUBLE_NEG(r),r))) 8606 case 478: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(FLOAT_NEG(r),r))) 8607 mark(p.child1, ntsrule[0]); 8608 mark(p.child2.child2.child1.child1, ntsrule[1]); 8609 mark(p.child2.child2.child2, ntsrule[2]); 8610 break; 8611 case 483: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(DOUBLE_NEG(r),r))) 8612 case 479: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(FLOAT_NEG(r),r))) 8613 mark(p.child2.child1, ntsrule[0]); 8614 mark(p.child2.child2.child1.child1, ntsrule[1]); 8615 mark(p.child2.child2.child2, ntsrule[2]); 8616 break; 8617 case 484: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,DOUBLE_NEG(r)))) 8618 case 480: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,FLOAT_NEG(r)))) 8619 mark(p.child2.child1, ntsrule[0]); 8620 mark(p.child2.child2.child1, ntsrule[1]); 8621 mark(p.child2.child2.child2.child1, ntsrule[2]); 8622 break; 8623 } 8624 } 8625 8626 public static final byte[] action={0 8627 ,NOFLAGS 8628 ,NOFLAGS 8629 ,NOFLAGS 8630 ,NOFLAGS 8631 ,NOFLAGS 8632 ,NOFLAGS 8633 ,NOFLAGS 8634 ,NOFLAGS 8635 ,NOFLAGS 8636 ,NOFLAGS 8637 ,NOFLAGS 8638 ,NOFLAGS 8639 ,NOFLAGS 8640 ,NOFLAGS 8641 ,NOFLAGS 8642 ,EMIT_INSTRUCTION 8643 ,EMIT_INSTRUCTION 8644 ,EMIT_INSTRUCTION 8645 ,EMIT_INSTRUCTION 8646 ,NOFLAGS 8647 ,NOFLAGS 8648 ,EMIT_INSTRUCTION 8649 ,EMIT_INSTRUCTION 8650 ,EMIT_INSTRUCTION 8651 ,EMIT_INSTRUCTION 8652 ,NOFLAGS 8653 ,NOFLAGS 8654 ,EMIT_INSTRUCTION 8655 ,EMIT_INSTRUCTION 8656 ,NOFLAGS 8657 ,NOFLAGS 8658 ,NOFLAGS 8659 ,NOFLAGS 8660 ,EMIT_INSTRUCTION 8661 ,EMIT_INSTRUCTION 8662 ,NOFLAGS 8663 ,NOFLAGS 8664 ,EMIT_INSTRUCTION 8665 ,EMIT_INSTRUCTION 8666 ,EMIT_INSTRUCTION 8667 ,EMIT_INSTRUCTION 8668 ,EMIT_INSTRUCTION 8669 ,EMIT_INSTRUCTION 8670 ,EMIT_INSTRUCTION 8671 ,EMIT_INSTRUCTION 8672 ,EMIT_INSTRUCTION 8673 ,EMIT_INSTRUCTION 8674 ,EMIT_INSTRUCTION 8675 ,EMIT_INSTRUCTION 8676 ,EMIT_INSTRUCTION 8677 ,EMIT_INSTRUCTION 8678 ,EMIT_INSTRUCTION 8679 ,EMIT_INSTRUCTION 8680 ,EMIT_INSTRUCTION 8681 ,EMIT_INSTRUCTION 8682 ,EMIT_INSTRUCTION 8683 ,EMIT_INSTRUCTION 8684 ,EMIT_INSTRUCTION 8685 ,EMIT_INSTRUCTION 8686 ,EMIT_INSTRUCTION 8687 ,EMIT_INSTRUCTION 8688 ,EMIT_INSTRUCTION 8689 ,NOFLAGS 8690 ,EMIT_INSTRUCTION 8691 ,EMIT_INSTRUCTION 8692 ,EMIT_INSTRUCTION 8693 ,EMIT_INSTRUCTION 8694 ,EMIT_INSTRUCTION 8695 ,EMIT_INSTRUCTION 8696 ,EMIT_INSTRUCTION 8697 ,EMIT_INSTRUCTION 8698 ,EMIT_INSTRUCTION 8699 ,EMIT_INSTRUCTION 8700 ,EMIT_INSTRUCTION 8701 ,EMIT_INSTRUCTION 8702 ,EMIT_INSTRUCTION 8703 ,EMIT_INSTRUCTION 8704 ,EMIT_INSTRUCTION 8705 ,EMIT_INSTRUCTION 8706 ,EMIT_INSTRUCTION 8707 ,EMIT_INSTRUCTION 8708 ,EMIT_INSTRUCTION 8709 ,EMIT_INSTRUCTION 8710 ,EMIT_INSTRUCTION 8711 ,EMIT_INSTRUCTION 8712 ,EMIT_INSTRUCTION 8713 ,EMIT_INSTRUCTION 8714 ,EMIT_INSTRUCTION 8715 ,EMIT_INSTRUCTION 8716 ,EMIT_INSTRUCTION 8717 ,EMIT_INSTRUCTION 8718 ,EMIT_INSTRUCTION 8719 ,EMIT_INSTRUCTION 8720 ,EMIT_INSTRUCTION 8721 ,NOFLAGS 8722 ,EMIT_INSTRUCTION 8723 ,EMIT_INSTRUCTION 8724 ,EMIT_INSTRUCTION 8725 ,EMIT_INSTRUCTION 8726 ,EMIT_INSTRUCTION 8727 ,EMIT_INSTRUCTION 8728 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST 8729 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST 8730 ,EMIT_INSTRUCTION 8731 ,EMIT_INSTRUCTION 8732 ,EMIT_INSTRUCTION 8733 ,EMIT_INSTRUCTION 8734 ,EMIT_INSTRUCTION 8735 ,EMIT_INSTRUCTION 8736 ,EMIT_INSTRUCTION 8737 ,EMIT_INSTRUCTION 8738 ,EMIT_INSTRUCTION 8739 ,EMIT_INSTRUCTION 8740 ,EMIT_INSTRUCTION 8741 ,EMIT_INSTRUCTION 8742 ,EMIT_INSTRUCTION 8743 ,EMIT_INSTRUCTION 8744 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST 8745 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST 8746 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST 8747 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST 8748 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST 8749 ,EMIT_INSTRUCTION 8750 ,EMIT_INSTRUCTION 8751 ,EMIT_INSTRUCTION 8752 ,EMIT_INSTRUCTION 8753 ,EMIT_INSTRUCTION 8754 ,EMIT_INSTRUCTION 8755 ,EMIT_INSTRUCTION 8756 ,EMIT_INSTRUCTION 8757 ,EMIT_INSTRUCTION 8758 ,EMIT_INSTRUCTION 8759 ,EMIT_INSTRUCTION 8760 ,EMIT_INSTRUCTION 8761 ,EMIT_INSTRUCTION 8762 ,EMIT_INSTRUCTION 8763 ,EMIT_INSTRUCTION 8764 ,EMIT_INSTRUCTION 8765 ,EMIT_INSTRUCTION 8766 ,EMIT_INSTRUCTION 8767 ,EMIT_INSTRUCTION 8768 ,EMIT_INSTRUCTION 8769 ,EMIT_INSTRUCTION 8770 ,EMIT_INSTRUCTION 8771 ,EMIT_INSTRUCTION 8772 ,EMIT_INSTRUCTION 8773 ,EMIT_INSTRUCTION 8774 ,EMIT_INSTRUCTION 8775 ,EMIT_INSTRUCTION 8776 ,EMIT_INSTRUCTION 8777 ,EMIT_INSTRUCTION 8778 ,EMIT_INSTRUCTION 8779 ,EMIT_INSTRUCTION 8780 ,EMIT_INSTRUCTION 8781 ,EMIT_INSTRUCTION 8782 ,EMIT_INSTRUCTION 8783 ,EMIT_INSTRUCTION 8784 ,EMIT_INSTRUCTION 8785 ,EMIT_INSTRUCTION 8786 ,EMIT_INSTRUCTION 8787 ,EMIT_INSTRUCTION 8788 ,EMIT_INSTRUCTION 8789 ,EMIT_INSTRUCTION 8790 ,EMIT_INSTRUCTION 8791 ,EMIT_INSTRUCTION 8792 ,EMIT_INSTRUCTION 8793 ,EMIT_INSTRUCTION 8794 ,EMIT_INSTRUCTION 8795 ,EMIT_INSTRUCTION 8796 ,EMIT_INSTRUCTION 8797 ,EMIT_INSTRUCTION 8798 ,EMIT_INSTRUCTION 8799 ,EMIT_INSTRUCTION 8800 ,EMIT_INSTRUCTION 8801 ,EMIT_INSTRUCTION 8802 ,EMIT_INSTRUCTION 8803 ,EMIT_INSTRUCTION 8804 ,EMIT_INSTRUCTION 8805 ,EMIT_INSTRUCTION 8806 ,EMIT_INSTRUCTION 8807 ,EMIT_INSTRUCTION 8808 ,EMIT_INSTRUCTION 8809 ,EMIT_INSTRUCTION 8810 ,EMIT_INSTRUCTION 8811 ,EMIT_INSTRUCTION 8812 ,EMIT_INSTRUCTION 8813 ,EMIT_INSTRUCTION 8814 ,EMIT_INSTRUCTION 8815 ,EMIT_INSTRUCTION 8816 ,EMIT_INSTRUCTION 8817 ,EMIT_INSTRUCTION 8818 ,EMIT_INSTRUCTION 8819 ,EMIT_INSTRUCTION 8820 ,EMIT_INSTRUCTION 8821 ,EMIT_INSTRUCTION 8822 ,EMIT_INSTRUCTION 8823 ,EMIT_INSTRUCTION 8824 ,EMIT_INSTRUCTION 8825 ,EMIT_INSTRUCTION 8826 ,EMIT_INSTRUCTION 8827 ,EMIT_INSTRUCTION 8828 ,EMIT_INSTRUCTION 8829 ,EMIT_INSTRUCTION 8830 ,EMIT_INSTRUCTION 8831 ,EMIT_INSTRUCTION 8832 ,EMIT_INSTRUCTION 8833 ,EMIT_INSTRUCTION 8834 ,EMIT_INSTRUCTION 8835 ,EMIT_INSTRUCTION 8836 ,EMIT_INSTRUCTION 8837 ,EMIT_INSTRUCTION 8838 ,EMIT_INSTRUCTION 8839 ,EMIT_INSTRUCTION 8840 ,EMIT_INSTRUCTION 8841 ,EMIT_INSTRUCTION 8842 ,EMIT_INSTRUCTION 8843 ,EMIT_INSTRUCTION 8844 ,EMIT_INSTRUCTION 8845 ,EMIT_INSTRUCTION 8846 ,EMIT_INSTRUCTION 8847 ,EMIT_INSTRUCTION 8848 ,EMIT_INSTRUCTION 8849 ,EMIT_INSTRUCTION 8850 ,EMIT_INSTRUCTION 8851 ,EMIT_INSTRUCTION 8852 ,EMIT_INSTRUCTION 8853 ,EMIT_INSTRUCTION 8854 ,EMIT_INSTRUCTION 8855 ,EMIT_INSTRUCTION 8856 ,EMIT_INSTRUCTION 8857 ,EMIT_INSTRUCTION 8858 ,EMIT_INSTRUCTION 8859 ,EMIT_INSTRUCTION 8860 ,EMIT_INSTRUCTION 8861 ,EMIT_INSTRUCTION 8862 ,EMIT_INSTRUCTION 8863 ,EMIT_INSTRUCTION 8864 ,EMIT_INSTRUCTION 8865 ,EMIT_INSTRUCTION 8866 ,EMIT_INSTRUCTION 8867 ,EMIT_INSTRUCTION 8868 ,EMIT_INSTRUCTION 8869 ,EMIT_INSTRUCTION 8870 ,EMIT_INSTRUCTION 8871 ,EMIT_INSTRUCTION 8872 ,EMIT_INSTRUCTION 8873 ,EMIT_INSTRUCTION 8874 ,EMIT_INSTRUCTION 8875 ,EMIT_INSTRUCTION 8876 ,EMIT_INSTRUCTION 8877 ,EMIT_INSTRUCTION 8878 ,EMIT_INSTRUCTION 8879 ,EMIT_INSTRUCTION 8880 ,EMIT_INSTRUCTION 8881 ,NOFLAGS 8882 ,EMIT_INSTRUCTION 8883 ,NOFLAGS 8884 ,NOFLAGS 8885 ,NOFLAGS 8886 ,NOFLAGS 8887 ,NOFLAGS 8888 ,NOFLAGS 8889 ,NOFLAGS 8890 ,NOFLAGS 8891 ,NOFLAGS 8892 ,NOFLAGS 8893 ,NOFLAGS 8894 ,NOFLAGS 8895 ,EMIT_INSTRUCTION 8896 ,EMIT_INSTRUCTION 8897 ,EMIT_INSTRUCTION 8898 ,EMIT_INSTRUCTION 8899 ,EMIT_INSTRUCTION 8900 ,EMIT_INSTRUCTION 8901 ,EMIT_INSTRUCTION 8902 ,EMIT_INSTRUCTION 8903 ,EMIT_INSTRUCTION 8904 ,EMIT_INSTRUCTION 8905 ,EMIT_INSTRUCTION 8906 ,EMIT_INSTRUCTION 8907 ,EMIT_INSTRUCTION 8908 ,EMIT_INSTRUCTION 8909 ,EMIT_INSTRUCTION 8910 ,EMIT_INSTRUCTION 8911 ,EMIT_INSTRUCTION 8912 ,EMIT_INSTRUCTION 8913 ,EMIT_INSTRUCTION 8914 ,EMIT_INSTRUCTION 8915 ,EMIT_INSTRUCTION 8916 ,EMIT_INSTRUCTION 8917 ,EMIT_INSTRUCTION 8918 ,EMIT_INSTRUCTION 8919 ,EMIT_INSTRUCTION 8920 ,EMIT_INSTRUCTION 8921 ,EMIT_INSTRUCTION 8922 ,EMIT_INSTRUCTION 8923 ,EMIT_INSTRUCTION 8924 ,EMIT_INSTRUCTION 8925 ,EMIT_INSTRUCTION 8926 ,EMIT_INSTRUCTION 8927 ,EMIT_INSTRUCTION 8928 ,EMIT_INSTRUCTION 8929 ,EMIT_INSTRUCTION 8930 ,EMIT_INSTRUCTION 8931 ,EMIT_INSTRUCTION 8932 ,EMIT_INSTRUCTION 8933 ,EMIT_INSTRUCTION 8934 ,EMIT_INSTRUCTION 8935 ,EMIT_INSTRUCTION 8936 ,EMIT_INSTRUCTION 8937 ,EMIT_INSTRUCTION 8938 ,EMIT_INSTRUCTION 8939 ,EMIT_INSTRUCTION 8940 ,EMIT_INSTRUCTION 8941 ,EMIT_INSTRUCTION 8942 ,EMIT_INSTRUCTION 8943 ,EMIT_INSTRUCTION 8944 ,EMIT_INSTRUCTION 8945 ,EMIT_INSTRUCTION 8946 ,EMIT_INSTRUCTION 8947 ,EMIT_INSTRUCTION 8948 ,EMIT_INSTRUCTION 8949 ,EMIT_INSTRUCTION 8950 ,EMIT_INSTRUCTION 8951 ,EMIT_INSTRUCTION 8952 ,EMIT_INSTRUCTION 8953 ,EMIT_INSTRUCTION 8954 ,EMIT_INSTRUCTION 8955 ,EMIT_INSTRUCTION 8956 ,EMIT_INSTRUCTION 8957 ,EMIT_INSTRUCTION 8958 ,EMIT_INSTRUCTION 8959 ,EMIT_INSTRUCTION 8960 ,EMIT_INSTRUCTION 8961 ,EMIT_INSTRUCTION 8962 ,EMIT_INSTRUCTION 8963 ,EMIT_INSTRUCTION 8964 ,EMIT_INSTRUCTION 8965 ,EMIT_INSTRUCTION 8966 ,EMIT_INSTRUCTION 8967 ,EMIT_INSTRUCTION 8968 ,EMIT_INSTRUCTION 8969 ,EMIT_INSTRUCTION 8970 ,EMIT_INSTRUCTION 8971 ,EMIT_INSTRUCTION 8972 ,EMIT_INSTRUCTION 8973 ,EMIT_INSTRUCTION 8974 ,EMIT_INSTRUCTION 8975 ,EMIT_INSTRUCTION 8976 ,EMIT_INSTRUCTION 8977 ,EMIT_INSTRUCTION 8978 ,EMIT_INSTRUCTION 8979 ,EMIT_INSTRUCTION 8980 ,EMIT_INSTRUCTION 8981 ,EMIT_INSTRUCTION 8982 ,EMIT_INSTRUCTION 8983 ,EMIT_INSTRUCTION 8984 ,EMIT_INSTRUCTION 8985 ,EMIT_INSTRUCTION 8986 ,EMIT_INSTRUCTION 8987 ,EMIT_INSTRUCTION 8988 ,EMIT_INSTRUCTION 8989 ,EMIT_INSTRUCTION 8990 ,EMIT_INSTRUCTION 8991 ,EMIT_INSTRUCTION 8992 ,EMIT_INSTRUCTION 8993 ,EMIT_INSTRUCTION 8994 ,EMIT_INSTRUCTION 8995 ,EMIT_INSTRUCTION 8996 ,EMIT_INSTRUCTION 8997 ,EMIT_INSTRUCTION 8998 ,EMIT_INSTRUCTION 8999 ,EMIT_INSTRUCTION 9000 ,EMIT_INSTRUCTION 9001 ,EMIT_INSTRUCTION 9002 ,EMIT_INSTRUCTION 9003 ,EMIT_INSTRUCTION 9004 ,EMIT_INSTRUCTION 9005 ,EMIT_INSTRUCTION 9006 ,EMIT_INSTRUCTION 9007 ,EMIT_INSTRUCTION 9008 ,EMIT_INSTRUCTION 9009 ,EMIT_INSTRUCTION 9010 ,EMIT_INSTRUCTION 9011 ,EMIT_INSTRUCTION 9012 ,EMIT_INSTRUCTION 9013 ,EMIT_INSTRUCTION 9014 ,EMIT_INSTRUCTION 9015 ,EMIT_INSTRUCTION 9016 ,EMIT_INSTRUCTION 9017 ,EMIT_INSTRUCTION 9018 ,EMIT_INSTRUCTION 9019 ,EMIT_INSTRUCTION 9020 ,EMIT_INSTRUCTION 9021 ,EMIT_INSTRUCTION 9022 ,EMIT_INSTRUCTION 9023 ,EMIT_INSTRUCTION 9024 ,EMIT_INSTRUCTION 9025 ,EMIT_INSTRUCTION 9026 ,EMIT_INSTRUCTION 9027 ,EMIT_INSTRUCTION 9028 ,EMIT_INSTRUCTION 9029 ,EMIT_INSTRUCTION 9030 ,EMIT_INSTRUCTION 9031 ,EMIT_INSTRUCTION 9032 ,EMIT_INSTRUCTION 9033 ,EMIT_INSTRUCTION 9034 ,EMIT_INSTRUCTION 9035 ,EMIT_INSTRUCTION 9036 ,EMIT_INSTRUCTION 9037 ,EMIT_INSTRUCTION 9038 ,EMIT_INSTRUCTION 9039 ,EMIT_INSTRUCTION 9040 ,EMIT_INSTRUCTION 9041 ,EMIT_INSTRUCTION 9042 ,EMIT_INSTRUCTION 9043 ,EMIT_INSTRUCTION 9044 ,EMIT_INSTRUCTION 9045 ,EMIT_INSTRUCTION 9046 ,EMIT_INSTRUCTION 9047 ,EMIT_INSTRUCTION 9048 ,EMIT_INSTRUCTION 9049 ,EMIT_INSTRUCTION 9050 ,EMIT_INSTRUCTION 9051 ,EMIT_INSTRUCTION 9052 ,EMIT_INSTRUCTION 9053 ,EMIT_INSTRUCTION 9054 ,EMIT_INSTRUCTION 9055 ,EMIT_INSTRUCTION 9056 ,EMIT_INSTRUCTION 9057 ,EMIT_INSTRUCTION 9058 ,EMIT_INSTRUCTION 9059 ,EMIT_INSTRUCTION 9060 ,EMIT_INSTRUCTION 9061 ,EMIT_INSTRUCTION 9062 ,EMIT_INSTRUCTION 9063 ,EMIT_INSTRUCTION 9064 ,EMIT_INSTRUCTION 9065 ,EMIT_INSTRUCTION 9066 ,EMIT_INSTRUCTION 9067 ,EMIT_INSTRUCTION 9068 ,EMIT_INSTRUCTION 9069 ,EMIT_INSTRUCTION 9070 ,EMIT_INSTRUCTION 9071 ,EMIT_INSTRUCTION 9072 ,EMIT_INSTRUCTION 9073 ,EMIT_INSTRUCTION 9074 ,NOFLAGS 9075 ,EMIT_INSTRUCTION 9076 ,NOFLAGS 9077 ,EMIT_INSTRUCTION 9078 ,NOFLAGS 9079 ,EMIT_INSTRUCTION 9080 ,NOFLAGS 9081 ,EMIT_INSTRUCTION 9082 ,EMIT_INSTRUCTION 9083 ,EMIT_INSTRUCTION 9084 ,EMIT_INSTRUCTION 9085 ,EMIT_INSTRUCTION 9086 ,EMIT_INSTRUCTION 9087 ,EMIT_INSTRUCTION 9088 ,EMIT_INSTRUCTION 9089 ,EMIT_INSTRUCTION 9090 ,EMIT_INSTRUCTION 9091 ,EMIT_INSTRUCTION 9092 ,EMIT_INSTRUCTION 9093 ,EMIT_INSTRUCTION 9094 ,EMIT_INSTRUCTION 9095 ,EMIT_INSTRUCTION 9096 ,EMIT_INSTRUCTION 9097 ,EMIT_INSTRUCTION 9098 ,EMIT_INSTRUCTION 9099 ,EMIT_INSTRUCTION 9100 ,EMIT_INSTRUCTION 9101 ,EMIT_INSTRUCTION 9102 ,EMIT_INSTRUCTION 9103 ,EMIT_INSTRUCTION 9104 ,EMIT_INSTRUCTION 9105 ,EMIT_INSTRUCTION 9106 ,EMIT_INSTRUCTION 9107 ,EMIT_INSTRUCTION 9108 ,EMIT_INSTRUCTION 9109 ,EMIT_INSTRUCTION 9110 ,EMIT_INSTRUCTION 9111 ,EMIT_INSTRUCTION 9112 ,EMIT_INSTRUCTION 9113 }; 9114 9115 void code16(BURS_TreeNode p) { 9116 pushMO(MO_L(P(p), B)); 9117 } 9118 void code17(BURS_TreeNode p) { 9119 pushMO(MO_AL(P(p), B_S, B)); 9120 } 9121 void code18(BURS_TreeNode p) { 9122 pushMO(MO_L(P(p), B)); 9123 } 9124 void code19(BURS_TreeNode p) { 9125 pushMO(MO_AL(P(p), B_S, B)); 9126 } 9127 void code22(BURS_TreeNode p) { 9128 pushMO(MO_L(P(p), W)); 9129 } 9130 void code23(BURS_TreeNode p) { 9131 pushMO(MO_AL(P(p), W_S, W)); 9132 } 9133 void code24(BURS_TreeNode p) { 9134 pushMO(MO_L(P(p), W)); 9135 } 9136 void code25(BURS_TreeNode p) { 9137 pushMO(MO_AL(P(p), W_S, W)); 9138 } 9139 void code28(BURS_TreeNode p) { 9140 pushMO(MO_L(P(p), DW)); 9141 } 9142 void code29(BURS_TreeNode p) { 9143 pushMO(MO_AL(P(p), DW_S, DW)); 9144 } 9145 void code34(BURS_TreeNode p) { 9146 pushMO(MO_L(P(p), QW)); 9147 } 9148 void code35(BURS_TreeNode p) { 9149 pushMO(MO_AL(P(p), QW_S, QW)); 9150 } 9151 void code38(BURS_TreeNode p) { 9152 pushAddress(null, Binary.getVal1(P(p)).asRegister(), LEA_SHIFT(Binary.getVal2(P(p))), Offset.zero()); 9153 } 9154 void code39(BURS_TreeNode p) { 9155 pushAddress(R(Binary.getVal1(P(p))), null, B_S, Offset.fromIntSignExtend(VR(p))); 9156 } 9157 void code40(BURS_TreeNode p) { 9158 pushAddress(R(Move.getVal(P(p))), null, B_S, Offset.zero()); 9159 } 9160 void code41(BURS_TreeNode p) { 9161 pushAddress(R(Binary.getVal1(P(p))), R(Binary.getVal2(P(p))), B_S, Offset.zero()); 9162 } 9163 void code42(BURS_TreeNode p) { 9164 augmentAddress(Binary.getVal2(P(p))); 9165 } 9166 void code43(BURS_TreeNode p) { 9167 augmentAddress(Binary.getVal2(P(p))); 9168 } 9169 void code44(BURS_TreeNode p) { 9170 augmentAddress(Binary.getVal1(P(p))); 9171 } 9172 void code45(BURS_TreeNode p) { 9173 augmentAddress(Binary.getVal2(P(p))); 9174 } 9175 void code46(BURS_TreeNode p) { 9176 augmentAddress(Binary.getVal2(P(p))); 9177 } 9178 void code47(BURS_TreeNode p) { 9179 combineAddresses(); 9180 } 9181 void code48(BURS_TreeNode p) { 9182 combineAddresses(); 9183 } 9184 void code49(BURS_TreeNode p) { 9185 augmentAddress(Binary.getVal2(P(p))); 9186 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null)); 9187 } 9188 void code50(BURS_TreeNode p) { 9189 augmentAddress(Binary.getVal1(P(p))); 9190 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null)); 9191 } 9192 void code51(BURS_TreeNode p) { 9193 combineAddresses(); 9194 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null)); 9195 } 9196 void code52(BURS_TreeNode p) { 9197 combineAddresses(); 9198 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null)); 9199 } 9200 void code53(BURS_TreeNode p) { 9201 augmentAddress(Binary.getVal2(P(p))); 9202 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null)); 9203 } 9204 void code54(BURS_TreeNode p) { 9205 EMIT_Lea(P(p), Move.getResult(P(p)), consumeAddress(DW, null, null)); 9206 } 9207 void code55(BURS_TreeNode p) { 9208 EMIT(InlineGuard.mutate(P(p), IG_PATCH_POINT, null, null, null, InlineGuard.getTarget(P(p)), InlineGuard.getBranchProfile(P(p)))); 9209 } 9210 void code56(BURS_TreeNode p) { 9211 EMIT(P(p)); 9212 } 9213 void code57(BURS_TreeNode p) { 9214 EMIT(P(p)); 9215 } 9216 void code58(BURS_TreeNode p) { 9217 EMIT(P(p)); 9218 } 9219 void code59(BURS_TreeNode p) { 9220 EMIT(P(p)); 9221 } 9222 void code60(BURS_TreeNode p) { 9223 EMIT(P(p)); 9224 } 9225 void code61(BURS_TreeNode p) { 9226 LOWTABLESWITCH(P(p)); 9227 } 9228 void code62(BURS_TreeNode p) { 9229 RESOLVE(P(p)); 9230 } 9231 void code64(BURS_TreeNode p) { 9232 EMIT(P(p)); 9233 } 9234 void code65(BURS_TreeNode p) { 9235 EMIT(P(p)); 9236 } 9237 void code66(BURS_TreeNode p) { 9238 EMIT(P(p)); 9239 } 9240 void code67(BURS_TreeNode p) { 9241 PROLOGUE(P(p)); 9242 } 9243 void code68(BURS_TreeNode p) { 9244 GET_EXCEPTION_OBJECT(P(p)); 9245 } 9246 void code69(BURS_TreeNode p) { 9247 SET_EXCEPTION_OBJECT(P(p)); 9248 } 9249 void code70(BURS_TreeNode p) { 9250 SET_EXCEPTION_OBJECT(P(p)); 9251 } 9252 void code71(BURS_TreeNode p) { 9253 EMIT(MIR_Trap.mutate(P(p), IA32_INT, Trap.getGuardResult(P(p)), Trap.getTCode(P(p)))); 9254 } 9255 void code72(BURS_TreeNode p) { 9256 TRAP_IF_IMM(P(p), false); 9257 } 9258 void code73(BURS_TreeNode p) { 9259 TRAP_IF_IMM(P(p), true); 9260 } 9261 void code74(BURS_TreeNode p) { 9262 EMIT(MIR_TrapIf.mutate(P(p), IA32_TRAPIF, 9263 TrapIf.getGuardResult(P(p)), 9264 TrapIf.getVal1(P(p)), 9265 TrapIf.getVal2(P(p)), 9266 COND(TrapIf.getCond(P(p))), 9267 TrapIf.getTCode(P(p)))); 9268 } 9269 void code75(BURS_TreeNode p) { 9270 EMIT(MIR_TrapIf.mutate(P(p), IA32_TRAPIF, 9271 TrapIf.getGuardResult(P(p)), 9272 consumeMO(), 9273 TrapIf.getVal2(P(p)), 9274 COND(TrapIf.getCond(P(p))), 9275 TrapIf.getTCode(P(p)))); 9276 } 9277 void code76(BURS_TreeNode p) { 9278 EMIT(MIR_TrapIf.mutate(P(p), IA32_TRAPIF, 9279 TrapIf.getGuardResult(P(p)), 9280 TrapIf.getVal1(P(p)), 9281 consumeMO(), 9282 COND(TrapIf.getCond(P(p))), 9283 TrapIf.getTCode(P(p)))); 9284 } 9285 void code77(BURS_TreeNode p) { 9286 EMIT_Commutative(IA32_XOR, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)), IC(1)); 9287 } 9288 void code78(BURS_TreeNode p) { 9289 EMIT_Commutative(IA32_XOR, P(p), MO_S(P(p), B), MO_S(P(p), B), IC(1)); 9290 } 9291 void code79(BURS_TreeNode p) { 9292 EMIT_Commutative(IA32_XOR, P(p), MO_AS(P(p), B_S, B), MO_AS(P(p), B_S, B), IC(1)); 9293 } 9294 void code80(BURS_TreeNode p) { 9295 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), 9296 BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p)), 9297 BooleanCmp.getCond(P(p))); 9298 } 9299 void code81(BURS_TreeNode p) { 9300 pushCOND(BooleanCmp.getCond(P(p))); 9301 EMIT(MIR_Compare.mutate(P(p), IA32_CMP, BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p)))); 9302 } 9303 void code82(BURS_TreeNode p) { 9304 EMIT(CPOS(P(p),MIR_Test.create(IA32_TEST, BooleanCmp.getVal1(P(p)), BooleanCmp.getVal1(P(p)).copy()))); 9305 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getCond(P(p))); 9306 } 9307 void code83(BURS_TreeNode p) { 9308 pushCOND(BooleanCmp.getCond(P(p))); 9309 EMIT(CPOS(P(p),MIR_Test.create(IA32_TEST, BooleanCmp.getVal1(P(p)), BooleanCmp.getVal1(P(p)).copy()))); 9310 } 9311 void code84(BURS_TreeNode p) { 9312 EMIT_Commutative(IA32_SHR, P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getVal1(P(p)), IC(31)); 9313 } 9314 void code85(BURS_TreeNode p) { 9315 EMIT_Commutative(IA32_SHR, P(p), BooleanCmp.getResult(P(p)), consumeMO(), IC(31)); 9316 } 9317 void code86(BURS_TreeNode p) { 9318 RegisterOperand result = BooleanCmp.getResult(P(p)); 9319 EMIT_Commutative(IA32_SHR, P(p), result, BooleanCmp.getVal1(P(p)), IC(31)); 9320 EMIT(CPOS(P(p),MIR_BinaryAcc.create(IA32_XOR, result.copyRO(), IC(1)))); 9321 } 9322 void code87(BURS_TreeNode p) { 9323 RegisterOperand result = BooleanCmp.getResult(P(p)); 9324 EMIT_Commutative(IA32_SHR, P(p), result, consumeMO(), IC(31)); 9325 EMIT(CPOS(P(p),MIR_BinaryAcc.create(IA32_XOR, result.copyRO(), IC(1)))); 9326 } 9327 void code88(BURS_TreeNode p) { 9328 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getCond(P(p))); 9329 } 9330 void code89(BURS_TreeNode p) { 9331 pushCOND(BooleanCmp.getCond(P(p))); 9332 } 9333 void code90(BURS_TreeNode p) { 9334 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getCond(P(p))); 9335 } 9336 void code91(BURS_TreeNode p) { 9337 pushCOND(BooleanCmp.getCond(P(p))); 9338 } 9339 void code92(BURS_TreeNode p) { 9340 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BIT_TEST(VR(p),BooleanCmp.getCond(P(p)))); 9341 } 9342 void code93(BURS_TreeNode p) { 9343 pushCOND(BIT_TEST(VR(p),BooleanCmp.getCond(P(p)))); 9344 } 9345 void code94(BURS_TreeNode p) { 9346 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), consumeCOND()); 9347 } 9348 void code96(BURS_TreeNode p) { 9349 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), consumeCOND().flipCode()); 9350 } 9351 void code97(BURS_TreeNode p) { 9352 pushCOND(consumeCOND().flipCode()); // invert already pushed condition 9353 } 9354 void code98(BURS_TreeNode p) { 9355 BOOLEAN_CMP_INT(PL(p), BooleanCmp.getResult(P(p)), 9356 consumeMO(), BooleanCmp.getVal2(P(p)), 9357 BooleanCmp.getCond(P(p))); 9358 } 9359 void code99(BURS_TreeNode p) { 9360 pushCOND(BooleanCmp.getCond(P(p))); 9361 EMIT(MIR_Compare.mutate(PL(p), IA32_CMP, consumeMO(), BooleanCmp.getVal2(P(p)))); 9362 } 9363 void code100(BURS_TreeNode p) { 9364 BOOLEAN_CMP_INT(PR(p), BooleanCmp.getResult(P(p)), 9365 BooleanCmp.getVal1(P(p)), consumeMO(), 9366 BooleanCmp.getCond(P(p))); 9367 } 9368 void code101(BURS_TreeNode p) { 9369 pushCOND(BooleanCmp.getCond(P(p)).flipOperands()); 9370 EMIT(MIR_Compare.mutate(PR(p), IA32_CMP, consumeMO(), BooleanCmp.getVal1(P(p)))); 9371 } 9372 void code102(BURS_TreeNode p) { 9373 EMIT(MIR_Set.mutate(P(p), IA32_SET__B, MO_S(P(p),B), COND(consumeCOND()))); 9374 } 9375 void code103(BURS_TreeNode p) { 9376 EMIT(MIR_Set.mutate(P(p), IA32_SET__B, MO_AS(P(p),B_S,B), COND(consumeCOND()))); 9377 } 9378 void code104(BURS_TreeNode p) { 9379 BOOLEAN_CMP_LONG(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p)), BooleanCmp.getCond(P(p))); 9380 } 9381 void code105(BURS_TreeNode p) { 9382 pushCOND(BooleanCmp.getCond(P(p))); 9383 LONG_CMP(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p))); 9384 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, BooleanCmp.getResult(P(p)), IC(0)))); 9385 } 9386 void code106(BURS_TreeNode p) { 9387 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, CondMove.getVal1(P(p)), CondMove.getVal2(P(p))))); 9388 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)), 9389 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9390 } 9391 void code107(BURS_TreeNode p) { 9392 EMIT(CPOS(P(p), MIR_Test.create(IA32_TEST, CondMove.getVal1(P(p)), CondMove.getVal1(P(p)).copy()))); 9393 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)), 9394 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9395 } 9396 void code108(BURS_TreeNode p) { 9397 EMIT_Commutative(IA32_SAR, P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), IC(31)); 9398 } 9399 void code109(BURS_TreeNode p) { 9400 EMIT_Commutative(IA32_SAR, P(p), CondMove.getResult(P(p)), consumeMO(), IC(31)); 9401 } 9402 void code110(BURS_TreeNode p) { 9403 RegisterOperand result = CondMove.getResult(P(p)); 9404 EMIT_Commutative(IA32_SAR, P(p), result, CondMove.getVal1(P(p)), IC(31)); 9405 EMIT(CPOS(P(p),MIR_UnaryAcc.create(IA32_NOT, result.copyRO()))); 9406 } 9407 void code111(BURS_TreeNode p) { 9408 RegisterOperand result = CondMove.getResult(P(p)); 9409 EMIT_Commutative(IA32_SAR, P(p), result, consumeMO(), IC(31)); 9410 EMIT(CPOS(P(p),MIR_UnaryAcc.create(IA32_NOT, result.copyRO()))); 9411 } 9412 void code112(BURS_TreeNode p) { 9413 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p))))); 9414 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)), 9415 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9416 } 9417 void code113(BURS_TreeNode p) { 9418 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p))))); 9419 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)), 9420 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9421 } 9422 void code114(BURS_TreeNode p) { 9423 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p))))); 9424 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)), 9425 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9426 } 9427 void code115(BURS_TreeNode p) { 9428 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p))))); 9429 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)), 9430 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9431 } 9432 void code116(BURS_TreeNode p) { 9433 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p))))); 9434 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)), 9435 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9436 } 9437 void code117(BURS_TreeNode p) { 9438 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal1(P(p))))); 9439 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).flipOperands(), 9440 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9441 } 9442 void code118(BURS_TreeNode p) { 9443 CMOV_MOV(P(p), CondMove.getResult(P(p)), consumeCOND(), 9444 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9445 } 9446 void code119(BURS_TreeNode p) { 9447 CMOV_MOV(P(p), CondMove.getResult(P(p)), consumeCOND().flipCode(), 9448 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9449 } 9450 void code120(BURS_TreeNode p) { 9451 CMOV_MOV(P(p), CondMove.getResult(P(p)), BIT_TEST(VRL(p), CondMove.getCond(P(p))), 9452 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9453 } 9454 void code121(BURS_TreeNode p) { 9455 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)), 9456 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9457 } 9458 void code122(BURS_TreeNode p) { 9459 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)), 9460 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9461 } 9462 void code123(BURS_TreeNode p) { 9463 LCMP_CMOV(P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), CondMove.getVal2(P(p)), 9464 CondMove.getCond(P(p)), CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 9465 } 9466 void code124(BURS_TreeNode p) { 9467 EMIT_Commutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9468 } 9469 void code125(BURS_TreeNode p) { 9470 if (Binary.getVal2(P(p)).isIntConstant()) { 9471 pushAddress(R(Binary.getVal1(P(p))), null, B_S, Offset.fromIntSignExtend(VR(p))); 9472 } else { 9473 pushAddress(R(Binary.getVal1(P(p))), R(Binary.getVal2(P(p))), B_S, Offset.zero()); 9474 } 9475 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null)); 9476 } 9477 void code126(BURS_TreeNode p) { 9478 EMIT_Commutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 9479 } 9480 void code127(BURS_TreeNode p) { 9481 EMIT_Commutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO()); 9482 } 9483 void code128(BURS_TreeNode p) { 9484 EMIT_Commutative(IA32_ADD, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p))); 9485 } 9486 void code129(BURS_TreeNode p) { 9487 EMIT_Commutative(IA32_ADD, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p))); 9488 } 9489 void code130(BURS_TreeNode p) { 9490 EMIT_Commutative(IA32_ADD, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p))); 9491 } 9492 void code131(BURS_TreeNode p) { 9493 EMIT_Commutative(IA32_ADD, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p))); 9494 } 9495 void code132(BURS_TreeNode p) { 9496 EMIT_NonCommutative(IA32_SUB, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9497 } 9498 void code133(BURS_TreeNode p) { 9499 EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, Binary.getResult(P(p))))); 9500 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, Binary.getResult(P(p)), Binary.getVal1(P(p)))); 9501 } 9502 void code134(BURS_TreeNode p) { 9503 EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, Binary.getResult(P(p))))); 9504 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, Binary.getResult(P(p)), consumeMO())); 9505 } 9506 void code135(BURS_TreeNode p) { 9507 EMIT_NonCommutative(IA32_SUB, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 9508 } 9509 void code136(BURS_TreeNode p) { 9510 EMIT_NonCommutative(IA32_SUB, P(p), Binary.getResult(P(p)), consumeMO(), Binary.getVal2(P(p))); 9511 } 9512 void code137(BURS_TreeNode p) { 9513 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SUB, MO_S(P(p), DW), Binary.getVal2(PL(p)))); 9514 } 9515 void code138(BURS_TreeNode p) { 9516 MemoryOperand result = MO_S(P(p), DW); 9517 EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, result))); 9518 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, result.copy(), Binary.getVal1(PL(p)))); 9519 } 9520 void code139(BURS_TreeNode p) { 9521 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SUB, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)))); 9522 } 9523 void code140(BURS_TreeNode p) { 9524 MemoryOperand result = MO_AS(P(p), DW_S, DW); 9525 EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, result))); 9526 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, result.copy(), Binary.getVal1(PL(p)))); 9527 } 9528 void code141(BURS_TreeNode p) { 9529 EMIT_Commutative(IA32_IMUL2, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9530 } 9531 void code142(BURS_TreeNode p) { 9532 EMIT_Commutative(IA32_IMUL2, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 9533 } 9534 void code143(BURS_TreeNode p) { 9535 EMIT_Commutative(IA32_IMUL2, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO()); 9536 } 9537 void code144(BURS_TreeNode p) { 9538 INT_DIVIDES(P(p), GuardedBinary.getResult(P(p)), GuardedBinary.getVal1(P(p)), 9539 GuardedBinary.getVal2(P(p)), true); 9540 } 9541 void code145(BURS_TreeNode p) { 9542 INT_DIVIDES(P(p), GuardedBinary.getResult(P(p)), GuardedBinary.getVal1(P(p)), 9543 consumeMO(), true); 9544 } 9545 void code146(BURS_TreeNode p) { 9546 INT_DIVIDES(P(p), GuardedBinary.getResult(P(p)), GuardedBinary.getVal1(P(p)), 9547 GuardedBinary.getVal2(P(p)), false); 9548 } 9549 void code147(BURS_TreeNode p) { 9550 INT_DIVIDES(P(p), GuardedBinary.getResult(P(p)), GuardedBinary.getVal1(P(p)), 9551 consumeMO(), false); 9552 } 9553 void code148(BURS_TreeNode p) { 9554 EMIT_Unary(IA32_NEG, P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); 9555 } 9556 void code149(BURS_TreeNode p) { 9557 EMIT_Unary(IA32_NEG, P(p), MO_S(P(p), DW), MO_S(P(p), DW)); 9558 } 9559 void code150(BURS_TreeNode p) { 9560 EMIT_Unary(IA32_NEG, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW)); 9561 } 9562 void code151(BURS_TreeNode p) { 9563 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PR(p))))); 9564 EMIT_NonCommutative(IA32_SHL, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int)); 9565 } 9566 void code152(BURS_TreeNode p) { 9567 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal2(P(p))))); 9568 EMIT_NonCommutative(IA32_SHL, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int)); 9569 } 9570 void code153(BURS_TreeNode p) { 9571 if (VM.VerifyAssertions) VM._assert((VR(p) & 0x7FFFFFFF) <= 31); if(Binary.getVal2(P(p)).asIntConstant().value == 1) { 9572 EMIT_NonCommutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(P(p)).copy()); 9573 } else { 9574 EMIT_NonCommutative(IA32_SHL, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9575 } 9576 } 9577 void code154(BURS_TreeNode p) { 9578 pushAddress(null, Binary.getVal1(P(p)).asRegister(), LEA_SHIFT(Binary.getVal2(P(p))), Offset.zero()); 9579 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null)); 9580 } 9581 void code155(BURS_TreeNode p) { 9582 EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)), IC(0xffffffff << VR(p))); 9583 } 9584 void code156(BURS_TreeNode p) { 9585 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p))))); 9586 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_S(P(p), DW), new RegisterOperand(getECX(), TypeReference.Int))); 9587 } 9588 void code157(BURS_TreeNode p) { 9589 if (VM.VerifyAssertions) VM._assert((VLR(p) & 0x7FFFFFFF) <= 31); 9590 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_S(P(p), DW), Binary.getVal2(PL(p)))); 9591 } 9592 void code158(BURS_TreeNode p) { 9593 EMIT(MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p)))); 9594 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_AS(P(p), DW_S, DW), new RegisterOperand(getECX(), TypeReference.Int))); 9595 } 9596 void code159(BURS_TreeNode p) { 9597 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)))); 9598 } 9599 void code160(BURS_TreeNode p) { 9600 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PR(p))))); 9601 EMIT_NonCommutative(IA32_SAR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int)); 9602 } 9603 void code161(BURS_TreeNode p) { 9604 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal2(P(p))))); 9605 EMIT_NonCommutative(IA32_SAR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int)); 9606 } 9607 void code162(BURS_TreeNode p) { 9608 if (VM.VerifyAssertions) VM._assert((VR(p) & 0x7FFFFFFF) <= 31); 9609 EMIT_NonCommutative(IA32_SAR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9610 } 9611 void code163(BURS_TreeNode p) { 9612 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p))))); 9613 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_S(P(p), DW), new RegisterOperand(getECX(), TypeReference.Int))); 9614 } 9615 void code164(BURS_TreeNode p) { 9616 if (VM.VerifyAssertions) VM._assert((VLR(p) & 0x7FFFFFFF) <= 31); 9617 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_S(P(p), DW), Binary.getVal2(PL(p)))); 9618 } 9619 void code165(BURS_TreeNode p) { 9620 EMIT(MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p)))); 9621 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_AS(P(p), DW_S, DW), new RegisterOperand(getECX(), TypeReference.Int))); 9622 } 9623 void code166(BURS_TreeNode p) { 9624 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)))); 9625 } 9626 void code167(BURS_TreeNode p) { 9627 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PR(p))))); 9628 EMIT_NonCommutative(IA32_SHR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int)); 9629 } 9630 void code168(BURS_TreeNode p) { 9631 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal2(P(p))))); 9632 EMIT_NonCommutative(IA32_SHR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int)); 9633 } 9634 void code169(BURS_TreeNode p) { 9635 if (VM.VerifyAssertions) VM._assert((VR(p) & 0x7FFFFFFF) <= 31); 9636 EMIT_NonCommutative(IA32_SHR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9637 } 9638 void code170(BURS_TreeNode p) { 9639 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p))))); 9640 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_S(P(p), DW), new RegisterOperand(getECX(), TypeReference.Int))); 9641 } 9642 void code171(BURS_TreeNode p) { 9643 if (VM.VerifyAssertions) VM._assert((VLR(p) & 0x7FFFFFFF) <= 31); 9644 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_S(P(p), DW), Binary.getVal2(PL(p)))); 9645 } 9646 void code172(BURS_TreeNode p) { 9647 EMIT(MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p)))); 9648 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_AS(P(p), DW_S, DW), new RegisterOperand(getECX(), TypeReference.Int))); 9649 } 9650 void code173(BURS_TreeNode p) { 9651 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)))); 9652 } 9653 void code174(BURS_TreeNode p) { 9654 EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(VLR(p)&0x1f)); 9655 } 9656 void code175(BURS_TreeNode p) { 9657 EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(VRR(p)&0x1f)); 9658 } 9659 void code176(BURS_TreeNode p) { 9660 EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(1)); 9661 } 9662 void code177(BURS_TreeNode p) { 9663 EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(1)); 9664 } 9665 void code178(BURS_TreeNode p) { 9666 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p))))); 9667 EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new RegisterOperand(getECX(), TypeReference.Int)); 9668 } 9669 void code179(BURS_TreeNode p) { 9670 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PRR(p))))); 9671 EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new RegisterOperand(getECX(), TypeReference.Int)); 9672 } 9673 void code180(BURS_TreeNode p) { 9674 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PRR(p))))); 9675 EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new RegisterOperand(getECX(), TypeReference.Int)); 9676 } 9677 void code181(BURS_TreeNode p) { 9678 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p))))); 9679 EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new RegisterOperand(getECX(), TypeReference.Int)); 9680 } 9681 void code182(BURS_TreeNode p) { 9682 EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9683 } 9684 void code183(BURS_TreeNode p) { 9685 EMIT(MIR_Test.mutate(P(p), IA32_TEST, Binary.getVal1(P(p)), Binary.getVal2(P(p)))); 9686 } 9687 void code184(BURS_TreeNode p) { 9688 EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 9689 } 9690 void code185(BURS_TreeNode p) { 9691 EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO()); 9692 } 9693 void code186(BURS_TreeNode p) { 9694 EMIT(MIR_Test.mutate(P(p), IA32_TEST, consumeMO(), Binary.getVal2(P(p)))); 9695 } 9696 void code187(BURS_TreeNode p) { 9697 EMIT(MIR_Test.mutate(P(p), IA32_TEST, consumeMO(), Binary.getVal1(P(p)))); 9698 } 9699 void code188(BURS_TreeNode p) { 9700 EMIT_Commutative(IA32_AND, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p)) ); 9701 } 9702 void code189(BURS_TreeNode p) { 9703 EMIT_Commutative(IA32_AND, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p)) ); 9704 } 9705 void code190(BURS_TreeNode p) { 9706 EMIT_Commutative(IA32_AND, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)) ); 9707 } 9708 void code191(BURS_TreeNode p) { 9709 EMIT_Commutative(IA32_AND, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p)) ); 9710 } 9711 void code192(BURS_TreeNode p) { 9712 EMIT_Commutative(IA32_OR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9713 } 9714 void code193(BURS_TreeNode p) { 9715 EMIT_Commutative(IA32_OR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO() ); 9716 } 9717 void code194(BURS_TreeNode p) { 9718 EMIT_Commutative(IA32_OR, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO() ); 9719 } 9720 void code195(BURS_TreeNode p) { 9721 EMIT_Commutative(IA32_OR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p)) ); 9722 } 9723 void code196(BURS_TreeNode p) { 9724 EMIT_Commutative(IA32_OR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p)) ); 9725 } 9726 void code197(BURS_TreeNode p) { 9727 EMIT_Commutative(IA32_OR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)) ); 9728 } 9729 void code198(BURS_TreeNode p) { 9730 EMIT_Commutative(IA32_OR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p)) ); 9731 } 9732 void code199(BURS_TreeNode p) { 9733 EMIT_Commutative(IA32_XOR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9734 } 9735 void code200(BURS_TreeNode p) { 9736 EMIT_Commutative(IA32_XOR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO() ); 9737 } 9738 void code201(BURS_TreeNode p) { 9739 EMIT_Commutative(IA32_XOR, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO() ); 9740 } 9741 void code202(BURS_TreeNode p) { 9742 EMIT_Commutative(IA32_XOR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p)) ); 9743 } 9744 void code203(BURS_TreeNode p) { 9745 EMIT_Commutative(IA32_XOR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p)) ); 9746 } 9747 void code204(BURS_TreeNode p) { 9748 EMIT_Commutative(IA32_XOR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)) ); 9749 } 9750 void code205(BURS_TreeNode p) { 9751 EMIT_Commutative(IA32_XOR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p)) ); 9752 } 9753 void code206(BURS_TreeNode p) { 9754 EMIT_Unary(IA32_NOT, P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); 9755 } 9756 void code207(BURS_TreeNode p) { 9757 EMIT_Unary(IA32_NOT, P(p), MO_S(P(p), DW), MO_S(P(p), DW)); 9758 } 9759 void code208(BURS_TreeNode p) { 9760 EMIT_Unary(IA32_NOT, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW)); 9761 } 9762 void code209(BURS_TreeNode p) { 9763 LONG_ADD(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9764 } 9765 void code210(BURS_TreeNode p) { 9766 LONG_SUB(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9767 } 9768 void code211(BURS_TreeNode p) { 9769 LONG_MUL(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9770 } 9771 void code212(BURS_TreeNode p) { 9772 LONG_NEG(P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); 9773 } 9774 void code213(BURS_TreeNode p) { 9775 LONG_SHL(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)), false); 9776 } 9777 void code214(BURS_TreeNode p) { 9778 if (VM.VerifyAssertions) VM._assert((VRR(p) & 0x7FFFFFFF) <= 63); 9779 LONG_SHL(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(PR(p)), true); 9780 } 9781 void code215(BURS_TreeNode p) { 9782 LONG_SHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)), false); 9783 } 9784 void code216(BURS_TreeNode p) { 9785 if (VM.VerifyAssertions) VM._assert((VRR(p) & 0x7FFFFFFF) <= 63); 9786 LONG_SHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(PR(p)), true); 9787 } 9788 void code217(BURS_TreeNode p) { 9789 LONG_USHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)), false); 9790 } 9791 void code218(BURS_TreeNode p) { 9792 if (VM.VerifyAssertions) VM._assert((VRR(p) & 0x7FFFFFFF) <= 63); 9793 LONG_USHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(PR(p)), true); 9794 } 9795 void code219(BURS_TreeNode p) { 9796 LONG_AND(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9797 } 9798 void code220(BURS_TreeNode p) { 9799 LONG_OR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9800 } 9801 void code221(BURS_TreeNode p) { 9802 LONG_XOR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 9803 } 9804 void code222(BURS_TreeNode p) { 9805 LONG_NOT(P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); 9806 } 9807 void code223(BURS_TreeNode p) { 9808 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Unary.getResult(P(p)), Unary.getVal(P(p)))); 9809 } 9810 void code224(BURS_TreeNode p) { 9811 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Unary.getResult(P(p)), consumeMO())); 9812 } 9813 void code225(BURS_TreeNode p) { 9814 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), B), Unary.getVal(PL(p)))); 9815 } 9816 void code226(BURS_TreeNode p) { 9817 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), B_S, B), Unary.getVal(PL(p)))); 9818 } 9819 void code227(BURS_TreeNode p) { 9820 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, Unary.getResult(P(p)), Unary.getVal(P(p))))); 9821 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_AND, Unary.getResult(P(p)).copyRO(), IC(0xFFFF))); 9822 } 9823 void code228(BURS_TreeNode p) { 9824 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Unary.getResult(P(p)), setSize(consumeMO(),2))); 9825 } 9826 void code229(BURS_TreeNode p) { 9827 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), Unary.getVal(PL(p)))); 9828 } 9829 void code230(BURS_TreeNode p) { 9830 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), Unary.getVal(PL(p)))); 9831 } 9832 void code231(BURS_TreeNode p) { 9833 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Unary.getResult(P(p)), Unary.getVal(P(p)))); 9834 } 9835 void code232(BURS_TreeNode p) { 9836 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Unary.getResult(P(p)), consumeMO())); 9837 } 9838 void code233(BURS_TreeNode p) { 9839 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), Unary.getVal(PL(p)))); 9840 } 9841 void code234(BURS_TreeNode p) { 9842 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), Unary.getVal(PL(p)))); 9843 } 9844 void code235(BURS_TreeNode p) { 9845 INT_2LONG(P(p), Unary.getResult(P(p)), Unary.getVal(P(p)), true); 9846 } 9847 void code236(BURS_TreeNode p) { 9848 INT_2LONG(P(p), Unary.getResult(P(p)), consumeMO(), true); 9849 } 9850 void code237(BURS_TreeNode p) { 9851 INT_2LONG(P(p), Binary.getResult(P(p)), Unary.getVal(PL(p)), false); 9852 } 9853 void code238(BURS_TreeNode p) { 9854 INT_2LONG(P(p), Binary.getResult(P(p)), consumeMO(), false); 9855 } 9856 void code239(BURS_TreeNode p) { 9857 Register hr = Binary.getResult(P(p)).getRegister(); 9858 Register lr = regpool.getSecondReg(hr); 9859 EMIT(MIR_Move.mutate(P(p), IA32_MOV, new RegisterOperand(hr, TypeReference.Int), Unary.getVal(PL(p)).copy())); 9860 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(lr, TypeReference.Int), IC(0)))); 9861 } 9862 void code240(BURS_TreeNode p) { 9863 Register hr = Binary.getResult(P(p)).getRegister(); 9864 Register lr = regpool.getSecondReg(hr); 9865 EMIT(MIR_Move.mutate(P(p), IA32_MOV, new RegisterOperand(hr, TypeReference.Int), setSize(consumeMO(),4))); 9866 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(lr, TypeReference.Int), IC(0)))); 9867 } 9868 void code241(BURS_TreeNode p) { 9869 INT_2LONG(P(p), Unary.getResult(P(p)), Unary.getVal(P(p)), false); 9870 } 9871 void code242(BURS_TreeNode p) { 9872 INT_2LONG(P(p), Unary.getResult(P(p)), consumeMO(), false); 9873 } 9874 void code243(BURS_TreeNode p) { 9875 Register lh = regpool.getSecondReg(R(Unary.getVal(P(p))).getRegister()); 9876 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), new RegisterOperand(lh, TypeReference.Int))); 9877 } 9878 void code244(BURS_TreeNode p) { 9879 Register lh = regpool.getSecondReg(R(Unary.getVal(PL(p))).getRegister()); 9880 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), new RegisterOperand(lh, TypeReference.Int))); 9881 } 9882 void code245(BURS_TreeNode p) { 9883 Register lh = regpool.getSecondReg(R(Unary.getVal(PL(p))).getRegister()); 9884 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), DW_S, DW), new RegisterOperand(lh, TypeReference.Int))); 9885 } 9886 void code246(BURS_TreeNode p) { 9887 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), setSize(consumeMO(),4))); 9888 } 9889 void code247(BURS_TreeNode p) { 9890 Register uh = Binary.getVal1(PL(p)).asRegister().getRegister(); 9891 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), new RegisterOperand(uh, TypeReference.Int))); 9892 } 9893 void code248(BURS_TreeNode p) { 9894 Register uh = Binary.getVal1(PL(p)).asRegister().getRegister(); 9895 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), new RegisterOperand(uh, TypeReference.Int))); 9896 } 9897 void code249(BURS_TreeNode p) { 9898 MemoryOperand mo = consumeMO(); 9899 mo.disp = mo.disp.plus(4); 9900 mo = setSize(mo,4); 9901 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), mo)); 9902 } 9903 void code250(BURS_TreeNode p) { 9904 MemoryOperand mo = consumeMO(); 9905 mo.disp = mo.disp.plus(4); 9906 mo = setSize(mo,4); 9907 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), mo)); 9908 } 9909 void code251(BURS_TreeNode p) { 9910 MemoryOperand mo = consumeMO(); 9911 mo.disp = mo.disp.plus(4); 9912 mo = setSize(mo,4); 9913 pushMO(mo); 9914 } 9915 void code252(BURS_TreeNode p) { 9916 MemoryOperand mo = consumeMO(); 9917 mo.disp = mo.disp.plus(4); 9918 mo = setSize(mo,4); 9919 pushMO(mo); 9920 } 9921 void code253(BURS_TreeNode p) { 9922 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Move.getResult(P(p)), Move.getVal(P(p)))); 9923 } 9924 void code254(BURS_TreeNode p) { 9925 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Move.getResult(P(p)), Move.getVal(P(p)))); 9926 } 9927 void code256(BURS_TreeNode p) { 9928 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Move.getResult(P(p)), Move.getVal(P(p)))); 9929 } 9930 void code269(BURS_TreeNode p) { 9931 Register res1 = Move.getResult(P(p)).getRegister(); 9932 Register res2 = regpool.getSecondReg(res1); 9933 Register val1 = Move.getVal(P(p)).asRegister().getRegister(); 9934 Register val2 = regpool.getSecondReg(val1); 9935 EMIT(MIR_Move.mutate(P(p), IA32_MOV, new RegisterOperand(res1, TypeReference.Int), 9936 new RegisterOperand(val1, TypeReference.Int))); 9937 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(res2, TypeReference.Int), 9938 new RegisterOperand(val2, TypeReference.Int)))); 9939 } 9940 void code270(BURS_TreeNode p) { 9941 Register res1 = Move.getResult(P(p)).getRegister(); 9942 Register res2 = regpool.getSecondReg(res1); 9943 LongConstantOperand val = LC(Move.getVal(P(p))); 9944 EMIT(MIR_Move.mutate(P(p), IA32_MOV, new RegisterOperand(res1, TypeReference.Int), IC(val.upper32()))); 9945 EMIT(CPOS(P(p),MIR_Move.create(IA32_MOV, new RegisterOperand(res2, TypeReference.Int), IC(val.lower32())))); 9946 } 9947 void code271(BURS_TreeNode p) { 9948 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Nullary.getResult(P(p)), new RegisterOperand(getESI(), TypeReference.Int))); 9949 } 9950 void code272(BURS_TreeNode p) { 9951 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Load.getResult(P(p)), MO_L(P(p), B))); 9952 } 9953 void code273(BURS_TreeNode p) { 9954 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, ALoad.getResult(P(p)), MO_AL(P(p), B_S, B))); 9955 } 9956 void code274(BURS_TreeNode p) { 9957 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, Load.getResult(P(p)), MO_L(P(p), B))); 9958 } 9959 void code275(BURS_TreeNode p) { 9960 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, ALoad.getResult(P(p)), MO_AL(P(p), B_S, B))); 9961 } 9962 void code276(BURS_TreeNode p) { 9963 pushMO(setSize(consumeMO(),1)); 9964 } 9965 void code277(BURS_TreeNode p) { 9966 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, Binary.getResult(P(p)), setSize(consumeMO(),1))); 9967 } 9968 void code278(BURS_TreeNode p) { 9969 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Unary.getResult(P(p)), setSize(consumeMO(),1))); 9970 } 9971 void code279(BURS_TreeNode p) { 9972 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, Binary.getResult(P(p)), setSize(consumeMO(),1))); 9973 } 9974 void code280(BURS_TreeNode p) { 9975 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Load.getResult(P(p)), MO_L(P(p), W))); 9976 } 9977 void code281(BURS_TreeNode p) { 9978 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, ALoad.getResult(P(p)), MO_AL(P(p), W_S, W))); 9979 } 9980 void code282(BURS_TreeNode p) { 9981 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Load.getResult(P(p)), MO_L(P(p), W))); 9982 } 9983 void code283(BURS_TreeNode p) { 9984 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, ALoad.getResult(P(p)), MO_AL(P(p), W_S, W))); 9985 } 9986 void code284(BURS_TreeNode p) { 9987 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Binary.getResult(P(p)), setSize(consumeMO(),2))); 9988 } 9989 void code285(BURS_TreeNode p) { 9990 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Unary.getResult(P(p)), setSize(consumeMO(),2))); 9991 } 9992 void code286(BURS_TreeNode p) { 9993 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Unary.getResult(P(p)), setSize(consumeMO(),2))); 9994 } 9995 void code287(BURS_TreeNode p) { 9996 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Binary.getResult(P(p)), setSize(consumeMO(),2))); 9997 } 9998 void code288(BURS_TreeNode p) { 9999 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)), MO_L(P(p), DW))); 10000 } 10001 void code289(BURS_TreeNode p) { 10002 augmentAddress(Load.getAddress(P(p))); 10003 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)), 10004 consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p))))); 10005 } 10006 void code290(BURS_TreeNode p) { 10007 augmentAddress(Load.getOffset(P(p))); 10008 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)), 10009 consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p))))); 10010 } 10011 void code291(BURS_TreeNode p) { 10012 combineAddresses(); 10013 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)), 10014 consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p))))); 10015 } 10016 void code292(BURS_TreeNode p) { 10017 combineAddresses(); 10018 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)), 10019 consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p))))); 10020 } 10021 void code293(BURS_TreeNode p) { 10022 augmentAddress(Load.getOffset(P(p))); 10023 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)), 10024 consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p))))); 10025 } 10026 void code294(BURS_TreeNode p) { 10027 EMIT(MIR_Move.mutate(P(p), IA32_MOV, ALoad.getResult(P(p)), MO_AL(P(p), DW_S, DW))); 10028 } 10029 void code295(BURS_TreeNode p) { 10030 RegisterOperand hres = Load.getResult(P(p)); 10031 RegisterOperand lres = new RegisterOperand(regpool.getSecondReg(hres.getRegister()), TypeReference.Int); 10032 hres.setType(TypeReference.Int); 10033 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, hres, MO_L(P(p), DW, DW).copy()))); 10034 EMIT(MIR_Move.mutate(P(p), IA32_MOV, lres, MO_L(P(p), DW))); 10035 } 10036 void code296(BURS_TreeNode p) { 10037 RegisterOperand hres = ALoad.getResult(P(p)); 10038 RegisterOperand lres = new RegisterOperand(regpool.getSecondReg(hres.getRegister()), TypeReference.Int); 10039 hres.setType(TypeReference.Int); 10040 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, hres, MO_AL(P(p), QW_S, DW, DW).copy()))); 10041 EMIT(MIR_Move.mutate(P(p), IA32_MOV, lres, MO_AL(P(p), QW_S, DW))); 10042 } 10043 void code297(BURS_TreeNode p) { 10044 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)), 10045 MO(Prepare.getAddress(P(p)), Prepare.getOffset(P(p)), DW, 10046 Prepare.getLocation(P(p)), Prepare.getGuard(P(p))))); 10047 } 10048 void code298(BURS_TreeNode p) { 10049 augmentAddress(Prepare.getAddress(P(p))); 10050 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)), 10051 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p))))); 10052 } 10053 void code299(BURS_TreeNode p) { 10054 augmentAddress(Prepare.getOffset(P(p))); 10055 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)), 10056 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p))))); 10057 } 10058 void code300(BURS_TreeNode p) { 10059 combineAddresses(); 10060 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)), 10061 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p))))); 10062 } 10063 void code301(BURS_TreeNode p) { 10064 combineAddresses(); 10065 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)), 10066 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p))))); 10067 } 10068 void code302(BURS_TreeNode p) { 10069 augmentAddress(Prepare.getOffset(P(p))); 10070 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)), 10071 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p))))); 10072 } 10073 void code303(BURS_TreeNode p) { 10074 augmentAddress(Prepare.getAddress(P(p))); 10075 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)), 10076 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p))))); 10077 } 10078 void code304(BURS_TreeNode p) { 10079 RegisterOperand hres = Prepare.getResult(P(p)); 10080 hres.setType(TypeReference.Int); 10081 MemoryOperand hmo = MO(Prepare.getAddress(P(p)), Prepare.getOffset(P(p)), DW, 10082 Prepare.getLocation(P(p)), Prepare.getGuard(P(p)), DW); 10083 RegisterOperand lres = new RegisterOperand(regpool.getSecondReg(hres.getRegister()), TypeReference.Int); 10084 MemoryOperand lmo = MO(Prepare.getAddress(P(p)) != null ? Prepare.getAddress(P(p)).copy() : null, 10085 Prepare.getOffset(P(p)) != null ? Prepare.getOffset(P(p)).copy() : null, 10086 DW, 10087 Prepare.getLocation(P(p)) != null ? (LocationOperand)Prepare.getLocation(P(p)).copy() : null, 10088 Prepare.getGuard(P(p)) != null ? Prepare.getGuard(P(p)).copy() : null); 10089 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, hres, hmo))); 10090 EMIT(MIR_Move.mutate(P(p), IA32_MOV, lres, lmo)); 10091 } 10092 void code305(BURS_TreeNode p) { 10093 ATTEMPT(Attempt.getResult(P(p)), 10094 MO(Attempt.getAddress(P(p)), Attempt.getOffset(P(p)), DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))), 10095 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p))); 10096 } 10097 void code306(BURS_TreeNode p) { 10098 augmentAddress(Attempt.getAddress(P(p))); 10099 ATTEMPT(Attempt.getResult(P(p)), 10100 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))), 10101 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p))); 10102 } 10103 void code307(BURS_TreeNode p) { 10104 augmentAddress(Attempt.getOffset(P(p))); 10105 ATTEMPT(Attempt.getResult(P(p)), 10106 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))), 10107 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p))); 10108 } 10109 void code308(BURS_TreeNode p) { 10110 combineAddresses(); 10111 ATTEMPT(Attempt.getResult(P(p)), 10112 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))), 10113 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p))); 10114 } 10115 void code309(BURS_TreeNode p) { 10116 combineAddresses(); 10117 ATTEMPT(Attempt.getResult(P(p)), 10118 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))), 10119 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p))); 10120 } 10121 void code310(BURS_TreeNode p) { 10122 augmentAddress(Attempt.getOffset(P(p))); 10123 ATTEMPT(Attempt.getResult(P(p)), 10124 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))), 10125 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p))); 10126 } 10127 void code311(BURS_TreeNode p) { 10128 augmentAddress(Attempt.getAddress(P(p))); 10129 ATTEMPT(Attempt.getResult(P(p)), 10130 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))), 10131 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p))); 10132 } 10133 void code312(BURS_TreeNode p) { 10134 ATTEMPT_IFCMP(MO(Attempt.getAddress(PL(p)), Attempt.getOffset(PL(p)), DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10135 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10136 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10137 } 10138 void code313(BURS_TreeNode p) { 10139 augmentAddress(Attempt.getAddress(PL(p))); 10140 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10141 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10142 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10143 } 10144 void code314(BURS_TreeNode p) { 10145 augmentAddress(Attempt.getOffset(PL(p))); 10146 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10147 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10148 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10149 } 10150 void code315(BURS_TreeNode p) { 10151 combineAddresses(); 10152 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10153 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10154 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10155 } 10156 void code316(BURS_TreeNode p) { 10157 combineAddresses(); 10158 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10159 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10160 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10161 } 10162 void code317(BURS_TreeNode p) { 10163 augmentAddress(Attempt.getOffset(PL(p))); 10164 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10165 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10166 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10167 } 10168 void code318(BURS_TreeNode p) { 10169 augmentAddress(Attempt.getAddress(PL(p))); 10170 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10171 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10172 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10173 } 10174 void code319(BURS_TreeNode p) { 10175 ATTEMPT_IFCMP(MO(Attempt.getAddress(PL(p)), Attempt.getOffset(PL(p)), DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10176 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10177 IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10178 } 10179 void code320(BURS_TreeNode p) { 10180 augmentAddress(Attempt.getAddress(PL(p))); 10181 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10182 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10183 IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10184 } 10185 void code321(BURS_TreeNode p) { 10186 augmentAddress(Attempt.getOffset(PL(p))); 10187 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10188 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10189 IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10190 } 10191 void code322(BURS_TreeNode p) { 10192 combineAddresses(); 10193 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10194 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10195 IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10196 } 10197 void code323(BURS_TreeNode p) { 10198 combineAddresses(); 10199 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10200 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10201 IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10202 } 10203 void code324(BURS_TreeNode p) { 10204 augmentAddress(Attempt.getOffset(PL(p))); 10205 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10206 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10207 IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10208 } 10209 void code325(BURS_TreeNode p) { 10210 augmentAddress(Attempt.getAddress(PL(p))); 10211 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))), 10212 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)), 10213 IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))); 10214 } 10215 void code326(BURS_TreeNode p) { 10216 ATTEMPT_LONG(Attempt.getResult(P(p)), 10217 MO(Attempt.getAddress(P(p)), Attempt.getOffset(P(p)), DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))), 10218 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p))); 10219 } 10220 void code327(BURS_TreeNode p) { 10221 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), B), Store.getValue(P(p)))); 10222 } 10223 void code328(BURS_TreeNode p) { 10224 Register tmp = regpool.getInteger(); 10225 EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), consumeMO()))); 10226 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), B), new RegisterOperand(tmp, TypeReference.Int))); 10227 } 10228 void code329(BURS_TreeNode p) { 10229 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), B_S, B), AStore.getValue(P(p)))); 10230 } 10231 void code330(BURS_TreeNode p) { 10232 Register tmp = regpool.getInteger(); 10233 EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), consumeMO()))); 10234 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), B_S, B), new RegisterOperand(tmp, TypeReference.Int))); 10235 } 10236 void code331(BURS_TreeNode p) { 10237 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), Store.getValue(P(p)))); 10238 } 10239 void code332(BURS_TreeNode p) { 10240 Register tmp = regpool.getInteger(); 10241 EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), consumeMO()))); 10242 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), new RegisterOperand(tmp, TypeReference.Int))); 10243 } 10244 void code333(BURS_TreeNode p) { 10245 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), AStore.getValue(P(p)))); 10246 } 10247 void code334(BURS_TreeNode p) { 10248 Register tmp = regpool.getInteger(); 10249 EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), consumeMO()))); 10250 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), new RegisterOperand(tmp, TypeReference.Int))); 10251 } 10252 void code335(BURS_TreeNode p) { 10253 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), Store.getValue(P(p)))); 10254 } 10255 void code336(BURS_TreeNode p) { 10256 augmentAddress(Store.getAddress(P(p))); 10257 EMIT(MIR_Move.mutate(P(p), IA32_MOV, 10258 consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))), 10259 Store.getValue(P(p)))); 10260 } 10261 void code337(BURS_TreeNode p) { 10262 augmentAddress(Store.getOffset(P(p))); 10263 EMIT(MIR_Move.mutate(P(p), IA32_MOV, 10264 consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))), 10265 Store.getValue(P(p)))); 10266 } 10267 void code338(BURS_TreeNode p) { 10268 combineAddresses(); 10269 EMIT(MIR_Move.mutate(P(p), IA32_MOV, 10270 consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))), 10271 Store.getValue(P(p)))); 10272 } 10273 void code339(BURS_TreeNode p) { 10274 combineAddresses(); 10275 EMIT(MIR_Move.mutate(P(p), IA32_MOV, 10276 consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))), 10277 Store.getValue(P(p)))); 10278 } 10279 void code340(BURS_TreeNode p) { 10280 augmentAddress(Store.getOffset(P(p))); 10281 EMIT(MIR_Move.mutate(P(p), IA32_MOV, 10282 consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))), 10283 Store.getValue(P(p)))); 10284 } 10285 void code341(BURS_TreeNode p) { 10286 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), DW_S, DW), AStore.getValue(P(p)))); 10287 } 10288 void code342(BURS_TreeNode p) { 10289 RegisterOperand hval = (RegisterOperand)Store.getValue(P(p)); 10290 hval.setType(TypeReference.Int); 10291 RegisterOperand lval = new RegisterOperand(regpool.getSecondReg(hval.getRegister()), TypeReference.Int); 10292 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_S(P(p), DW, DW).copy(), hval))); 10293 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), lval)); 10294 } 10295 void code343(BURS_TreeNode p) { 10296 LongConstantOperand val = LC(Store.getValue(P(p))); 10297 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_S(P(p), DW, DW).copy(), IC(val.upper32())))); 10298 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), IC(val.lower32()))); 10299 } 10300 void code344(BURS_TreeNode p) { 10301 RegisterOperand hval = (RegisterOperand)AStore.getValue(P(p)); 10302 hval.setType(TypeReference.Int); 10303 RegisterOperand lval = new RegisterOperand(regpool.getSecondReg(hval.getRegister()), TypeReference.Int); 10304 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_AS(P(p), QW_S, DW, DW).copy(), hval))); 10305 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), QW_S, DW), lval)); 10306 } 10307 void code345(BURS_TreeNode p) { 10308 LongConstantOperand val = LC(AStore.getValue(P(p))); 10309 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_AS(P(p), QW_S, DW, DW).copy(), IC(val.upper32())))); 10310 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), QW_S, DW), IC(val.lower32()))); 10311 } 10312 void code346(BURS_TreeNode p) { 10313 IFCMP(P(p), IfCmp.getGuardResult(P(p)), IfCmp.getVal1(P(p)), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p))); 10314 } 10315 void code347(BURS_TreeNode p) { 10316 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand()))); 10317 EMIT(CPOS(P(p), MIR_Test.create(IA32_TEST, IfCmp.getVal1(P(p)), IfCmp.getVal1(P(p)).copy()))); 10318 EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(IfCmp.getCond(P(p))), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)))); 10319 } 10320 void code348(BURS_TreeNode p) { 10321 IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p))); 10322 } 10323 void code349(BURS_TreeNode p) { 10324 IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p))); 10325 } 10326 void code350(BURS_TreeNode p) { 10327 IFCMP(P(p), IfCmp.getGuardResult(P(p)), IfCmp.getVal1(P(p)), consumeMO(), IfCmp.getCond(P(p))); 10328 } 10329 void code351(BURS_TreeNode p) { 10330 IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p))); 10331 } 10332 void code352(BURS_TreeNode p) { 10333 IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p))); 10334 } 10335 void code353(BURS_TreeNode p) { 10336 IFCMP(P(p), IfCmp.getGuardResult(P(p)), IfCmp.getVal1(P(p)), consumeMO(), IfCmp.getCond(P(p))); 10337 } 10338 void code354(BURS_TreeNode p) { 10339 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand()))); 10340 EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(consumeCOND()), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)))); 10341 } 10342 void code355(BURS_TreeNode p) { 10343 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand()))); 10344 EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(consumeCOND().flipCode()), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)))); 10345 } 10346 void code356(BURS_TreeNode p) { 10347 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand()))); 10348 EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(IfCmp.getCond(P(p))), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)))); 10349 } 10350 void code357(BURS_TreeNode p) { 10351 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand()))); 10352 EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(IfCmp.getCond(P(p))), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)))); 10353 } 10354 void code358(BURS_TreeNode p) { 10355 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand()))); 10356 EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(BIT_TEST(VR(p), IfCmp.getCond(P(p)))), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)))); 10357 } 10358 void code359(BURS_TreeNode p) { 10359 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp2.getGuardResult(P(p)), new TrueGuardOperand()))); 10360 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, IfCmp2.getVal1(P(p)), IfCmp2.getVal2(P(p))))); 10361 EMIT(MIR_CondBranch2.mutate(P(p), IA32_JCC2, 10362 COND(IfCmp2.getCond1(P(p))), IfCmp2.getTarget1(P(p)),IfCmp2.getBranchProfile1(P(p)), 10363 COND(IfCmp2.getCond2(P(p))), IfCmp2.getTarget2(P(p)), IfCmp2.getBranchProfile2(P(p)))); 10364 } 10365 void code360(BURS_TreeNode p) { 10366 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp2.getGuardResult(P(p)), new TrueGuardOperand()))); 10367 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), IfCmp2.getVal2(P(p))))); 10368 EMIT(MIR_CondBranch2.mutate(P(p), IA32_JCC2, 10369 COND(IfCmp2.getCond1(P(p))), IfCmp2.getTarget1(P(p)),IfCmp2.getBranchProfile1(P(p)), 10370 COND(IfCmp2.getCond2(P(p))), IfCmp2.getTarget2(P(p)), IfCmp2.getBranchProfile2(P(p)))); 10371 } 10372 void code361(BURS_TreeNode p) { 10373 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp2.getGuardResult(P(p)), new TrueGuardOperand()))); 10374 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), IfCmp2.getVal1(P(p))))); 10375 EMIT(MIR_CondBranch2.mutate(P(p), IA32_JCC2, 10376 COND(IfCmp2.getCond1(P(p)).flipOperands()), IfCmp2.getTarget1(P(p)),IfCmp2.getBranchProfile1(P(p)), 10377 COND(IfCmp2.getCond2(P(p)).flipOperands()), IfCmp2.getTarget2(P(p)), IfCmp2.getBranchProfile2(P(p)))); 10378 } 10379 void code362(BURS_TreeNode p) { 10380 EMIT(P(p)); // Leave for ComplexLIR2MIRExpansion 10381 } 10382 void code363(BURS_TreeNode p) { 10383 LONG_CMP(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 10384 } 10385 void code364(BURS_TreeNode p) { 10386 EMIT(MIR_Branch.mutate(P(p), IA32_JMP, Goto.getTarget(P(p)))); 10387 } 10388 void code365(BURS_TreeNode p) { 10389 EMIT(MIR_CacheOp.mutate(P(p), IA32_PREFETCHNTA, R(CacheOp.getRef(P(p))))); 10390 } 10391 void code366(BURS_TreeNode p) { 10392 EMIT(P(p)); // Pass through to maintain barrier semantics for code motion 10393 } 10394 void code367(BURS_TreeNode p) { 10395 EMIT(P(p)); // Pass through to maintain barrier semantics for code motion 10396 } 10397 void code368(BURS_TreeNode p) { 10398 EMIT(MIR_Empty.mutate(P(p), IA32_MFENCE)); 10399 } 10400 void code369(BURS_TreeNode p) { 10401 EMIT(MIR_Empty.mutate(P(p), IA32_PAUSE)); 10402 } 10403 void code370(BURS_TreeNode p) { 10404 EMIT(MIR_Return.mutate(P(p), IA32_RET, null, null, null)); 10405 } 10406 void code371(BURS_TreeNode p) { 10407 EMIT(MIR_Return.mutate(P(p), IA32_RET, null, Return.getVal(P(p)), null)); 10408 } 10409 void code372(BURS_TreeNode p) { 10410 RegisterOperand ret = R(Return.getVal(P(p))); 10411 RegisterOperand ret2 = null; 10412 if (ret.getType().isLongType()) { 10413 ret.setType(TypeReference.Int); 10414 ret2 = new RegisterOperand(regpool.getSecondReg(ret.getRegister()), TypeReference.Int); 10415 } 10416 EMIT(MIR_Return.mutate(P(p), IA32_RET, null, ret, ret2)); 10417 } 10418 void code373(BURS_TreeNode p) { 10419 LongConstantOperand val = LC(Return.getVal(P(p))); 10420 EMIT(MIR_Return.mutate(P(p), IA32_RET, null, IC(val.upper32()), IC(val.lower32()))); 10421 } 10422 void code374(BURS_TreeNode p) { 10423 CALL(P(p), Call.getAddress(P(p))); 10424 } 10425 void code375(BURS_TreeNode p) { 10426 CALL(P(p), Call.getAddress(P(p))); 10427 } 10428 void code376(BURS_TreeNode p) { 10429 CALL(P(p), MO_L(PL(p), DW)); 10430 } 10431 void code377(BURS_TreeNode p) { 10432 RegisterOperand temp = regpool.makeTemp(TypeReference.Int); 10433 EMIT(MIR_Move.create(IA32_MOV, temp, Call.getAddress(P(p)))); 10434 CALL(P(p), temp.copyRO()); 10435 } 10436 void code378(BURS_TreeNode p) { 10437 SYSCALL(P(p), Call.getAddress(P(p))); 10438 } 10439 void code379(BURS_TreeNode p) { 10440 SYSCALL(P(p), MO_L(PL(p), DW)); 10441 } 10442 void code380(BURS_TreeNode p) { 10443 RegisterOperand temp = regpool.makeTemp(TypeReference.Int); 10444 EMIT(MIR_Move.create(IA32_MOV, temp, Call.getAddress(P(p)))); 10445 SYSCALL(P(p), temp.copyRO()); 10446 } 10447 void code381(BURS_TreeNode p) { 10448 GET_TIME_BASE(P(p), Nullary.getResult(P(p))); 10449 } 10450 void code382(BURS_TreeNode p) { 10451 OSR(burs, P(p)); 10452 } 10453 void code383(BURS_TreeNode p) { 10454 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), Binary.getVal1(PLR(p)).copy())); 10455 } 10456 void code384(BURS_TreeNode p) { 10457 Register tmp = regpool.getInteger(); 10458 if (VM.VerifyAssertions) VM._assert((VLRR(p) & 0x7FFFFFFF) <= 31); 10459 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), Binary.getVal1(PLR(p))))); 10460 EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new RegisterOperand(tmp, TypeReference.Int), IC(VLRR(p))))); 10461 EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new RegisterOperand(tmp, TypeReference.Int))); 10462 } 10463 void code385(BURS_TreeNode p) { 10464 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), IC(VLR(p)))); 10465 } 10466 void code386(BURS_TreeNode p) { 10467 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), Binary.getVal1(PLR(p)).copy())); 10468 } 10469 void code387(BURS_TreeNode p) { 10470 Register tmp = regpool.getInteger(); 10471 if (VM.VerifyAssertions) VM._assert((VLRR(p) & 0x7FFFFFFF) <= 31); 10472 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), Binary.getVal1(PLR(p))))); 10473 EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new RegisterOperand(tmp, TypeReference.Int), IC(VLRR(p))))); 10474 EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new RegisterOperand(tmp, TypeReference.Int))); 10475 } 10476 void code388(BURS_TreeNode p) { 10477 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), IC(VLR(p)))); 10478 } 10479 void code389(BURS_TreeNode p) { 10480 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal2(P(p)), Binary.getVal1(PLR(p)).copy())); 10481 } 10482 void code390(BURS_TreeNode p) { 10483 Register tmp = regpool.getInteger(); 10484 if (VM.VerifyAssertions) VM._assert((VLRR(p) & 0x7FFFFFFF) <= 31); 10485 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), Binary.getVal1(PLR(p))))); 10486 EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new RegisterOperand(tmp, TypeReference.Int), IC(VLRR(p))))); 10487 EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new RegisterOperand(tmp, TypeReference.Int))); 10488 } 10489 void code391(BURS_TreeNode p) { 10490 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(P(p)), Binary.getVal1(PRR(p)).copy())); 10491 } 10492 void code392(BURS_TreeNode p) { 10493 Register tmp = regpool.getInteger(); 10494 if (VM.VerifyAssertions) VM._assert((VRRR(p) & 0x7FFFFFFF) <= 31); 10495 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), Binary.getVal1(PRR(p))))); 10496 EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new RegisterOperand(tmp, TypeReference.Int), IC(VRRR(p))))); 10497 EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new RegisterOperand(tmp, TypeReference.Int))); 10498 } 10499 void code393(BURS_TreeNode p) { 10500 SSE2_COP(IA32_ADDSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 10501 } 10502 void code394(BURS_TreeNode p) { 10503 SSE2_COP(IA32_ADDSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 10504 } 10505 void code395(BURS_TreeNode p) { 10506 SSE2_COP(IA32_ADDSS, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO()); 10507 } 10508 void code396(BURS_TreeNode p) { 10509 SSE2_COP(IA32_ADDSD, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), Binary.getVal1(P(p))); 10510 } 10511 void code397(BURS_TreeNode p) { 10512 SSE2_COP(IA32_ADDSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 10513 } 10514 void code398(BURS_TreeNode p) { 10515 SSE2_COP(IA32_ADDSD, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO()); 10516 } 10517 void code399(BURS_TreeNode p) { 10518 SSE2_NCOP(IA32_SUBSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 10519 } 10520 void code400(BURS_TreeNode p) { 10521 SSE2_NCOP(IA32_SUBSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 10522 } 10523 void code401(BURS_TreeNode p) { 10524 SSE2_NCOP(IA32_SUBSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 10525 } 10526 void code402(BURS_TreeNode p) { 10527 SSE2_NCOP(IA32_SUBSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 10528 } 10529 void code403(BURS_TreeNode p) { 10530 SSE2_COP(IA32_MULSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 10531 } 10532 void code404(BURS_TreeNode p) { 10533 SSE2_COP(IA32_MULSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 10534 } 10535 void code405(BURS_TreeNode p) { 10536 SSE2_COP(IA32_MULSS, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO()); 10537 } 10538 void code406(BURS_TreeNode p) { 10539 SSE2_COP(IA32_MULSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 10540 } 10541 void code407(BURS_TreeNode p) { 10542 SSE2_COP(IA32_MULSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 10543 } 10544 void code408(BURS_TreeNode p) { 10545 SSE2_COP(IA32_MULSD, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO()); 10546 } 10547 void code409(BURS_TreeNode p) { 10548 SSE2_NCOP(IA32_DIVSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 10549 } 10550 void code410(BURS_TreeNode p) { 10551 SSE2_NCOP(IA32_DIVSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 10552 } 10553 void code411(BURS_TreeNode p) { 10554 SSE2_NCOP(IA32_DIVSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p))); 10555 } 10556 void code412(BURS_TreeNode p) { 10557 SSE2_NCOP(IA32_DIVSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO()); 10558 } 10559 void code413(BURS_TreeNode p) { 10560 SSE2_NEG(true, P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); 10561 } 10562 void code414(BURS_TreeNode p) { 10563 SSE2_NEG(false, P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); 10564 } 10565 void code415(BURS_TreeNode p) { 10566 EMIT(MIR_Unary.mutate(P(p), IA32_SQRTSS, Unary.getResult(P(p)), Unary.getVal(P(p)))); 10567 } 10568 void code416(BURS_TreeNode p) { 10569 EMIT(MIR_Unary.mutate(P(p), IA32_SQRTSD, Unary.getResult(P(p)), Unary.getVal(P(p)))); 10570 } 10571 void code417(BURS_TreeNode p) { 10572 SSE2_X87_REM(P(p)); 10573 } 10574 void code418(BURS_TreeNode p) { 10575 SSE2_X87_REM(P(p)); 10576 } 10577 void code419(BURS_TreeNode p) { 10578 SSE2_X87_FROMLONG(P(p)); 10579 } 10580 void code420(BURS_TreeNode p) { 10581 SSE2_X87_FROMLONG(P(p)); 10582 } 10583 void code421(BURS_TreeNode p) { 10584 EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, Move.getResult(P(p)), Move.getVal(P(p)))); 10585 } 10586 void code422(BURS_TreeNode p) { 10587 EMIT(MIR_Move.mutate(P(p), IA32_MOVSD, Move.getResult(P(p)), Move.getVal(P(p)))); 10588 } 10589 void code423(BURS_TreeNode p) { 10590 EMIT(MIR_Move.mutate(P(p), IA32_MOVLPD, Load.getResult(P(p)), MO_L(P(p), QW))); 10591 } 10592 void code424(BURS_TreeNode p) { 10593 pushMO(MO_L(P(p), QW)); 10594 } 10595 void code425(BURS_TreeNode p) { 10596 EMIT(MIR_Move.mutate(P(p), IA32_MOVLPD, ALoad.getResult(P(p)), MO_AL(P(p), QW_S, QW))); 10597 } 10598 void code426(BURS_TreeNode p) { 10599 pushMO(MO_AL(P(p), QW_S, QW)); 10600 } 10601 void code427(BURS_TreeNode p) { 10602 EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, Load.getResult(P(p)), MO_L(P(p), DW))); 10603 } 10604 void code428(BURS_TreeNode p) { 10605 pushMO(MO_L(P(p), DW)); 10606 } 10607 void code429(BURS_TreeNode p) { 10608 EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, ALoad.getResult(P(p)), MO_AL(P(p), DW_S, DW))); 10609 } 10610 void code430(BURS_TreeNode p) { 10611 pushMO(MO_AL(P(p), DW_S, DW)); 10612 } 10613 void code431(BURS_TreeNode p) { 10614 EMIT(MIR_Move.mutate(P(p), IA32_MOVLPD, MO_S(P(p), QW), Store.getValue(P(p)))); 10615 } 10616 void code432(BURS_TreeNode p) { 10617 EMIT(MIR_Move.mutate(P(p), IA32_MOVLPD, MO_AS(P(p), QW_S, QW), AStore.getValue(P(p)))); 10618 } 10619 void code433(BURS_TreeNode p) { 10620 EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, MO_S(P(p), DW), Store.getValue(P(p)))); 10621 } 10622 void code434(BURS_TreeNode p) { 10623 EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, MO_AS(P(p), DW_S, DW), AStore.getValue(P(p)))); 10624 } 10625 void code435(BURS_TreeNode p) { 10626 SSE2_CONV(IA32_CVTSI2SS, P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); 10627 } 10628 void code436(BURS_TreeNode p) { 10629 SSE2_CONV(IA32_CVTSI2SS, P(p), Unary.getResult(P(p)), consumeMO()); 10630 } 10631 void code437(BURS_TreeNode p) { 10632 SSE2_CONV(IA32_CVTSI2SD, P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); 10633 } 10634 void code438(BURS_TreeNode p) { 10635 SSE2_CONV(IA32_CVTSI2SD, P(p), Unary.getResult(P(p)), consumeMO()); 10636 } 10637 void code439(BURS_TreeNode p) { 10638 SSE2_CONV(IA32_CVTSS2SD, P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); 10639 } 10640 void code440(BURS_TreeNode p) { 10641 SSE2_CONV(IA32_CVTSS2SD, P(p), Unary.getResult(P(p)), consumeMO()); 10642 } 10643 void code441(BURS_TreeNode p) { 10644 SSE2_CONV(IA32_CVTSD2SS, P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); 10645 } 10646 void code442(BURS_TreeNode p) { 10647 SSE2_CONV(IA32_CVTSD2SS, P(p), Unary.getResult(P(p)), consumeMO()); 10648 } 10649 void code443(BURS_TreeNode p) { 10650 EMIT(P(p)); /* leave for complex operators */ 10651 } 10652 void code444(BURS_TreeNode p) { 10653 EMIT(P(p)); /* leave for complex operators */ 10654 } 10655 void code445(BURS_TreeNode p) { 10656 EMIT(P(p)); /* leave for complex operators */ 10657 } 10658 void code446(BURS_TreeNode p) { 10659 EMIT(P(p)); /* leave for complex operators */ 10660 } 10661 void code447(BURS_TreeNode p) { 10662 SSE2_FPR2GPR_32(P(p)); 10663 } 10664 void code449(BURS_TreeNode p) { 10665 SSE2_FPR2GPR_64(P(p)); 10666 } 10667 void code451(BURS_TreeNode p) { 10668 SSE2_GPR2FPR_32(P(p)); 10669 } 10670 void code453(BURS_TreeNode p) { 10671 SSE2_GPR2FPR_64(P(p)); 10672 } 10673 void code455(BURS_TreeNode p) { 10674 SSE2_FPCONSTANT(P(p)); 10675 } 10676 void code456(BURS_TreeNode p) { 10677 pushMO(MO_MC(P(p))); 10678 } 10679 void code457(BURS_TreeNode p) { 10680 pushMO(MO_MC(P(p))); 10681 } 10682 void code458(BURS_TreeNode p) { 10683 EMIT(MIR_Empty.mutate(P(p), IA32_FNINIT)); 10684 } 10685 void code459(BURS_TreeNode p) { 10686 SSE2_IFCMP(IA32_UCOMISS, P(p), IfCmp.getClearVal1(P(p)), IfCmp.getClearVal2(P(p))); 10687 } 10688 void code460(BURS_TreeNode p) { 10689 SSE2_IFCMP(IA32_UCOMISS, P(p), IfCmp.getClearVal1(P(p)), consumeMO()); 10690 } 10691 void code461(BURS_TreeNode p) { 10692 IfCmp.getCond(P(p)).flipOperands(); SSE2_IFCMP(IA32_UCOMISS, P(p), IfCmp.getClearVal2(P(p)), consumeMO()); 10693 } 10694 void code462(BURS_TreeNode p) { 10695 SSE2_IFCMP(IA32_UCOMISD, P(p), IfCmp.getClearVal1(P(p)), IfCmp.getClearVal2(P(p))); 10696 } 10697 void code463(BURS_TreeNode p) { 10698 SSE2_IFCMP(IA32_UCOMISD, P(p), IfCmp.getClearVal1(P(p)), consumeMO()); 10699 } 10700 void code464(BURS_TreeNode p) { 10701 IfCmp.getCond(P(p)).flipOperands(); SSE2_IFCMP(IA32_UCOMISD, P(p), IfCmp.getClearVal2(P(p)), consumeMO()); 10702 } 10703 void code465(BURS_TreeNode p) { 10704 EMIT(CPOS(P(p), MIR_Compare.create(CondMove.getVal1(P(p)).isFloat() ? IA32_UCOMISS : IA32_UCOMISD, CondMove.getVal1(P(p)), CondMove.getVal2(P(p))))); CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).translateUNSIGNED(), CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 10705 } 10706 void code466(BURS_TreeNode p) { 10707 EMIT(CPOS(P(p), MIR_Compare.create(IA32_UCOMISS, CondMove.getVal1(P(p)), consumeMO()))); CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).translateUNSIGNED(), CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 10708 } 10709 void code467(BURS_TreeNode p) { 10710 EMIT(CPOS(P(p), MIR_Compare.create(IA32_UCOMISD, CondMove.getVal1(P(p)), consumeMO()))); CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).translateUNSIGNED(), CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 10711 } 10712 void code468(BURS_TreeNode p) { 10713 CondMove.getCond(P(p)).flipOperands(); EMIT(CPOS(P(p), MIR_Compare.create(IA32_UCOMISS, CondMove.getVal1(P(p)), consumeMO()))); CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).translateUNSIGNED(), CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 10714 } 10715 void code469(BURS_TreeNode p) { 10716 CondMove.getCond(P(p)).flipOperands(); EMIT(CPOS(P(p), MIR_Compare.create(IA32_UCOMISD, CondMove.getVal1(P(p)), consumeMO()))); CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).translateUNSIGNED(), CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 10717 } 10718 void code470(BURS_TreeNode p) { 10719 SSE2_FCMP_FCMOV(P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), CondMove.getVal2(P(p)), CondMove.getCond(P(p)), CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); 10720 } 10721 void code471(BURS_TreeNode p) { 10722 SSE2_FCMP_FCMOV(P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), CondMove.getVal2(P(p)), CondMove.getCond(P(p)), CondMove.getTrueValue(P(p)), consumeMO()); 10723 } 10724 void code472(BURS_TreeNode p) { 10725 SSE2_FCMP_FCMOV(P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), CondMove.getVal2(P(p)), CondMove.getCond(P(p)), CondMove.getTrueValue(P(p)), consumeMO()); 10726 } 10727 void code473(BURS_TreeNode p) { 10728 SSE2_FCMP_FCMOV(P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), CondMove.getVal2(P(p)), CondMove.getCond(P(p)), consumeMO(), CondMove.getFalseValue(P(p))); 10729 } 10730 void code474(BURS_TreeNode p) { 10731 SSE2_FCMP_FCMOV(P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), CondMove.getVal2(P(p)), CondMove.getCond(P(p)), consumeMO(), CondMove.getFalseValue(P(p))); 10732 } 10733 void code475(BURS_TreeNode p) { 10734 SSE2_FCMP_FCMOV(P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), consumeMO(), CondMove.getCond(P(p)), CondMove.getFalseValue(P(p)), CondMove.getTrueValue(P(p))); 10735 } 10736 void code476(BURS_TreeNode p) { 10737 SSE2_FCMP_FCMOV(P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), consumeMO(), CondMove.getCond(P(p)), CondMove.getFalseValue(P(p)), CondMove.getTrueValue(P(p))); 10738 } 10739 void code477(BURS_TreeNode p) { 10740 SSE2_ABS(true, P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p))); 10741 } 10742 void code478(BURS_TreeNode p) { 10743 SSE2_ABS(true, P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p))); 10744 } 10745 void code479(BURS_TreeNode p) { 10746 SSE2_ABS(true, P(p), CondMove.getResult(P(p)), CondMove.getVal2(P(p))); 10747 } 10748 void code480(BURS_TreeNode p) { 10749 SSE2_ABS(true, P(p), CondMove.getResult(P(p)), CondMove.getVal2(P(p))); 10750 } 10751 void code481(BURS_TreeNode p) { 10752 SSE2_ABS(false, P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p))); 10753 } 10754 void code482(BURS_TreeNode p) { 10755 SSE2_ABS(false, P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p))); 10756 } 10757 void code483(BURS_TreeNode p) { 10758 SSE2_ABS(false, P(p), CondMove.getResult(P(p)), CondMove.getVal2(P(p))); 10759 } 10760 void code484(BURS_TreeNode p) { 10761 SSE2_ABS(false, P(p), CondMove.getResult(P(p)), CondMove.getVal2(P(p))); 10762 } 10763 void code485(BURS_TreeNode p) { 10764 RegisterOperand temp = regpool.makeTemp(TypeReference.Double); EMIT(MIR_Move.mutate(PL(p), IA32_MOVQ, temp, consumeMO())); EMIT(MIR_Move.mutate(P(p), IA32_MOVQ, MO_AS(P(p), QW_S, QW), temp.copyRO())); 10765 } 10766 void code486(BURS_TreeNode p) { 10767 RegisterOperand temp = regpool.makeTemp(TypeReference.Double); EMIT(MIR_Move.mutate(PL(p), IA32_MOVQ, temp, consumeMO())); EMIT(MIR_Move.mutate(P(p), IA32_MOVQ, MO_S(P(p), QW), temp.copyRO())); 10768 } 10769 10770 public void code(BURS_TreeNode p, int n, int ruleno) { 10771 switch(ruleno) { 10772 case 16: code16(p); break; 10773 case 17: code17(p); break; 10774 case 18: code18(p); break; 10775 case 19: code19(p); break; 10776 case 22: code22(p); break; 10777 case 23: code23(p); break; 10778 case 24: code24(p); break; 10779 case 25: code25(p); break; 10780 case 28: code28(p); break; 10781 case 29: code29(p); break; 10782 case 34: code34(p); break; 10783 case 35: code35(p); break; 10784 case 38: code38(p); break; 10785 case 39: code39(p); break; 10786 case 40: code40(p); break; 10787 case 41: code41(p); break; 10788 case 42: code42(p); break; 10789 case 43: code43(p); break; 10790 case 44: code44(p); break; 10791 case 45: code45(p); break; 10792 case 46: code46(p); break; 10793 case 47: code47(p); break; 10794 case 48: code48(p); break; 10795 case 49: code49(p); break; 10796 case 50: code50(p); break; 10797 case 51: code51(p); break; 10798 case 52: code52(p); break; 10799 case 53: code53(p); break; 10800 case 54: code54(p); break; 10801 case 55: code55(p); break; 10802 case 56: code56(p); break; 10803 case 57: code57(p); break; 10804 case 58: code58(p); break; 10805 case 59: code59(p); break; 10806 case 60: code60(p); break; 10807 case 61: code61(p); break; 10808 case 62: code62(p); break; 10809 case 64: code64(p); break; 10810 case 65: code65(p); break; 10811 case 66: code66(p); break; 10812 case 67: code67(p); break; 10813 case 68: code68(p); break; 10814 case 69: code69(p); break; 10815 case 70: code70(p); break; 10816 case 71: code71(p); break; 10817 case 72: code72(p); break; 10818 case 73: code73(p); break; 10819 case 74: code74(p); break; 10820 case 75: code75(p); break; 10821 case 76: code76(p); break; 10822 case 77: code77(p); break; 10823 case 78: code78(p); break; 10824 case 79: code79(p); break; 10825 case 80: code80(p); break; 10826 case 81: code81(p); break; 10827 case 82: code82(p); break; 10828 case 83: code83(p); break; 10829 case 84: code84(p); break; 10830 case 85: code85(p); break; 10831 case 86: code86(p); break; 10832 case 87: code87(p); break; 10833 case 88: code88(p); break; 10834 case 89: code89(p); break; 10835 case 90: code90(p); break; 10836 case 91: code91(p); break; 10837 case 92: code92(p); break; 10838 case 93: code93(p); break; 10839 case 94: code94(p); break; 10840 case 96: code96(p); break; 10841 case 97: code97(p); break; 10842 case 98: code98(p); break; 10843 case 99: code99(p); break; 10844 case 100: code100(p); break; 10845 case 101: code101(p); break; 10846 case 102: code102(p); break; 10847 case 103: code103(p); break; 10848 case 104: code104(p); break; 10849 case 105: code105(p); break; 10850 case 106: code106(p); break; 10851 case 107: code107(p); break; 10852 case 108: code108(p); break; 10853 case 109: code109(p); break; 10854 case 110: code110(p); break; 10855 case 111: code111(p); break; 10856 case 112: code112(p); break; 10857 case 113: code113(p); break; 10858 case 114: code114(p); break; 10859 case 115: code115(p); break; 10860 case 116: code116(p); break; 10861 case 117: code117(p); break; 10862 case 118: code118(p); break; 10863 case 119: code119(p); break; 10864 case 120: code120(p); break; 10865 case 121: code121(p); break; 10866 case 122: code122(p); break; 10867 case 123: code123(p); break; 10868 case 124: code124(p); break; 10869 case 125: code125(p); break; 10870 case 126: code126(p); break; 10871 case 127: code127(p); break; 10872 case 128: code128(p); break; 10873 case 129: code129(p); break; 10874 case 130: code130(p); break; 10875 case 131: code131(p); break; 10876 case 132: code132(p); break; 10877 case 133: code133(p); break; 10878 case 134: code134(p); break; 10879 case 135: code135(p); break; 10880 case 136: code136(p); break; 10881 case 137: code137(p); break; 10882 case 138: code138(p); break; 10883 case 139: code139(p); break; 10884 case 140: code140(p); break; 10885 case 141: code141(p); break; 10886 case 142: code142(p); break; 10887 case 143: code143(p); break; 10888 case 144: code144(p); break; 10889 case 145: code145(p); break; 10890 case 146: code146(p); break; 10891 case 147: code147(p); break; 10892 case 148: code148(p); break; 10893 case 149: code149(p); break; 10894 case 150: code150(p); break; 10895 case 151: code151(p); break; 10896 case 152: code152(p); break; 10897 case 153: code153(p); break; 10898 case 154: code154(p); break; 10899 case 155: code155(p); break; 10900 case 156: code156(p); break; 10901 case 157: code157(p); break; 10902 case 158: code158(p); break; 10903 case 159: code159(p); break; 10904 case 160: code160(p); break; 10905 case 161: code161(p); break; 10906 case 162: code162(p); break; 10907 case 163: code163(p); break; 10908 case 164: code164(p); break; 10909 case 165: code165(p); break; 10910 case 166: code166(p); break; 10911 case 167: code167(p); break; 10912 case 168: code168(p); break; 10913 case 169: code169(p); break; 10914 case 170: code170(p); break; 10915 case 171: code171(p); break; 10916 case 172: code172(p); break; 10917 case 173: code173(p); break; 10918 case 174: code174(p); break; 10919 case 175: code175(p); break; 10920 case 176: code176(p); break; 10921 case 177: code177(p); break; 10922 case 178: code178(p); break; 10923 case 179: code179(p); break; 10924 case 180: code180(p); break; 10925 case 181: code181(p); break; 10926 case 182: code182(p); break; 10927 case 183: code183(p); break; 10928 case 184: code184(p); break; 10929 case 185: code185(p); break; 10930 case 186: code186(p); break; 10931 case 187: code187(p); break; 10932 case 188: code188(p); break; 10933 case 189: code189(p); break; 10934 case 190: code190(p); break; 10935 case 191: code191(p); break; 10936 case 192: code192(p); break; 10937 case 193: code193(p); break; 10938 case 194: code194(p); break; 10939 case 195: code195(p); break; 10940 case 196: code196(p); break; 10941 case 197: code197(p); break; 10942 case 198: code198(p); break; 10943 case 199: code199(p); break; 10944 case 200: code200(p); break; 10945 case 201: code201(p); break; 10946 case 202: code202(p); break; 10947 case 203: code203(p); break; 10948 case 204: code204(p); break; 10949 case 205: code205(p); break; 10950 case 206: code206(p); break; 10951 case 207: code207(p); break; 10952 case 208: code208(p); break; 10953 case 209: code209(p); break; 10954 case 210: code210(p); break; 10955 case 211: code211(p); break; 10956 case 212: code212(p); break; 10957 case 213: code213(p); break; 10958 case 214: code214(p); break; 10959 case 215: code215(p); break; 10960 case 216: code216(p); break; 10961 case 217: code217(p); break; 10962 case 218: code218(p); break; 10963 case 219: code219(p); break; 10964 case 220: code220(p); break; 10965 case 221: code221(p); break; 10966 case 222: code222(p); break; 10967 case 223: code223(p); break; 10968 case 224: code224(p); break; 10969 case 225: code225(p); break; 10970 case 226: code226(p); break; 10971 case 227: code227(p); break; 10972 case 228: code228(p); break; 10973 case 229: code229(p); break; 10974 case 230: code230(p); break; 10975 case 231: code231(p); break; 10976 case 232: code232(p); break; 10977 case 233: code233(p); break; 10978 case 234: code234(p); break; 10979 case 235: code235(p); break; 10980 case 236: code236(p); break; 10981 case 237: code237(p); break; 10982 case 238: code238(p); break; 10983 case 239: code239(p); break; 10984 case 240: code240(p); break; 10985 case 241: code241(p); break; 10986 case 242: code242(p); break; 10987 case 243: code243(p); break; 10988 case 244: code244(p); break; 10989 case 245: code245(p); break; 10990 case 246: code246(p); break; 10991 case 247: code247(p); break; 10992 case 248: code248(p); break; 10993 case 249: code249(p); break; 10994 case 250: code250(p); break; 10995 case 251: code251(p); break; 10996 case 252: code252(p); break; 10997 case 253: code253(p); break; 10998 case 254: code254(p); break; 10999 case 256: code256(p); break; 11000 case 269: code269(p); break; 11001 case 270: code270(p); break; 11002 case 271: code271(p); break; 11003 case 272: code272(p); break; 11004 case 273: code273(p); break; 11005 case 274: code274(p); break; 11006 case 275: code275(p); break; 11007 case 276: code276(p); break; 11008 case 277: code277(p); break; 11009 case 278: code278(p); break; 11010 case 279: code279(p); break; 11011 case 280: code280(p); break; 11012 case 281: code281(p); break; 11013 case 282: code282(p); break; 11014 case 283: code283(p); break; 11015 case 284: code284(p); break; 11016 case 285: code285(p); break; 11017 case 286: code286(p); break; 11018 case 287: code287(p); break; 11019 case 288: code288(p); break; 11020 case 289: code289(p); break; 11021 case 290: code290(p); break; 11022 case 291: code291(p); break; 11023 case 292: code292(p); break; 11024 case 293: code293(p); break; 11025 case 294: code294(p); break; 11026 case 295: code295(p); break; 11027 case 296: code296(p); break; 11028 case 297: code297(p); break; 11029 case 298: code298(p); break; 11030 case 299: code299(p); break; 11031 case 300: code300(p); break; 11032 case 301: code301(p); break; 11033 case 302: code302(p); break; 11034 case 303: code303(p); break; 11035 case 304: code304(p); break; 11036 case 305: code305(p); break; 11037 case 306: code306(p); break; 11038 case 307: code307(p); break; 11039 case 308: code308(p); break; 11040 case 309: code309(p); break; 11041 case 310: code310(p); break; 11042 case 311: code311(p); break; 11043 case 312: code312(p); break; 11044 case 313: code313(p); break; 11045 case 314: code314(p); break; 11046 case 315: code315(p); break; 11047 case 316: code316(p); break; 11048 case 317: code317(p); break; 11049 case 318: code318(p); break; 11050 case 319: code319(p); break; 11051 case 320: code320(p); break; 11052 case 321: code321(p); break; 11053 case 322: code322(p); break; 11054 case 323: code323(p); break; 11055 case 324: code324(p); break; 11056 case 325: code325(p); break; 11057 case 326: code326(p); break; 11058 case 327: code327(p); break; 11059 case 328: code328(p); break; 11060 case 329: code329(p); break; 11061 case 330: code330(p); break; 11062 case 331: code331(p); break; 11063 case 332: code332(p); break; 11064 case 333: code333(p); break; 11065 case 334: code334(p); break; 11066 case 335: code335(p); break; 11067 case 336: code336(p); break; 11068 case 337: code337(p); break; 11069 case 338: code338(p); break; 11070 case 339: code339(p); break; 11071 case 340: code340(p); break; 11072 case 341: code341(p); break; 11073 case 342: code342(p); break; 11074 case 343: code343(p); break; 11075 case 344: code344(p); break; 11076 case 345: code345(p); break; 11077 case 346: code346(p); break; 11078 case 347: code347(p); break; 11079 case 348: code348(p); break; 11080 case 349: code349(p); break; 11081 case 350: code350(p); break; 11082 case 351: code351(p); break; 11083 case 352: code352(p); break; 11084 case 353: code353(p); break; 11085 case 354: code354(p); break; 11086 case 355: code355(p); break; 11087 case 356: code356(p); break; 11088 case 357: code357(p); break; 11089 case 358: code358(p); break; 11090 case 359: code359(p); break; 11091 case 360: code360(p); break; 11092 case 361: code361(p); break; 11093 case 362: code362(p); break; 11094 case 363: code363(p); break; 11095 case 364: code364(p); break; 11096 case 365: code365(p); break; 11097 case 366: code366(p); break; 11098 case 367: code367(p); break; 11099 case 368: code368(p); break; 11100 case 369: code369(p); break; 11101 case 370: code370(p); break; 11102 case 371: code371(p); break; 11103 case 372: code372(p); break; 11104 case 373: code373(p); break; 11105 case 374: code374(p); break; 11106 case 375: code375(p); break; 11107 case 376: code376(p); break; 11108 case 377: code377(p); break; 11109 case 378: code378(p); break; 11110 case 379: code379(p); break; 11111 case 380: code380(p); break; 11112 case 381: code381(p); break; 11113 case 382: code382(p); break; 11114 case 383: code383(p); break; 11115 case 384: code384(p); break; 11116 case 385: code385(p); break; 11117 case 386: code386(p); break; 11118 case 387: code387(p); break; 11119 case 388: code388(p); break; 11120 case 389: code389(p); break; 11121 case 390: code390(p); break; 11122 case 391: code391(p); break; 11123 case 392: code392(p); break; 11124 case 393: code393(p); break; 11125 case 394: code394(p); break; 11126 case 395: code395(p); break; 11127 case 396: code396(p); break; 11128 case 397: code397(p); break; 11129 case 398: code398(p); break; 11130 case 399: code399(p); break; 11131 case 400: code400(p); break; 11132 case 401: code401(p); break; 11133 case 402: code402(p); break; 11134 case 403: code403(p); break; 11135 case 404: code404(p); break; 11136 case 405: code405(p); break; 11137 case 406: code406(p); break; 11138 case 407: code407(p); break; 11139 case 408: code408(p); break; 11140 case 409: code409(p); break; 11141 case 410: code410(p); break; 11142 case 411: code411(p); break; 11143 case 412: code412(p); break; 11144 case 413: code413(p); break; 11145 case 414: code414(p); break; 11146 case 415: code415(p); break; 11147 case 416: code416(p); break; 11148 case 417: code417(p); break; 11149 case 418: code418(p); break; 11150 case 419: code419(p); break; 11151 case 420: code420(p); break; 11152 case 421: code421(p); break; 11153 case 422: code422(p); break; 11154 case 423: code423(p); break; 11155 case 424: code424(p); break; 11156 case 425: code425(p); break; 11157 case 426: code426(p); break; 11158 case 427: code427(p); break; 11159 case 428: code428(p); break; 11160 case 429: code429(p); break; 11161 case 430: code430(p); break; 11162 case 431: code431(p); break; 11163 case 432: code432(p); break; 11164 case 433: code433(p); break; 11165 case 434: code434(p); break; 11166 case 435: code435(p); break; 11167 case 436: code436(p); break; 11168 case 437: code437(p); break; 11169 case 438: code438(p); break; 11170 case 439: code439(p); break; 11171 case 440: code440(p); break; 11172 case 441: code441(p); break; 11173 case 442: code442(p); break; 11174 case 443: code443(p); break; 11175 case 444: code444(p); break; 11176 case 445: code445(p); break; 11177 case 446: code446(p); break; 11178 case 447: code447(p); break; 11179 case 449: code449(p); break; 11180 case 451: code451(p); break; 11181 case 453: code453(p); break; 11182 case 455: code455(p); break; 11183 case 456: code456(p); break; 11184 case 457: code457(p); break; 11185 case 458: code458(p); break; 11186 case 459: code459(p); break; 11187 case 460: code460(p); break; 11188 case 461: code461(p); break; 11189 case 462: code462(p); break; 11190 case 463: code463(p); break; 11191 case 464: code464(p); break; 11192 case 465: code465(p); break; 11193 case 466: code466(p); break; 11194 case 467: code467(p); break; 11195 case 468: code468(p); break; 11196 case 469: code469(p); break; 11197 case 470: code470(p); break; 11198 case 471: code471(p); break; 11199 case 472: code472(p); break; 11200 case 473: code473(p); break; 11201 case 474: code474(p); break; 11202 case 475: code475(p); break; 11203 case 476: code476(p); break; 11204 case 477: code477(p); break; 11205 case 478: code478(p); break; 11206 case 479: code479(p); break; 11207 case 480: code480(p); break; 11208 case 481: code481(p); break; 11209 case 482: code482(p); break; 11210 case 483: code483(p); break; 11211 case 484: code484(p); break; 11212 case 485: code485(p); break; 11213 case 486: code486(p); break; 11214 default: 11215 throw new OptimizingCompilerException("BURS","rule without emit code:",BURS_Debug.string[ruleno]); 11216 } 11217 } 11218 }