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_0, // 71
322 nts_0, // 72
323 nts_17, // 73
324 nts_23, // 74
325 nts_24, // 75
326 nts_0, // 76
327 nts_25, // 77
328 nts_25, // 78
329 nts_26, // 79
330 nts_26, // 80
331 nts_0, // 81
332 nts_0, // 82
333 nts_0, // 83
334 nts_12, // 84
335 nts_0, // 85
336 nts_12, // 86
337 nts_27, // 87
338 nts_27, // 88
339 nts_28, // 89
340 nts_28, // 90
341 nts_29, // 91
342 nts_29, // 92
343 nts_30, // 93
344 nts_30, // 94
345 nts_30, // 95
346 nts_30, // 96
347 nts_23, // 97
348 nts_23, // 98
349 nts_31, // 99
350 nts_24, // 100
351 nts_32, // 101
352 nts_32, // 102
353 nts_33, // 103
354 nts_33, // 104
355 nts_34, // 105
356 nts_35, // 106
357 nts_0, // 107
358 nts_12, // 108
359 nts_0, // 109
360 nts_12, // 110
361 nts_36, // 111
362 nts_37, // 112
363 nts_38, // 113
364 nts_39, // 114
365 nts_40, // 115
366 nts_41, // 116
367 nts_42, // 117
368 nts_42, // 118
369 nts_43, // 119
370 nts_44, // 120
371 nts_45, // 121
372 nts_46, // 122
373 nts_26, // 123
374 nts_26, // 124
375 nts_24, // 125
376 nts_23, // 126
377 nts_47, // 127
378 nts_47, // 128
379 nts_47, // 129
380 nts_47, // 130
381 nts_48, // 131
382 nts_48, // 132
383 nts_49, // 133
384 nts_24, // 134
385 nts_23, // 135
386 nts_47, // 136
387 nts_47, // 137
388 nts_47, // 138
389 nts_47, // 139
390 nts_6, // 140
391 nts_24, // 141
392 nts_23, // 142
393 nts_6, // 143
394 nts_24, // 144
395 nts_6, // 145
396 nts_24, // 146
397 nts_0, // 147
398 nts_25, // 148
399 nts_25, // 149
400 nts_48, // 150
401 nts_6, // 151
402 nts_0, // 152
403 nts_0, // 153
404 nts_0, // 154
405 nts_50, // 155
406 nts_25, // 156
407 nts_50, // 157
408 nts_25, // 158
409 nts_48, // 159
410 nts_6, // 160
411 nts_4, // 161
412 nts_50, // 162
413 nts_25, // 163
414 nts_50, // 164
415 nts_25, // 165
416 nts_48, // 166
417 nts_6, // 167
418 nts_4, // 168
419 nts_50, // 169
420 nts_25, // 170
421 nts_50, // 171
422 nts_25, // 172
423 nts_17, // 173
424 nts_17, // 174
425 nts_17, // 175
426 nts_17, // 176
427 nts_51, // 177
428 nts_51, // 178
429 nts_51, // 179
430 nts_51, // 180
431 nts_6, // 181
432 nts_26, // 182
433 nts_24, // 183
434 nts_23, // 184
435 nts_52, // 185
436 nts_53, // 186
437 nts_47, // 187
438 nts_47, // 188
439 nts_47, // 189
440 nts_47, // 190
441 nts_6, // 191
442 nts_24, // 192
443 nts_23, // 193
444 nts_47, // 194
445 nts_47, // 195
446 nts_47, // 196
447 nts_47, // 197
448 nts_6, // 198
449 nts_24, // 199
450 nts_23, // 200
451 nts_47, // 201
452 nts_47, // 202
453 nts_47, // 203
454 nts_47, // 204
455 nts_0, // 205
456 nts_25, // 206
457 nts_25, // 207
458 nts_54, // 208
459 nts_33, // 209
460 nts_33, // 210
461 nts_0, // 211
462 nts_55, // 212
463 nts_55, // 213
464 nts_55, // 214
465 nts_55, // 215
466 nts_55, // 216
467 nts_55, // 217
468 nts_33, // 218
469 nts_33, // 219
470 nts_54, // 220
471 nts_0, // 221
472 nts_0, // 222
473 nts_56, // 223
474 nts_57, // 224
475 nts_57, // 225
476 nts_0, // 226
477 nts_13, // 227
478 nts_57, // 228
479 nts_57, // 229
480 nts_0, // 230
481 nts_13, // 231
482 nts_57, // 232
483 nts_57, // 233
484 nts_0, // 234
485 nts_12, // 235
486 nts_0, // 236
487 nts_12, // 237
488 nts_0, // 238
489 nts_58, // 239
490 nts_0, // 240
491 nts_12, // 241
492 nts_0, // 242
493 nts_57, // 243
494 nts_57, // 244
495 nts_58, // 245
496 nts_0, // 246
497 nts_0, // 247
498 nts_58, // 248
499 nts_58, // 249
500 nts_58, // 250
501 nts_58, // 251
502 nts_4, // 252
503 nts_2, // 253
504 nts_27, // 254
505 nts_3, // 255
506 nts_28, // 256
507 nts_15, // 257
508 nts_16, // 258
509 nts_22, // 259
510 nts_7, // 260
511 nts_8, // 261
512 nts_14, // 262
513 nts_9, // 263
514 nts_10, // 264
515 nts_11, // 265
516 nts_12, // 266
517 nts_58, // 267
518 nts_0, // 268
519 nts_1, // 269
520 nts_1, // 270
521 nts_6, // 271
522 nts_6, // 272
523 nts_6, // 273
524 nts_6, // 274
525 nts_56, // 275
526 nts_56, // 276
527 nts_56, // 277
528 nts_56, // 278
529 nts_6, // 279
530 nts_6, // 280
531 nts_6, // 281
532 nts_6, // 282
533 nts_13, // 283
534 nts_13, // 284
535 nts_13, // 285
536 nts_13, // 286
537 nts_6, // 287
538 nts_59, // 288
539 nts_60, // 289
540 nts_20, // 290
541 nts_21, // 291
542 nts_22, // 292
543 nts_6, // 293
544 nts_6, // 294
545 nts_6, // 295
546 nts_6, // 296
547 nts_18, // 297
548 nts_19, // 298
549 nts_20, // 299
550 nts_21, // 300
551 nts_22, // 301
552 nts_22, // 302
553 nts_6, // 303
554 nts_25, // 304
555 nts_61, // 305
556 nts_62, // 306
557 nts_63, // 307
558 nts_64, // 308
559 nts_65, // 309
560 nts_65, // 310
561 nts_25, // 311
562 nts_61, // 312
563 nts_62, // 313
564 nts_63, // 314
565 nts_64, // 315
566 nts_65, // 316
567 nts_65, // 317
568 nts_25, // 318
569 nts_61, // 319
570 nts_62, // 320
571 nts_63, // 321
572 nts_64, // 322
573 nts_65, // 323
574 nts_65, // 324
575 nts_66, // 325
576 nts_67, // 326
577 nts_68, // 327
578 nts_67, // 328
579 nts_68, // 329
580 nts_67, // 330
581 nts_69, // 331
582 nts_67, // 332
583 nts_69, // 333
584 nts_67, // 334
585 nts_70, // 335
586 nts_71, // 336
587 nts_72, // 337
588 nts_73, // 338
589 nts_74, // 339
590 nts_67, // 340
591 nts_57, // 341
592 nts_6, // 342
593 nts_57, // 343
594 nts_6, // 344
595 nts_26, // 345
596 nts_0, // 346
597 nts_14, // 347
598 nts_75, // 348
599 nts_76, // 349
600 nts_9, // 350
601 nts_23, // 351
602 nts_31, // 352
603 nts_30, // 353
604 nts_30, // 354
605 nts_27, // 355
606 nts_28, // 356
607 nts_29, // 357
608 nts_26, // 358
609 nts_23, // 359
610 nts_24, // 360
611 nts_33, // 361
612 nts_33, // 362
613 nts_1, // 363
614 nts_0, // 364
615 nts_1, // 365
616 nts_1, // 366
617 nts_1, // 367
618 nts_1, // 368
619 nts_1, // 369
620 nts_0, // 370
621 nts_1, // 371
622 nts_35, // 372
623 nts_77, // 373
624 nts_78, // 374
625 nts_77, // 375
626 nts_35, // 376
627 nts_78, // 377
628 nts_77, // 378
629 nts_1, // 379
630 nts_5, // 380
631 nts_17, // 381
632 nts_49, // 382
633 nts_0, // 383
634 nts_17, // 384
635 nts_49, // 385
636 nts_0, // 386
637 nts_48, // 387
638 nts_31, // 388
639 nts_17, // 389
640 nts_49, // 390
641 nts_17, // 391
642 nts_79, // 392
643 nts_80, // 393
644 nts_17, // 394
645 nts_81, // 395
646 nts_82, // 396
647 nts_17, // 397
648 nts_79, // 398
649 nts_17, // 399
650 nts_81, // 400
651 nts_17, // 401
652 nts_79, // 402
653 nts_80, // 403
654 nts_17, // 404
655 nts_81, // 405
656 nts_82, // 406
657 nts_17, // 407
658 nts_79, // 408
659 nts_17, // 409
660 nts_81, // 410
661 nts_0, // 411
662 nts_0, // 412
663 nts_0, // 413
664 nts_0, // 414
665 nts_17, // 415
666 nts_17, // 416
667 nts_0, // 417
668 nts_0, // 418
669 nts_0, // 419
670 nts_0, // 420
671 nts_6, // 421
672 nts_6, // 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_57, // 429
680 nts_57, // 430
681 nts_57, // 431
682 nts_57, // 432
683 nts_4, // 433
684 nts_12, // 434
685 nts_4, // 435
686 nts_12, // 436
687 nts_0, // 437
688 nts_83, // 438
689 nts_0, // 439
690 nts_84, // 440
691 nts_0, // 441
692 nts_0, // 442
693 nts_0, // 443
694 nts_0, // 444
695 nts_0, // 445
696 nts_83, // 446
697 nts_0, // 447
698 nts_84, // 448
699 nts_4, // 449
700 nts_12, // 450
701 nts_85, // 451
702 nts_58, // 452
703 nts_1, // 453
704 nts_1, // 454
705 nts_1, // 455
706 nts_1, // 456
707 nts_17, // 457
708 nts_79, // 458
709 nts_80, // 459
710 nts_17, // 460
711 nts_81, // 461
712 nts_82, // 462
713 nts_86, // 463
714 nts_87, // 464
715 nts_88, // 465
716 nts_89, // 466
717 nts_90, // 467
718 nts_86, // 468
719 nts_91, // 469
720 nts_92, // 470
721 nts_93, // 471
722 nts_94, // 472
723 nts_87, // 473
724 nts_88, // 474
725 nts_95, // 475
726 nts_95, // 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_96, // 483
734 nts_96, // 484
735 };
736
737 /*static final byte arity[] = {
738 0, // 0=GET_CAUGHT_EXCEPTION
739 1, // 1=SET_CAUGHT_EXCEPTION
740 -1, // 2=NEW
741 -1, // 3=NEW_UNRESOLVED
742 -1, // 4=NEWARRAY
743 -1, // 5=NEWARRAY_UNRESOLVED
744 -1, // 6=ATHROW
745 -1, // 7=CHECKCAST
746 -1, // 8=CHECKCAST_NOTNULL
747 -1, // 9=CHECKCAST_UNRESOLVED
748 -1, // 10=MUST_IMPLEMENT_INTERFACE
749 -1, // 11=INSTANCEOF
750 -1, // 12=INSTANCEOF_NOTNULL
751 -1, // 13=INSTANCEOF_UNRESOLVED
752 -1, // 14=MONITORENTER
753 -1, // 15=MONITOREXIT
754 -1, // 16=NEWOBJMULTIARRAY
755 -1, // 17=GETSTATIC
756 -1, // 18=PUTSTATIC
757 -1, // 19=GETFIELD
758 -1, // 20=PUTFIELD
759 -1, // 21=INT_ZERO_CHECK
760 -1, // 22=LONG_ZERO_CHECK
761 -1, // 23=BOUNDS_CHECK
762 -1, // 24=OBJARRAY_STORE_CHECK
763 -1, // 25=OBJARRAY_STORE_CHECK_NOTNULL
764 0, // 26=IG_PATCH_POINT
765 -1, // 27=IG_CLASS_TEST
766 -1, // 28=IG_METHOD_TEST
767 -1, // 29=TABLESWITCH
768 -1, // 30=LOOKUPSWITCH
769 2, // 31=INT_ALOAD
770 2, // 32=LONG_ALOAD
771 2, // 33=FLOAT_ALOAD
772 2, // 34=DOUBLE_ALOAD
773 -1, // 35=REF_ALOAD
774 2, // 36=UBYTE_ALOAD
775 2, // 37=BYTE_ALOAD
776 2, // 38=USHORT_ALOAD
777 2, // 39=SHORT_ALOAD
778 2, // 40=INT_ASTORE
779 2, // 41=LONG_ASTORE
780 2, // 42=FLOAT_ASTORE
781 2, // 43=DOUBLE_ASTORE
782 -1, // 44=REF_ASTORE
783 2, // 45=BYTE_ASTORE
784 2, // 46=SHORT_ASTORE
785 2, // 47=INT_IFCMP
786 2, // 48=INT_IFCMP2
787 2, // 49=LONG_IFCMP
788 2, // 50=FLOAT_IFCMP
789 2, // 51=DOUBLE_IFCMP
790 -1, // 52=REF_IFCMP
791 -1, // 53=LABEL
792 -1, // 54=BBEND
793 0, // 55=UNINT_BEGIN
794 0, // 56=UNINT_END
795 0, // 57=READ_CEILING
796 0, // 58=WRITE_FLOOR
797 -1, // 59=PHI
798 -1, // 60=SPLIT
799 -1, // 61=PI
800 0, // 62=NOP
801 1, // 63=INT_MOVE
802 1, // 64=LONG_MOVE
803 1, // 65=FLOAT_MOVE
804 1, // 66=DOUBLE_MOVE
805 -1, // 67=REF_MOVE
806 0, // 68=GUARD_MOVE
807 -1, // 69=INT_COND_MOVE
808 -1, // 70=LONG_COND_MOVE
809 -1, // 71=FLOAT_COND_MOVE
810 -1, // 72=DOUBLE_COND_MOVE
811 -1, // 73=REF_COND_MOVE
812 -1, // 74=GUARD_COND_MOVE
813 0, // 75=GUARD_COMBINE
814 -1, // 76=REF_ADD
815 2, // 77=INT_ADD
816 2, // 78=LONG_ADD
817 2, // 79=FLOAT_ADD
818 2, // 80=DOUBLE_ADD
819 -1, // 81=REF_SUB
820 2, // 82=INT_SUB
821 2, // 83=LONG_SUB
822 2, // 84=FLOAT_SUB
823 2, // 85=DOUBLE_SUB
824 2, // 86=INT_MUL
825 2, // 87=LONG_MUL
826 2, // 88=FLOAT_MUL
827 2, // 89=DOUBLE_MUL
828 2, // 90=INT_DIV
829 -1, // 91=LONG_DIV
830 2, // 92=FLOAT_DIV
831 2, // 93=DOUBLE_DIV
832 2, // 94=INT_REM
833 -1, // 95=LONG_REM
834 2, // 96=FLOAT_REM
835 2, // 97=DOUBLE_REM
836 -1, // 98=REF_NEG
837 1, // 99=INT_NEG
838 1, // 100=LONG_NEG
839 1, // 101=FLOAT_NEG
840 1, // 102=DOUBLE_NEG
841 1, // 103=FLOAT_SQRT
842 1, // 104=DOUBLE_SQRT
843 -1, // 105=REF_SHL
844 2, // 106=INT_SHL
845 2, // 107=LONG_SHL
846 -1, // 108=REF_SHR
847 2, // 109=INT_SHR
848 2, // 110=LONG_SHR
849 -1, // 111=REF_USHR
850 2, // 112=INT_USHR
851 2, // 113=LONG_USHR
852 -1, // 114=REF_AND
853 2, // 115=INT_AND
854 2, // 116=LONG_AND
855 -1, // 117=REF_OR
856 2, // 118=INT_OR
857 2, // 119=LONG_OR
858 -1, // 120=REF_XOR
859 2, // 121=INT_XOR
860 -1, // 122=REF_NOT
861 1, // 123=INT_NOT
862 1, // 124=LONG_NOT
863 2, // 125=LONG_XOR
864 -1, // 126=INT_2ADDRSigExt
865 -1, // 127=INT_2ADDRZerExt
866 -1, // 128=LONG_2ADDR
867 -1, // 129=ADDR_2INT
868 1, // 130=ADDR_2LONG
869 1, // 131=INT_2LONG
870 1, // 132=INT_2FLOAT
871 1, // 133=INT_2DOUBLE
872 1, // 134=LONG_2INT
873 1, // 135=LONG_2FLOAT
874 1, // 136=LONG_2DOUBLE
875 1, // 137=FLOAT_2INT
876 1, // 138=FLOAT_2LONG
877 1, // 139=FLOAT_2DOUBLE
878 1, // 140=DOUBLE_2INT
879 1, // 141=DOUBLE_2LONG
880 1, // 142=DOUBLE_2FLOAT
881 1, // 143=INT_2BYTE
882 1, // 144=INT_2USHORT
883 1, // 145=INT_2SHORT
884 2, // 146=LONG_CMP
885 -1, // 147=FLOAT_CMPL
886 -1, // 148=FLOAT_CMPG
887 -1, // 149=DOUBLE_CMPL
888 -1, // 150=DOUBLE_CMPG
889 1, // 151=RETURN
890 1, // 152=NULL_CHECK
891 0, // 153=GOTO
892 1, // 154=BOOLEAN_NOT
893 2, // 155=BOOLEAN_CMP_INT
894 -1, // 156=BOOLEAN_CMP_ADDR
895 2, // 157=BOOLEAN_CMP_LONG
896 -1, // 158=BOOLEAN_CMP_FLOAT
897 -1, // 159=BOOLEAN_CMP_DOUBLE
898 2, // 160=BYTE_LOAD
899 2, // 161=UBYTE_LOAD
900 2, // 162=SHORT_LOAD
901 2, // 163=USHORT_LOAD
902 -1, // 164=REF_LOAD
903 -1, // 165=REF_STORE
904 2, // 166=INT_LOAD
905 2, // 167=LONG_LOAD
906 2, // 168=FLOAT_LOAD
907 2, // 169=DOUBLE_LOAD
908 2, // 170=BYTE_STORE
909 2, // 171=SHORT_STORE
910 2, // 172=INT_STORE
911 2, // 173=LONG_STORE
912 2, // 174=FLOAT_STORE
913 2, // 175=DOUBLE_STORE
914 2, // 176=PREPARE_INT
915 -1, // 177=PREPARE_ADDR
916 2, // 178=PREPARE_LONG
917 2, // 179=ATTEMPT_INT
918 -1, // 180=ATTEMPT_ADDR
919 2, // 181=ATTEMPT_LONG
920 2, // 182=CALL
921 2, // 183=SYSCALL
922 0, // 184=YIELDPOINT_PROLOGUE
923 0, // 185=YIELDPOINT_EPILOGUE
924 0, // 186=YIELDPOINT_BACKEDGE
925 2, // 187=YIELDPOINT_OSR
926 -1, // 188=OSR_BARRIER
927 0, // 189=IR_PROLOGUE
928 0, // 190=RESOLVE
929 -1, // 191=RESOLVE_MEMBER
930 0, // 192=GET_TIME_BASE
931 -1, // 193=INSTRUMENTED_EVENT_COUNTER
932 2, // 194=TRAP_IF
933 0, // 195=TRAP
934 1, // 196=FLOAT_AS_INT_BITS
935 1, // 197=INT_BITS_AS_FLOAT
936 1, // 198=DOUBLE_AS_LONG_BITS
937 1, // 199=LONG_BITS_AS_DOUBLE
938 -1, // 200=ARRAYLENGTH
939 -1, // 201=GET_OBJ_TIB
940 -1, // 202=GET_CLASS_TIB
941 -1, // 203=GET_TYPE_FROM_TIB
942 -1, // 204=GET_SUPERCLASS_IDS_FROM_TIB
943 -1, // 205=GET_DOES_IMPLEMENT_FROM_TIB
944 -1, // 206=GET_ARRAY_ELEMENT_TIB_FROM_TIB
945 1, // 207=LOWTABLESWITCH
946 0, // 208=ADDRESS_CONSTANT
947 0, // 209=INT_CONSTANT
948 0, // 210=LONG_CONSTANT
949 0, // 211=REGISTER
950 2, // 212=OTHER_OPERAND
951 0, // 213=NULL
952 0, // 214=BRANCH_TARGET
953 1, // 215=MATERIALIZE_FP_CONSTANT
954 0, // 216=GET_CURRENT_PROCESSOR
955 -1, // 217=ROUND_TO_ZERO
956 0, // 218=CLEAR_FLOATING_POINT_STATE
957 1, // 219=PREFETCH
958 0, // 220=PAUSE
959 -1, // 221=FP_ADD
960 -1, // 222=FP_SUB
961 -1, // 223=FP_MUL
962 -1, // 224=FP_DIV
963 -1, // 225=FP_NEG
964 -1, // 226=FP_REM
965 -1, // 227=INT_2FP
966 -1, // 228=LONG_2FP
967 2, // 229=CMP_CMOV
968 2, // 230=FCMP_CMOV
969 2, // 231=LCMP_CMOV
970 -1, // 232=CMP_FCMOV
971 2, // 233=FCMP_FCMOV
972 -1, // 234=CALL_SAVE_VOLATILE
973 -1, // 235=MIR_START
974 -1, // 236=REQUIRE_ESP
975 -1, // 237=ADVISE_ESP
976 -1, // 238=MIR_LOWTABLESWITCH
977 -1, // 239=IA32_METHODSTART
978 -1, // 240=IA32_FCLEAR
979 -1, // 241=DUMMY_DEF
980 -1, // 242=DUMMY_USE
981 -1, // 243=IA32_FMOV_ENDING_LIVE_RANGE
982 -1, // 244=IA32_FMOV
983 -1, // 245=IA32_TRAPIF
984 -1, // 246=IA32_OFFSET
985 -1, // 247=IA32_LOCK_CMPXCHG
986 -1, // 248=IA32_LOCK_CMPXCHG8B
987 -1, // 249=IA32_ADC
988 -1, // 250=IA32_ADD
989 -1, // 251=IA32_AND
990 -1, // 252=IA32_BSWAP
991 -1, // 253=IA32_BT
992 -1, // 254=IA32_BTC
993 -1, // 255=IA32_BTR
994 -1, // 256=IA32_BTS
995 -1, // 257=IA32_SYSCALL
996 -1, // 258=IA32_CALL
997 -1, // 259=IA32_CDQ
998 -1, // 260=IA32_CDO
999 -1, // 261=IA32_CDQE
1000 -1, // 262=IA32_CMOV
1001 -1, // 263=IA32_CMP
1002 -1, // 264=IA32_CMPXCHG
1003 -1, // 265=IA32_CMPXCHG8B
1004 -1, // 266=IA32_DEC
1005 -1, // 267=IA32_DIV
1006 -1, // 268=IA32_FADD
1007 -1, // 269=IA32_FADDP
1008 -1, // 270=IA32_FCHS
1009 -1, // 271=IA32_FCMOV
1010 -1, // 272=IA32_FCOMI
1011 -1, // 273=IA32_FCOMIP
1012 -1, // 274=IA32_FDIV
1013 -1, // 275=IA32_FDIVP
1014 -1, // 276=IA32_FDIVR
1015 -1, // 277=IA32_FDIVRP
1016 -1, // 278=IA32_FEXAM
1017 -1, // 279=IA32_FXCH
1018 -1, // 280=IA32_FFREE
1019 -1, // 281=IA32_FIADD
1020 -1, // 282=IA32_FIDIV
1021 -1, // 283=IA32_FIDIVR
1022 -1, // 284=IA32_FILD
1023 -1, // 285=IA32_FIMUL
1024 -1, // 286=IA32_FINIT
1025 -1, // 287=IA32_FIST
1026 -1, // 288=IA32_FISTP
1027 -1, // 289=IA32_FISUB
1028 -1, // 290=IA32_FISUBR
1029 -1, // 291=IA32_FLD
1030 -1, // 292=IA32_FLDCW
1031 -1, // 293=IA32_FLD1
1032 -1, // 294=IA32_FLDL2T
1033 -1, // 295=IA32_FLDL2E
1034 -1, // 296=IA32_FLDPI
1035 -1, // 297=IA32_FLDLG2
1036 -1, // 298=IA32_FLDLN2
1037 -1, // 299=IA32_FLDZ
1038 -1, // 300=IA32_FMUL
1039 -1, // 301=IA32_FMULP
1040 -1, // 302=IA32_FNSTCW
1041 -1, // 303=IA32_FNINIT
1042 -1, // 304=IA32_FNSAVE
1043 -1, // 305=IA32_FPREM
1044 -1, // 306=IA32_FRSTOR
1045 -1, // 307=IA32_FST
1046 -1, // 308=IA32_FSTCW
1047 -1, // 309=IA32_FSTP
1048 -1, // 310=IA32_FSUB
1049 -1, // 311=IA32_FSUBP
1050 -1, // 312=IA32_FSUBR
1051 -1, // 313=IA32_FSUBRP
1052 -1, // 314=IA32_FUCOMI
1053 -1, // 315=IA32_FUCOMIP
1054 -1, // 316=IA32_IDIV
1055 -1, // 317=IA32_IMUL1
1056 -1, // 318=IA32_IMUL2
1057 -1, // 319=IA32_INC
1058 -1, // 320=IA32_INT
1059 -1, // 321=IA32_JCC
1060 -1, // 322=IA32_JCC2
1061 -1, // 323=IA32_JMP
1062 -1, // 324=IA32_LEA
1063 -1, // 325=IA32_LOCK
1064 -1, // 326=IA32_MOV
1065 -1, // 327=IA32_MOVZX__B
1066 -1, // 328=IA32_MOVSX__B
1067 -1, // 329=IA32_MOVZX__W
1068 -1, // 330=IA32_MOVSX__W
1069 -1, // 331=IA32_MOVZXQ__B
1070 -1, // 332=IA32_MOVSXQ__B
1071 -1, // 333=IA32_MOVZXQ__W
1072 -1, // 334=IA32_MOVSXQ__W
1073 -1, // 335=IA32_MUL
1074 -1, // 336=IA32_NEG
1075 -1, // 337=IA32_NOT
1076 -1, // 338=IA32_OR
1077 -1, // 339=IA32_PAUSE
1078 -1, // 340=IA32_PREFETCHNTA
1079 -1, // 341=IA32_POP
1080 -1, // 342=IA32_PUSH
1081 -1, // 343=IA32_RCL
1082 -1, // 344=IA32_RCR
1083 -1, // 345=IA32_ROL
1084 -1, // 346=IA32_ROR
1085 -1, // 347=IA32_RET
1086 -1, // 348=IA32_SAL
1087 -1, // 349=IA32_SAR
1088 -1, // 350=IA32_SHL
1089 -1, // 351=IA32_SHR
1090 -1, // 352=IA32_SBB
1091 -1, // 353=IA32_SET__B
1092 -1, // 354=IA32_SHLD
1093 -1, // 355=IA32_SHRD
1094 -1, // 356=IA32_SUB
1095 -1, // 357=IA32_TEST
1096 -1, // 358=IA32_XOR
1097 -1, // 359=IA32_RDTSC
1098 -1, // 360=IA32_ADDSS
1099 -1, // 361=IA32_SUBSS
1100 -1, // 362=IA32_MULSS
1101 -1, // 363=IA32_DIVSS
1102 -1, // 364=IA32_ADDSD
1103 -1, // 365=IA32_SUBSD
1104 -1, // 366=IA32_MULSD
1105 -1, // 367=IA32_DIVSD
1106 -1, // 368=IA32_ANDPS
1107 -1, // 369=IA32_ANDPD
1108 -1, // 370=IA32_ANDNPS
1109 -1, // 371=IA32_ANDNPD
1110 -1, // 372=IA32_ORPS
1111 -1, // 373=IA32_ORPD
1112 -1, // 374=IA32_XORPS
1113 -1, // 375=IA32_XORPD
1114 -1, // 376=IA32_UCOMISS
1115 -1, // 377=IA32_UCOMISD
1116 -1, // 378=IA32_CMPEQSS
1117 -1, // 379=IA32_CMPLTSS
1118 -1, // 380=IA32_CMPLESS
1119 -1, // 381=IA32_CMPUNORDSS
1120 -1, // 382=IA32_CMPNESS
1121 -1, // 383=IA32_CMPNLTSS
1122 -1, // 384=IA32_CMPNLESS
1123 -1, // 385=IA32_CMPORDSS
1124 -1, // 386=IA32_CMPEQSD
1125 -1, // 387=IA32_CMPLTSD
1126 -1, // 388=IA32_CMPLESD
1127 -1, // 389=IA32_CMPUNORDSD
1128 -1, // 390=IA32_CMPNESD
1129 -1, // 391=IA32_CMPNLTSD
1130 -1, // 392=IA32_CMPNLESD
1131 -1, // 393=IA32_CMPORDSD
1132 -1, // 394=IA32_MOVLPD
1133 -1, // 395=IA32_MOVLPS
1134 -1, // 396=IA32_MOVSS
1135 -1, // 397=IA32_MOVSD
1136 -1, // 398=IA32_MOVD
1137 -1, // 399=IA32_MOVQ
1138 -1, // 400=IA32_PSLLQ
1139 -1, // 401=IA32_PSRLQ
1140 -1, // 402=IA32_SQRTSS
1141 -1, // 403=IA32_SQRTSD
1142 -1, // 404=IA32_CVTSI2SS
1143 -1, // 405=IA32_CVTSS2SD
1144 -1, // 406=IA32_CVTSS2SI
1145 -1, // 407=IA32_CVTTSS2SI
1146 -1, // 408=IA32_CVTSI2SD
1147 -1, // 409=IA32_CVTSD2SS
1148 -1, // 410=IA32_CVTSD2SI
1149 -1, // 411=IA32_CVTTSD2SI
1150 -1, // 412=IA32_CVTSI2SDQ
1151 -1, // 413=IA32_CVTSD2SIQ
1152 -1, // 414=IA32_CVTTSD2SIQ
1153 -1, // 415=MIR_END
1154 };*/
1155
1156 static final char[][] decode = {null,
1157 {// stm_NT
1158 0,
1159 1,
1160 55,
1161 56,
1162 57,
1163 58,
1164 59,
1165 60,
1166 61,
1167 62,
1168 63,
1169 66,
1170 67,
1171 69,
1172 70,
1173 71,
1174 72,
1175 73,
1176 74,
1177 75,
1178 77,
1179 78,
1180 101,
1181 102,
1182 127,
1183 128,
1184 129,
1185 130,
1186 136,
1187 137,
1188 138,
1189 139,
1190 148,
1191 149,
1192 155,
1193 156,
1194 157,
1195 158,
1196 162,
1197 163,
1198 164,
1199 165,
1200 169,
1201 170,
1202 171,
1203 172,
1204 187,
1205 188,
1206 189,
1207 190,
1208 194,
1209 195,
1210 196,
1211 197,
1212 201,
1213 202,
1214 203,
1215 204,
1216 206,
1217 207,
1218 224,
1219 225,
1220 228,
1221 229,
1222 232,
1223 233,
1224 243,
1225 244,
1226 311,
1227 312,
1228 313,
1229 314,
1230 315,
1231 316,
1232 317,
1233 318,
1234 319,
1235 320,
1236 321,
1237 322,
1238 323,
1239 324,
1240 326,
1241 327,
1242 328,
1243 329,
1244 330,
1245 331,
1246 332,
1247 333,
1248 334,
1249 335,
1250 336,
1251 337,
1252 338,
1253 339,
1254 340,
1255 341,
1256 342,
1257 343,
1258 344,
1259 345,
1260 346,
1261 347,
1262 348,
1263 349,
1264 350,
1265 351,
1266 352,
1267 353,
1268 354,
1269 355,
1270 356,
1271 357,
1272 358,
1273 359,
1274 360,
1275 361,
1276 363,
1277 364,
1278 365,
1279 366,
1280 367,
1281 368,
1282 369,
1283 370,
1284 371,
1285 380,
1286 429,
1287 430,
1288 431,
1289 432,
1290 456,
1291 457,
1292 458,
1293 459,
1294 460,
1295 461,
1296 462,
1297 483,
1298 484,
1299 },
1300 {// r_NT
1301 0,
1302 2,
1303 3,
1304 5,
1305 49,
1306 50,
1307 51,
1308 52,
1309 53,
1310 54,
1311 64,
1312 65,
1313 68,
1314 76,
1315 79,
1316 81,
1317 83,
1318 84,
1319 85,
1320 86,
1321 87,
1322 89,
1323 91,
1324 93,
1325 95,
1326 97,
1327 99,
1328 103,
1329 105,
1330 106,
1331 107,
1332 108,
1333 109,
1334 110,
1335 111,
1336 112,
1337 113,
1338 114,
1339 115,
1340 116,
1341 117,
1342 118,
1343 119,
1344 120,
1345 121,
1346 122,
1347 124,
1348 132,
1349 133,
1350 140,
1351 141,
1352 142,
1353 143,
1354 144,
1355 145,
1356 146,
1357 153,
1358 173,
1359 174,
1360 175,
1361 176,
1362 177,
1363 178,
1364 179,
1365 180,
1366 205,
1367 208,
1368 209,
1369 210,
1370 211,
1371 212,
1372 213,
1373 214,
1374 215,
1375 216,
1376 217,
1377 218,
1378 219,
1379 220,
1380 221,
1381 222,
1382 223,
1383 227,
1384 230,
1385 231,
1386 234,
1387 235,
1388 236,
1389 237,
1390 238,
1391 239,
1392 240,
1393 241,
1394 242,
1395 245,
1396 246,
1397 247,
1398 248,
1399 249,
1400 252,
1401 268,
1402 269,
1403 270,
1404 271,
1405 272,
1406 273,
1407 274,
1408 276,
1409 277,
1410 278,
1411 279,
1412 280,
1413 281,
1414 282,
1415 283,
1416 284,
1417 285,
1418 286,
1419 287,
1420 288,
1421 289,
1422 290,
1423 291,
1424 292,
1425 293,
1426 294,
1427 295,
1428 296,
1429 297,
1430 298,
1431 299,
1432 300,
1433 301,
1434 302,
1435 303,
1436 304,
1437 305,
1438 306,
1439 307,
1440 308,
1441 309,
1442 310,
1443 325,
1444 362,
1445 372,
1446 373,
1447 374,
1448 375,
1449 376,
1450 377,
1451 378,
1452 379,
1453 391,
1454 392,
1455 393,
1456 394,
1457 395,
1458 396,
1459 397,
1460 398,
1461 399,
1462 400,
1463 401,
1464 402,
1465 403,
1466 404,
1467 405,
1468 406,
1469 407,
1470 408,
1471 409,
1472 410,
1473 411,
1474 412,
1475 413,
1476 414,
1477 415,
1478 416,
1479 417,
1480 418,
1481 419,
1482 420,
1483 421,
1484 423,
1485 425,
1486 427,
1487 433,
1488 434,
1489 435,
1490 436,
1491 437,
1492 438,
1493 439,
1494 440,
1495 441,
1496 442,
1497 443,
1498 444,
1499 445,
1500 447,
1501 449,
1502 451,
1503 453,
1504 463,
1505 464,
1506 465,
1507 466,
1508 467,
1509 468,
1510 469,
1511 470,
1512 471,
1513 472,
1514 473,
1515 474,
1516 475,
1517 476,
1518 477,
1519 478,
1520 479,
1521 480,
1522 481,
1523 482,
1524 },
1525 {// czr_NT
1526 0,
1527 123,
1528 125,
1529 126,
1530 131,
1531 134,
1532 135,
1533 253,
1534 },
1535 {// cz_NT
1536 0,
1537 4,
1538 254,
1539 },
1540 {// szpr_NT
1541 0,
1542 147,
1543 150,
1544 151,
1545 152,
1546 154,
1547 159,
1548 160,
1549 161,
1550 166,
1551 167,
1552 168,
1553 181,
1554 183,
1555 184,
1556 191,
1557 192,
1558 193,
1559 198,
1560 199,
1561 200,
1562 226,
1563 255,
1564 },
1565 {// szp_NT
1566 0,
1567 6,
1568 182,
1569 185,
1570 186,
1571 256,
1572 },
1573 {// riv_NT
1574 0,
1575 7,
1576 8,
1577 },
1578 {// rlv_NT
1579 0,
1580 9,
1581 10,
1582 },
1583 {// any_NT
1584 0,
1585 11,
1586 12,
1587 13,
1588 14,
1589 15,
1590 },
1591 {// sload8_NT
1592 0,
1593 16,
1594 17,
1595 260,
1596 },
1597 {// uload8_NT
1598 0,
1599 18,
1600 19,
1601 261,
1602 275,
1603 },
1604 {// load8_NT
1605 0,
1606 20,
1607 21,
1608 262,
1609 },
1610 {// sload16_NT
1611 0,
1612 22,
1613 23,
1614 263,
1615 },
1616 {// uload16_NT
1617 0,
1618 24,
1619 25,
1620 264,
1621 },
1622 {// load16_NT
1623 0,
1624 26,
1625 27,
1626 265,
1627 },
1628 {// load32_NT
1629 0,
1630 28,
1631 29,
1632 250,
1633 251,
1634 266,
1635 446,
1636 },
1637 {// load16_32_NT
1638 0,
1639 30,
1640 31,
1641 },
1642 {// load8_16_32_NT
1643 0,
1644 32,
1645 33,
1646 },
1647 {// load64_NT
1648 0,
1649 34,
1650 35,
1651 267,
1652 448,
1653 },
1654 {// address1scaledreg_NT
1655 0,
1656 36,
1657 38,
1658 43,
1659 258,
1660 },
1661 {// address1reg_NT
1662 0,
1663 39,
1664 40,
1665 42,
1666 257,
1667 },
1668 {// address_NT
1669 0,
1670 37,
1671 41,
1672 44,
1673 45,
1674 46,
1675 47,
1676 48,
1677 259,
1678 },
1679 {// boolcmp_NT
1680 0,
1681 80,
1682 82,
1683 88,
1684 90,
1685 92,
1686 94,
1687 96,
1688 98,
1689 100,
1690 104,
1691 },
1692 {// bittest_NT
1693 0,
1694 381,
1695 382,
1696 383,
1697 384,
1698 385,
1699 386,
1700 387,
1701 388,
1702 389,
1703 390,
1704 },
1705 {// float_load_NT
1706 0,
1707 426,
1708 428,
1709 450,
1710 454,
1711 },
1712 {// double_load_NT
1713 0,
1714 422,
1715 424,
1716 452,
1717 455,
1718 },
1719 };
1720
1721 static void closure_r(BURS_TreeNode p, int c) {
1722 if (c < p.cost_rlv) {
1723 p.cost_rlv = (char)(c);
1724 p.word1 = (p.word1 & 0xFFFFFFFC) | 0x1; // p.rlv = 1
1725 }
1726 if (c < p.cost_riv) {
1727 p.cost_riv = (char)(c);
1728 p.word0 = (p.word0 & 0x9FFFFFFF) | 0x20000000; // p.riv = 1
1729 closure_riv(p, c);
1730 }
1731 if (c < p.cost_stm) {
1732 p.cost_stm = (char)(c);
1733 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1; // p.stm = 1
1734 }
1735 }
1736
1737 static void closure_czr(BURS_TreeNode p, int c) {
1738 if (c < p.cost_cz) {
1739 p.cost_cz = (char)(c);
1740 p.word0 = (p.word0 & 0xFFE7FFFF) | 0x80000; // p.cz = 1
1741 }
1742 if (c < p.cost_r) {
1743 p.cost_r = (char)(c);
1744 p.word0 = (p.word0 & 0xFFFF00FF) | 0x200; // p.r = 2
1745 closure_r(p, c);
1746 }
1747 }
1748
1749 static void closure_szpr(BURS_TreeNode p, int c) {
1750 if (c < p.cost_szp) {
1751 p.cost_szp = (char)(c);
1752 p.word0 = (p.word0 & 0xE3FFFFFF) | 0x4000000; // p.szp = 1
1753 }
1754 if (c < p.cost_r) {
1755 p.cost_r = (char)(c);
1756 p.word0 = (p.word0 & 0xFFFF00FF) | 0x300; // p.r = 3
1757 closure_r(p, c);
1758 }
1759 }
1760
1761 static void closure_riv(BURS_TreeNode p, int c) {
1762 if (c < p.cost_any) {
1763 p.cost_any = (char)(c);
1764 p.word1 = (p.word1 & 0xFFFFFFE3) | 0x8; // p.any = 2
1765 }
1766 }
1767
1768 static void closure_sload8(BURS_TreeNode p, int c) {
1769 if (c < p.cost_load8) {
1770 p.cost_load8 = (char)(c);
1771 p.word1 = (p.word1 & 0xFFFFF3FF) | 0x400; // p.load8 = 1
1772 closure_load8(p, c);
1773 }
1774 }
1775
1776 static void closure_uload8(BURS_TreeNode p, int c) {
1777 if (c < p.cost_load8) {
1778 p.cost_load8 = (char)(c);
1779 p.word1 = (p.word1 & 0xFFFFF3FF) | 0x800; // p.load8 = 2
1780 closure_load8(p, c);
1781 }
1782 }
1783
1784 static void closure_load8(BURS_TreeNode p, int c) {
1785 if (c < p.cost_load8_16_32) {
1786 p.cost_load8_16_32 = (char)(c);
1787 p.word1 = (p.word1 & 0xFE7FFFFF) | 0x1000000; // p.load8_16_32 = 2
1788 }
1789 }
1790
1791 static void closure_sload16(BURS_TreeNode p, int c) {
1792 if (c < p.cost_load16) {
1793 p.cost_load16 = (char)(c);
1794 p.word1 = (p.word1 & 0xFFFCFFFF) | 0x10000; // p.load16 = 1
1795 closure_load16(p, c);
1796 }
1797 }
1798
1799 static void closure_uload16(BURS_TreeNode p, int c) {
1800 if (c < p.cost_load16) {
1801 p.cost_load16 = (char)(c);
1802 p.word1 = (p.word1 & 0xFFFCFFFF) | 0x20000; // p.load16 = 2
1803 closure_load16(p, c);
1804 }
1805 }
1806
1807 static void closure_load16(BURS_TreeNode p, int c) {
1808 if (c < p.cost_load16_32) {
1809 p.cost_load16_32 = (char)(c);
1810 p.word1 = (p.word1 & 0xFF9FFFFF) | 0x200000; // p.load16_32 = 1
1811 closure_load16_32(p, c);
1812 }
1813 }
1814
1815 static void closure_load32(BURS_TreeNode p, int c) {
1816 if (c < p.cost_load16_32) {
1817 p.cost_load16_32 = (char)(c);
1818 p.word1 = (p.word1 & 0xFF9FFFFF) | 0x400000; // p.load16_32 = 2
1819 closure_load16_32(p, c);
1820 }
1821 }
1822
1823 static void closure_load16_32(BURS_TreeNode p, int c) {
1824 if (c < p.cost_load8_16_32) {
1825 p.cost_load8_16_32 = (char)(c);
1826 p.word1 = (p.word1 & 0xFE7FFFFF) | 0x800000; // p.load8_16_32 = 1
1827 }
1828 }
1829
1830 static void closure_address1scaledreg(BURS_TreeNode p, int c) {
1831 if (c < p.cost_address) {
1832 p.cost_address = (char)(c);
1833 p.word2 = (p.word2 & 0xFFFFFF87) | 0x8; // p.address = 1
1834 }
1835 }
1836
1837 static void closure_address1reg(BURS_TreeNode p, int c) {
1838 if (c < p.cost_address1scaledreg) {
1839 p.cost_address1scaledreg = (char)(c);
1840 p.word1 = (p.word1 & 0x8FFFFFFF) | 0x10000000; // p.address1scaledreg = 1
1841 closure_address1scaledreg(p, c);
1842 }
1843 }
1844
1845 private void label_GET_CAUGHT_EXCEPTION(BURS_TreeNode p) {
1846 p.word0 = 0;
1847 p.initCost();
1848 // r: GET_CAUGHT_EXCEPTION
1849 if (11 < p.cost_r) {
1850 p.cost_r = (char)(11);
1851 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC00; // p.r = 12
1852 closure_r(p, 11);
1853 }
1854 }
1855
1856 private void label_SET_CAUGHT_EXCEPTION(BURS_TreeNode p) {
1857 p.word0 = 0;
1858 p.initCost();
1859 BURS_TreeNode lchild;
1860 lchild = p.child1;
1861 label(lchild);
1862 int c;
1863 // stm: SET_CAUGHT_EXCEPTION(r)
1864 c = STATE(lchild).cost_r + 11;
1865 if (c < p.cost_stm) {
1866 p.cost_stm = (char)(c);
1867 p.word0 = (p.word0 & 0xFFFFFF00) | 0xD; // p.stm = 13
1868 }
1869 }
1870
1871 private void label_IG_PATCH_POINT(BURS_TreeNode p) {
1872 p.word0 = 0;
1873 p.initCost();
1874 // stm: IG_PATCH_POINT
1875 if (10 < p.cost_stm) {
1876 p.cost_stm = (char)(10);
1877 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2; // p.stm = 2
1878 }
1879 }
1880
1881 private void label_INT_ALOAD(BURS_TreeNode p) {
1882 p.word0 = 0;
1883 p.initCost();
1884 BURS_TreeNode lchild, rchild;
1885 lchild = p.child1;
1886 rchild = p.child2;
1887 label(lchild);
1888 label(rchild);
1889 int c;
1890 // load32: INT_ALOAD(riv,riv)
1891 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
1892 if (c < p.cost_load32) {
1893 p.cost_load32 = (char)(c);
1894 p.word1 = (p.word1 & 0xFFE3FFFF) | 0x80000; // p.load32 = 2
1895 closure_load32(p, c);
1896 }
1897 // r: INT_ALOAD(riv,riv)
1898 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
1899 if (c < p.cost_r) {
1900 p.cost_r = (char)(c);
1901 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7C00; // p.r = 124
1902 closure_r(p, c);
1903 }
1904 }
1905
1906 private void label_LONG_ALOAD(BURS_TreeNode p) {
1907 p.word0 = 0;
1908 p.initCost();
1909 BURS_TreeNode lchild, rchild;
1910 lchild = p.child1;
1911 rchild = p.child2;
1912 label(lchild);
1913 label(rchild);
1914 int c;
1915 // load64: LONG_ALOAD(riv,riv)
1916 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
1917 if (c < p.cost_load64) {
1918 p.cost_load64 = (char)(c);
1919 p.word1 = (p.word1 & 0xF1FFFFFF) | 0x4000000; // p.load64 = 2
1920 }
1921 // r: LONG_ALOAD(riv,riv)
1922 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 30;
1923 if (c < p.cost_r) {
1924 p.cost_r = (char)(c);
1925 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7E00; // p.r = 126
1926 closure_r(p, c);
1927 }
1928 }
1929
1930 private void label_FLOAT_ALOAD(BURS_TreeNode p) {
1931 p.word0 = 0;
1932 p.initCost();
1933 BURS_TreeNode lchild, rchild;
1934 lchild = p.child1;
1935 rchild = p.child2;
1936 label(lchild);
1937 label(rchild);
1938 int c;
1939 // r: FLOAT_ALOAD(riv,riv)
1940 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
1941 if (c < p.cost_r) {
1942 p.cost_r = (char)(c);
1943 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB900; // p.r = 185
1944 closure_r(p, c);
1945 }
1946 // float_load: FLOAT_ALOAD(riv,riv)
1947 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
1948 if (c < p.cost_float_load) {
1949 p.cost_float_load = (char)(c);
1950 p.word2 = (p.word2 & 0xFFFC7FFF) | 0x10000; // p.float_load = 2
1951 }
1952 }
1953
1954 private void label_DOUBLE_ALOAD(BURS_TreeNode p) {
1955 p.word0 = 0;
1956 p.initCost();
1957 BURS_TreeNode lchild, rchild;
1958 lchild = p.child1;
1959 rchild = p.child2;
1960 label(lchild);
1961 label(rchild);
1962 int c;
1963 // r: DOUBLE_ALOAD(riv,riv)
1964 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
1965 if (c < p.cost_r) {
1966 p.cost_r = (char)(c);
1967 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB700; // p.r = 183
1968 closure_r(p, c);
1969 }
1970 // double_load: DOUBLE_ALOAD(riv,riv)
1971 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
1972 if (c < p.cost_double_load) {
1973 p.cost_double_load = (char)(c);
1974 p.word2 = (p.word2 & 0xFFE3FFFF) | 0x80000; // p.double_load = 2
1975 }
1976 }
1977
1978 private void label_UBYTE_ALOAD(BURS_TreeNode p) {
1979 p.word0 = 0;
1980 p.initCost();
1981 BURS_TreeNode lchild, rchild;
1982 lchild = p.child1;
1983 rchild = p.child2;
1984 label(lchild);
1985 label(rchild);
1986 int c;
1987 // uload8: UBYTE_ALOAD(riv,riv)
1988 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
1989 if (c < p.cost_uload8) {
1990 p.cost_uload8 = (char)(c);
1991 p.word1 = (p.word1 & 0xFFFFFC7F) | 0x100; // p.uload8 = 2
1992 closure_uload8(p, c);
1993 }
1994 // r: UBYTE_ALOAD(riv,riv)
1995 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
1996 if (c < p.cost_r) {
1997 p.cost_r = (char)(c);
1998 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6A00; // p.r = 106
1999 closure_r(p, c);
2000 }
2001 }
2002
2003 private void label_BYTE_ALOAD(BURS_TreeNode p) {
2004 p.word0 = 0;
2005 p.initCost();
2006 BURS_TreeNode lchild, rchild;
2007 lchild = p.child1;
2008 rchild = p.child2;
2009 label(lchild);
2010 label(rchild);
2011 int c;
2012 // sload8: BYTE_ALOAD(riv,riv)
2013 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
2014 if (c < p.cost_sload8) {
2015 p.cost_sload8 = (char)(c);
2016 p.word1 = (p.word1 & 0xFFFFFF9F) | 0x40; // p.sload8 = 2
2017 closure_sload8(p, c);
2018 }
2019 // r: BYTE_ALOAD(riv,riv)
2020 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
2021 if (c < p.cost_r) {
2022 p.cost_r = (char)(c);
2023 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6800; // p.r = 104
2024 closure_r(p, c);
2025 }
2026 }
2027
2028 private void label_USHORT_ALOAD(BURS_TreeNode p) {
2029 p.word0 = 0;
2030 p.initCost();
2031 BURS_TreeNode lchild, rchild;
2032 lchild = p.child1;
2033 rchild = p.child2;
2034 label(lchild);
2035 label(rchild);
2036 int c;
2037 // uload16: USHORT_ALOAD(riv,riv)
2038 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
2039 if (c < p.cost_uload16) {
2040 p.cost_uload16 = (char)(c);
2041 p.word1 = (p.word1 & 0xFFFF3FFF) | 0x8000; // p.uload16 = 2
2042 closure_uload16(p, c);
2043 }
2044 // r: USHORT_ALOAD(riv,riv)
2045 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
2046 if (c < p.cost_r) {
2047 p.cost_r = (char)(c);
2048 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7100; // p.r = 113
2049 closure_r(p, c);
2050 }
2051 }
2052
2053 private void label_SHORT_ALOAD(BURS_TreeNode p) {
2054 p.word0 = 0;
2055 p.initCost();
2056 BURS_TreeNode lchild, rchild;
2057 lchild = p.child1;
2058 rchild = p.child2;
2059 label(lchild);
2060 label(rchild);
2061 int c;
2062 // sload16: SHORT_ALOAD(riv,riv)
2063 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
2064 if (c < p.cost_sload16) {
2065 p.cost_sload16 = (char)(c);
2066 p.word1 = (p.word1 & 0xFFFFCFFF) | 0x2000; // p.sload16 = 2
2067 closure_sload16(p, c);
2068 }
2069 // r: SHORT_ALOAD(riv,riv)
2070 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
2071 if (c < p.cost_r) {
2072 p.cost_r = (char)(c);
2073 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6F00; // p.r = 111
2074 closure_r(p, c);
2075 }
2076 }
2077
2078 private void label_INT_ASTORE(BURS_TreeNode p) {
2079 p.word0 = 0;
2080 p.initCost();
2081 BURS_TreeNode lchild, rchild;
2082 lchild = p.child1;
2083 rchild = p.child2;
2084 label(lchild);
2085 label(rchild);
2086 int c;
2087 if ( // stm: INT_ASTORE(INT_ADD(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
2088 lchild.getOpcode() == INT_ADD_opcode &&
2089 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2090 rchild.getOpcode() == OTHER_OPERAND_opcode
2091 ) {
2092 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);
2093 if (c < p.cost_stm) {
2094 p.cost_stm = (char)(c);
2095 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1A; // p.stm = 26
2096 }
2097 }
2098 if ( // stm: INT_ASTORE(INT_ADD(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
2099 lchild.getOpcode() == INT_ADD_opcode &&
2100 lchild.child2.getOpcode() == INT_ALOAD_opcode &&
2101 rchild.getOpcode() == OTHER_OPERAND_opcode
2102 ) {
2103 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);
2104 if (c < p.cost_stm) {
2105 p.cost_stm = (char)(c);
2106 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1B; // p.stm = 27
2107 }
2108 }
2109 if ( // stm: INT_ASTORE(INT_SUB(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
2110 lchild.getOpcode() == INT_SUB_opcode &&
2111 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2112 rchild.getOpcode() == OTHER_OPERAND_opcode
2113 ) {
2114 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);
2115 if (c < p.cost_stm) {
2116 p.cost_stm = (char)(c);
2117 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1E; // p.stm = 30
2118 }
2119 }
2120 if ( // stm: INT_ASTORE(INT_SUB(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
2121 lchild.getOpcode() == INT_SUB_opcode &&
2122 lchild.child2.getOpcode() == INT_ALOAD_opcode &&
2123 rchild.getOpcode() == OTHER_OPERAND_opcode
2124 ) {
2125 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);
2126 if (c < p.cost_stm) {
2127 p.cost_stm = (char)(c);
2128 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1F; // p.stm = 31
2129 }
2130 }
2131 if ( // stm: INT_ASTORE(INT_NEG(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
2132 lchild.getOpcode() == INT_NEG_opcode &&
2133 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2134 rchild.getOpcode() == OTHER_OPERAND_opcode
2135 ) {
2136 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);
2137 if (c < p.cost_stm) {
2138 p.cost_stm = (char)(c);
2139 p.word0 = (p.word0 & 0xFFFFFF00) | 0x21; // p.stm = 33
2140 }
2141 }
2142 if ( // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
2143 lchild.getOpcode() == INT_SHL_opcode &&
2144 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2145 lchild.child2.getOpcode() == INT_AND_opcode &&
2146 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
2147 rchild.getOpcode() == OTHER_OPERAND_opcode
2148 ) {
2149 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));
2150 if (c < p.cost_stm) {
2151 p.cost_stm = (char)(c);
2152 p.word0 = (p.word0 & 0xFFFFFF00) | 0x24; // p.stm = 36
2153 }
2154 }
2155 if ( // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
2156 lchild.getOpcode() == INT_SHL_opcode &&
2157 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2158 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
2159 rchild.getOpcode() == OTHER_OPERAND_opcode
2160 ) {
2161 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));
2162 if (c < p.cost_stm) {
2163 p.cost_stm = (char)(c);
2164 p.word0 = (p.word0 & 0xFFFFFF00) | 0x25; // p.stm = 37
2165 }
2166 }
2167 if ( // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
2168 lchild.getOpcode() == INT_SHR_opcode &&
2169 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2170 lchild.child2.getOpcode() == INT_AND_opcode &&
2171 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
2172 rchild.getOpcode() == OTHER_OPERAND_opcode
2173 ) {
2174 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));
2175 if (c < p.cost_stm) {
2176 p.cost_stm = (char)(c);
2177 p.word0 = (p.word0 & 0xFFFFFF00) | 0x28; // p.stm = 40
2178 }
2179 }
2180 if ( // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
2181 lchild.getOpcode() == INT_SHR_opcode &&
2182 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2183 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
2184 rchild.getOpcode() == OTHER_OPERAND_opcode
2185 ) {
2186 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));
2187 if (c < p.cost_stm) {
2188 p.cost_stm = (char)(c);
2189 p.word0 = (p.word0 & 0xFFFFFF00) | 0x29; // p.stm = 41
2190 }
2191 }
2192 if ( // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
2193 lchild.getOpcode() == INT_USHR_opcode &&
2194 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2195 lchild.child2.getOpcode() == INT_AND_opcode &&
2196 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
2197 rchild.getOpcode() == OTHER_OPERAND_opcode
2198 ) {
2199 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));
2200 if (c < p.cost_stm) {
2201 p.cost_stm = (char)(c);
2202 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2C; // p.stm = 44
2203 }
2204 }
2205 if ( // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
2206 lchild.getOpcode() == INT_USHR_opcode &&
2207 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2208 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
2209 rchild.getOpcode() == OTHER_OPERAND_opcode
2210 ) {
2211 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));
2212 if (c < p.cost_stm) {
2213 p.cost_stm = (char)(c);
2214 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2D; // p.stm = 45
2215 }
2216 }
2217 if ( // stm: INT_ASTORE(INT_AND(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
2218 lchild.getOpcode() == INT_AND_opcode &&
2219 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2220 rchild.getOpcode() == OTHER_OPERAND_opcode
2221 ) {
2222 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);
2223 if (c < p.cost_stm) {
2224 p.cost_stm = (char)(c);
2225 p.word0 = (p.word0 & 0xFFFFFF00) | 0x30; // p.stm = 48
2226 }
2227 }
2228 if ( // stm: INT_ASTORE(INT_AND(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
2229 lchild.getOpcode() == INT_AND_opcode &&
2230 lchild.child2.getOpcode() == INT_ALOAD_opcode &&
2231 rchild.getOpcode() == OTHER_OPERAND_opcode
2232 ) {
2233 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);
2234 if (c < p.cost_stm) {
2235 p.cost_stm = (char)(c);
2236 p.word0 = (p.word0 & 0xFFFFFF00) | 0x31; // p.stm = 49
2237 }
2238 }
2239 if ( // stm: INT_ASTORE(INT_OR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
2240 lchild.getOpcode() == INT_OR_opcode &&
2241 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2242 rchild.getOpcode() == OTHER_OPERAND_opcode
2243 ) {
2244 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);
2245 if (c < p.cost_stm) {
2246 p.cost_stm = (char)(c);
2247 p.word0 = (p.word0 & 0xFFFFFF00) | 0x34; // p.stm = 52
2248 }
2249 }
2250 if ( // stm: INT_ASTORE(INT_OR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
2251 lchild.getOpcode() == INT_OR_opcode &&
2252 lchild.child2.getOpcode() == INT_ALOAD_opcode &&
2253 rchild.getOpcode() == OTHER_OPERAND_opcode
2254 ) {
2255 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);
2256 if (c < p.cost_stm) {
2257 p.cost_stm = (char)(c);
2258 p.word0 = (p.word0 & 0xFFFFFF00) | 0x35; // p.stm = 53
2259 }
2260 }
2261 if ( // stm: INT_ASTORE(INT_XOR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
2262 lchild.getOpcode() == INT_XOR_opcode &&
2263 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2264 rchild.getOpcode() == OTHER_OPERAND_opcode
2265 ) {
2266 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);
2267 if (c < p.cost_stm) {
2268 p.cost_stm = (char)(c);
2269 p.word0 = (p.word0 & 0xFFFFFF00) | 0x38; // p.stm = 56
2270 }
2271 }
2272 if ( // stm: INT_ASTORE(INT_XOR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
2273 lchild.getOpcode() == INT_XOR_opcode &&
2274 lchild.child2.getOpcode() == INT_ALOAD_opcode &&
2275 rchild.getOpcode() == OTHER_OPERAND_opcode
2276 ) {
2277 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);
2278 if (c < p.cost_stm) {
2279 p.cost_stm = (char)(c);
2280 p.word0 = (p.word0 & 0xFFFFFF00) | 0x39; // p.stm = 57
2281 }
2282 }
2283 if ( // stm: INT_ASTORE(INT_NOT(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
2284 lchild.getOpcode() == INT_NOT_opcode &&
2285 lchild.child1.getOpcode() == INT_ALOAD_opcode &&
2286 rchild.getOpcode() == OTHER_OPERAND_opcode
2287 ) {
2288 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);
2289 if (c < p.cost_stm) {
2290 p.cost_stm = (char)(c);
2291 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3B; // p.stm = 59
2292 }
2293 }
2294 if ( // stm: INT_ASTORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
2295 lchild.getOpcode() == LONG_2INT_opcode &&
2296 rchild.getOpcode() == OTHER_OPERAND_opcode
2297 ) {
2298 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
2299 if (c < p.cost_stm) {
2300 p.cost_stm = (char)(c);
2301 p.word0 = (p.word0 & 0xFFFFFF00) | 0x43; // p.stm = 67
2302 }
2303 }
2304 if ( // stm: INT_ASTORE(riv,OTHER_OPERAND(riv,riv))
2305 rchild.getOpcode() == OTHER_OPERAND_opcode
2306 ) {
2307 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
2308 if (c < p.cost_stm) {
2309 p.cost_stm = (char)(c);
2310 p.word0 = (p.word0 & 0xFFFFFF00) | 0x60; // p.stm = 96
2311 }
2312 }
2313 }
2314
2315 private void label_LONG_ASTORE(BURS_TreeNode p) {
2316 p.word0 = 0;
2317 p.initCost();
2318 BURS_TreeNode lchild, rchild;
2319 lchild = p.child1;
2320 rchild = p.child2;
2321 label(lchild);
2322 label(rchild);
2323 int c;
2324 if ( // stm: LONG_ASTORE(r,OTHER_OPERAND(riv,riv))
2325 rchild.getOpcode() == OTHER_OPERAND_opcode
2326 ) {
2327 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 30;
2328 if (c < p.cost_stm) {
2329 p.cost_stm = (char)(c);
2330 p.word0 = (p.word0 & 0xFFFFFF00) | 0x63; // p.stm = 99
2331 }
2332 }
2333 if ( // stm: LONG_ASTORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
2334 lchild.getOpcode() == LONG_CONSTANT_opcode &&
2335 rchild.getOpcode() == OTHER_OPERAND_opcode
2336 ) {
2337 c = STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 26;
2338 if (c < p.cost_stm) {
2339 p.cost_stm = (char)(c);
2340 p.word0 = (p.word0 & 0xFFFFFF00) | 0x64; // p.stm = 100
2341 }
2342 }
2343 if ( // stm: LONG_ASTORE(load64,OTHER_OPERAND(riv,riv))
2344 rchild.getOpcode() == OTHER_OPERAND_opcode
2345 ) {
2346 c = STATE(lchild).cost_load64 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 32;
2347 if (c < p.cost_stm) {
2348 p.cost_stm = (char)(c);
2349 p.word0 = (p.word0 & 0xFFFFFF00) | 0x8B; // p.stm = 139
2350 }
2351 }
2352 }
2353
2354 private void label_FLOAT_ASTORE(BURS_TreeNode p) {
2355 p.word0 = 0;
2356 p.initCost();
2357 BURS_TreeNode lchild, rchild;
2358 lchild = p.child1;
2359 rchild = p.child2;
2360 label(lchild);
2361 label(rchild);
2362 int c;
2363 if ( // stm: FLOAT_ASTORE(r,OTHER_OPERAND(riv,riv))
2364 rchild.getOpcode() == OTHER_OPERAND_opcode
2365 ) {
2366 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 17;
2367 if (c < p.cost_stm) {
2368 p.cost_stm = (char)(c);
2369 p.word0 = (p.word0 & 0xFFFFFF00) | 0x83; // p.stm = 131
2370 }
2371 }
2372 }
2373
2374 private void label_DOUBLE_ASTORE(BURS_TreeNode p) {
2375 p.word0 = 0;
2376 p.initCost();
2377 BURS_TreeNode lchild, rchild;
2378 lchild = p.child1;
2379 rchild = p.child2;
2380 label(lchild);
2381 label(rchild);
2382 int c;
2383 if ( // stm: DOUBLE_ASTORE(r,OTHER_OPERAND(riv,riv))
2384 rchild.getOpcode() == OTHER_OPERAND_opcode
2385 ) {
2386 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 17;
2387 if (c < p.cost_stm) {
2388 p.cost_stm = (char)(c);
2389 p.word0 = (p.word0 & 0xFFFFFF00) | 0x81; // p.stm = 129
2390 }
2391 }
2392 }
2393
2394 private void label_BYTE_ASTORE(BURS_TreeNode p) {
2395 p.word0 = 0;
2396 p.initCost();
2397 BURS_TreeNode lchild, rchild;
2398 lchild = p.child1;
2399 rchild = p.child2;
2400 label(lchild);
2401 label(rchild);
2402 int c;
2403 if ( // stm: BYTE_ASTORE(BOOLEAN_NOT(UBYTE_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
2404 lchild.getOpcode() == BOOLEAN_NOT_opcode &&
2405 lchild.child1.getOpcode() == UBYTE_ALOAD_opcode &&
2406 rchild.getOpcode() == OTHER_OPERAND_opcode
2407 ) {
2408 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);
2409 if (c < p.cost_stm) {
2410 p.cost_stm = (char)(c);
2411 p.word0 = (p.word0 & 0xFFFFFF00) | 0x15; // p.stm = 21
2412 }
2413 }
2414 if ( // stm: BYTE_ASTORE(boolcmp,OTHER_OPERAND(riv,riv))
2415 rchild.getOpcode() == OTHER_OPERAND_opcode
2416 ) {
2417 c = STATE(lchild).cost_boolcmp + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
2418 if (c < p.cost_stm) {
2419 p.cost_stm = (char)(c);
2420 p.word0 = (p.word0 & 0xFFFFFF00) | 0x17; // p.stm = 23
2421 }
2422 }
2423 if ( // stm: BYTE_ASTORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
2424 lchild.getOpcode() == INT_2BYTE_opcode &&
2425 rchild.getOpcode() == OTHER_OPERAND_opcode
2426 ) {
2427 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
2428 if (c < p.cost_stm) {
2429 p.cost_stm = (char)(c);
2430 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3D; // p.stm = 61
2431 }
2432 }
2433 if ( // stm: BYTE_ASTORE(riv,OTHER_OPERAND(riv,riv))
2434 rchild.getOpcode() == OTHER_OPERAND_opcode
2435 ) {
2436 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
2437 if (c < p.cost_stm) {
2438 p.cost_stm = (char)(c);
2439 p.word0 = (p.word0 & 0xFFFFFF00) | 0x54; // p.stm = 84
2440 }
2441 }
2442 if ( // stm: BYTE_ASTORE(load8,OTHER_OPERAND(riv,riv))
2443 rchild.getOpcode() == OTHER_OPERAND_opcode
2444 ) {
2445 c = STATE(lchild).cost_load8 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25;
2446 if (c < p.cost_stm) {
2447 p.cost_stm = (char)(c);
2448 p.word0 = (p.word0 & 0xFFFFFF00) | 0x55; // p.stm = 85
2449 }
2450 }
2451 }
2452
2453 private void label_SHORT_ASTORE(BURS_TreeNode p) {
2454 p.word0 = 0;
2455 p.initCost();
2456 BURS_TreeNode lchild, rchild;
2457 lchild = p.child1;
2458 rchild = p.child2;
2459 label(lchild);
2460 label(rchild);
2461 int c;
2462 if ( // stm: SHORT_ASTORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
2463 lchild.getOpcode() == INT_2USHORT_opcode &&
2464 rchild.getOpcode() == OTHER_OPERAND_opcode
2465 ) {
2466 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
2467 if (c < p.cost_stm) {
2468 p.cost_stm = (char)(c);
2469 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3F; // p.stm = 63
2470 }
2471 }
2472 if ( // stm: SHORT_ASTORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
2473 lchild.getOpcode() == INT_2SHORT_opcode &&
2474 rchild.getOpcode() == OTHER_OPERAND_opcode
2475 ) {
2476 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
2477 if (c < p.cost_stm) {
2478 p.cost_stm = (char)(c);
2479 p.word0 = (p.word0 & 0xFFFFFF00) | 0x41; // p.stm = 65
2480 }
2481 }
2482 if ( // stm: SHORT_ASTORE(riv,OTHER_OPERAND(riv,riv))
2483 rchild.getOpcode() == OTHER_OPERAND_opcode
2484 ) {
2485 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
2486 if (c < p.cost_stm) {
2487 p.cost_stm = (char)(c);
2488 p.word0 = (p.word0 & 0xFFFFFF00) | 0x58; // p.stm = 88
2489 }
2490 }
2491 if ( // stm: SHORT_ASTORE(load16,OTHER_OPERAND(riv,riv))
2492 rchild.getOpcode() == OTHER_OPERAND_opcode
2493 ) {
2494 c = STATE(lchild).cost_load16 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25;
2495 if (c < p.cost_stm) {
2496 p.cost_stm = (char)(c);
2497 p.word0 = (p.word0 & 0xFFFFFF00) | 0x59; // p.stm = 89
2498 }
2499 }
2500 }
2501
2502 private void label_INT_IFCMP(BURS_TreeNode p) {
2503 p.word0 = 0;
2504 p.initCost();
2505 BURS_TreeNode lchild, rchild;
2506 lchild = p.child1;
2507 rchild = p.child2;
2508 label(lchild);
2509 label(rchild);
2510 int c;
2511 if ( // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2512 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2513 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2514 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2515 rchild.getOpcode() == INT_CONSTANT_opcode
2516 ) {
2517 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);
2518 if (c < p.cost_stm) {
2519 p.cost_stm = (char)(c);
2520 p.word0 = (p.word0 & 0xFFFFFF00) | 0x44; // p.stm = 68
2521 }
2522 }
2523 if ( // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2524 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2525 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2526 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2527 rchild.getOpcode() == INT_CONSTANT_opcode
2528 ) {
2529 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);
2530 if (c < p.cost_stm) {
2531 p.cost_stm = (char)(c);
2532 p.word0 = (p.word0 & 0xFFFFFF00) | 0x45; // p.stm = 69
2533 }
2534 }
2535 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2536 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2537 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2538 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2539 rchild.getOpcode() == INT_CONSTANT_opcode
2540 ) {
2541 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);
2542 if (c < p.cost_stm) {
2543 p.cost_stm = (char)(c);
2544 p.word0 = (p.word0 & 0xFFFFFF00) | 0x46; // p.stm = 70
2545 }
2546 }
2547 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2548 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2549 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2550 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2551 rchild.getOpcode() == INT_CONSTANT_opcode
2552 ) {
2553 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);
2554 if (c < p.cost_stm) {
2555 p.cost_stm = (char)(c);
2556 p.word0 = (p.word0 & 0xFFFFFF00) | 0x47; // p.stm = 71
2557 }
2558 }
2559 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2560 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2561 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2562 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2563 rchild.getOpcode() == INT_CONSTANT_opcode
2564 ) {
2565 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);
2566 if (c < p.cost_stm) {
2567 p.cost_stm = (char)(c);
2568 p.word0 = (p.word0 & 0xFFFFFF00) | 0x48; // p.stm = 72
2569 }
2570 }
2571 if ( // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2572 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2573 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2574 lchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
2575 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2576 rchild.getOpcode() == INT_CONSTANT_opcode
2577 ) {
2578 c = STATE(lchild.child1).cost_address + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isZERO(VR(p), 54);
2579 if (c < p.cost_stm) {
2580 p.cost_stm = (char)(c);
2581 p.word0 = (p.word0 & 0xFFFFFF00) | 0x49; // p.stm = 73
2582 }
2583 }
2584 if ( // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2585 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2586 lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
2587 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2588 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2589 rchild.getOpcode() == INT_CONSTANT_opcode
2590 ) {
2591 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);
2592 if (c < p.cost_stm) {
2593 p.cost_stm = (char)(c);
2594 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4A; // p.stm = 74
2595 }
2596 }
2597 if ( // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2598 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2599 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2600 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2601 rchild.getOpcode() == INT_CONSTANT_opcode
2602 ) {
2603 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);
2604 if (c < p.cost_stm) {
2605 p.cost_stm = (char)(c);
2606 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4B; // p.stm = 75
2607 }
2608 }
2609 if ( // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2610 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2611 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2612 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2613 rchild.getOpcode() == INT_CONSTANT_opcode
2614 ) {
2615 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);
2616 if (c < p.cost_stm) {
2617 p.cost_stm = (char)(c);
2618 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4C; // p.stm = 76
2619 }
2620 }
2621 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2622 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2623 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2624 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2625 rchild.getOpcode() == INT_CONSTANT_opcode
2626 ) {
2627 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);
2628 if (c < p.cost_stm) {
2629 p.cost_stm = (char)(c);
2630 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4D; // p.stm = 77
2631 }
2632 }
2633 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2634 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2635 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2636 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2637 rchild.getOpcode() == INT_CONSTANT_opcode
2638 ) {
2639 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);
2640 if (c < p.cost_stm) {
2641 p.cost_stm = (char)(c);
2642 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4E; // p.stm = 78
2643 }
2644 }
2645 if ( // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2646 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2647 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2648 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2649 rchild.getOpcode() == INT_CONSTANT_opcode
2650 ) {
2651 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);
2652 if (c < p.cost_stm) {
2653 p.cost_stm = (char)(c);
2654 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4F; // p.stm = 79
2655 }
2656 }
2657 if ( // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2658 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2659 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2660 lchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
2661 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2662 rchild.getOpcode() == INT_CONSTANT_opcode
2663 ) {
2664 c = STATE(lchild.child1).cost_address + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isONE(VR(p), 54);
2665 if (c < p.cost_stm) {
2666 p.cost_stm = (char)(c);
2667 p.word0 = (p.word0 & 0xFFFFFF00) | 0x50; // p.stm = 80
2668 }
2669 }
2670 if ( // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
2671 lchild.getOpcode() == ATTEMPT_INT_opcode &&
2672 lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
2673 lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
2674 lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
2675 rchild.getOpcode() == INT_CONSTANT_opcode
2676 ) {
2677 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);
2678 if (c < p.cost_stm) {
2679 p.cost_stm = (char)(c);
2680 p.word0 = (p.word0 & 0xFFFFFF00) | 0x51; // p.stm = 81
2681 }
2682 }
2683 // stm: INT_IFCMP(r,riv)
2684 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 26;
2685 if (c < p.cost_stm) {
2686 p.cost_stm = (char)(c);
2687 p.word0 = (p.word0 & 0xFFFFFF00) | 0x65; // p.stm = 101
2688 }
2689 if ( // stm: INT_IFCMP(r,INT_CONSTANT)
2690 rchild.getOpcode() == INT_CONSTANT_opcode
2691 ) {
2692 c = STATE(lchild).cost_r + (VR(p) == 0 && CMP_TO_TEST(IfCmp.getCond(P(p))) ? 24:INFINITE);
2693 if (c < p.cost_stm) {
2694 p.cost_stm = (char)(c);
2695 p.word0 = (p.word0 & 0xFFFFFF00) | 0x66; // p.stm = 102
2696 }
2697 }
2698 if ( // stm: INT_IFCMP(load8,INT_CONSTANT)
2699 rchild.getOpcode() == INT_CONSTANT_opcode
2700 ) {
2701 c = STATE(lchild).cost_load8 + FITS(IfCmp.getVal2(P(p)), 8, 28);
2702 if (c < p.cost_stm) {
2703 p.cost_stm = (char)(c);
2704 p.word0 = (p.word0 & 0xFFFFFF00) | 0x67; // p.stm = 103
2705 }
2706 }
2707 // stm: INT_IFCMP(uload8,r)
2708 c = STATE(lchild).cost_uload8 + STATE(rchild).cost_r + 28;
2709 if (c < p.cost_stm) {
2710 p.cost_stm = (char)(c);
2711 p.word0 = (p.word0 & 0xFFFFFF00) | 0x68; // p.stm = 104
2712 }
2713 // stm: INT_IFCMP(r,uload8)
2714 c = STATE(lchild).cost_r + STATE(rchild).cost_uload8 + 28;
2715 if (c < p.cost_stm) {
2716 p.cost_stm = (char)(c);
2717 p.word0 = (p.word0 & 0xFFFFFF00) | 0x69; // p.stm = 105
2718 }
2719 if ( // stm: INT_IFCMP(sload16,INT_CONSTANT)
2720 rchild.getOpcode() == INT_CONSTANT_opcode
2721 ) {
2722 c = STATE(lchild).cost_sload16 + FITS(IfCmp.getVal2(P(p)), 8, 28);
2723 if (c < p.cost_stm) {
2724 p.cost_stm = (char)(c);
2725 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6A; // p.stm = 106
2726 }
2727 }
2728 // stm: INT_IFCMP(load32,riv)
2729 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 28;
2730 if (c < p.cost_stm) {
2731 p.cost_stm = (char)(c);
2732 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6B; // p.stm = 107
2733 }
2734 // stm: INT_IFCMP(r,load32)
2735 c = STATE(lchild).cost_r + STATE(rchild).cost_load32 + 28;
2736 if (c < p.cost_stm) {
2737 p.cost_stm = (char)(c);
2738 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6C; // p.stm = 108
2739 }
2740 if ( // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
2741 rchild.getOpcode() == INT_CONSTANT_opcode
2742 ) {
2743 c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && IfCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 1 && IfCmp.getCond(P(p)).isEQUAL()) ? 13:INFINITE);
2744 if (c < p.cost_stm) {
2745 p.cost_stm = (char)(c);
2746 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6D; // p.stm = 109
2747 }
2748 }
2749 if ( // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
2750 rchild.getOpcode() == INT_CONSTANT_opcode
2751 ) {
2752 c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && IfCmp.getCond(P(p)).isEQUAL()) || (VR(p) == 1 && IfCmp.getCond(P(p)).isNOT_EQUAL()) ? 13:INFINITE);
2753 if (c < p.cost_stm) {
2754 p.cost_stm = (char)(c);
2755 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6E; // p.stm = 110
2756 }
2757 }
2758 if ( // stm: INT_IFCMP(cz,INT_CONSTANT)
2759 rchild.getOpcode() == INT_CONSTANT_opcode
2760 ) {
2761 c = STATE(lchild).cost_cz + isZERO(VR(p), 11);
2762 if (c < p.cost_stm) {
2763 p.cost_stm = (char)(c);
2764 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6F; // p.stm = 111
2765 }
2766 }
2767 if ( // stm: INT_IFCMP(szp,INT_CONSTANT)
2768 rchild.getOpcode() == INT_CONSTANT_opcode
2769 ) {
2770 c = STATE(lchild).cost_szp + (VR(p) == 0 && EQ_NE(IfCmp.getCond(P(p)))?11:INFINITE);
2771 if (c < p.cost_stm) {
2772 p.cost_stm = (char)(c);
2773 p.word0 = (p.word0 & 0xFFFFFF00) | 0x70; // p.stm = 112
2774 }
2775 }
2776 if ( // stm: INT_IFCMP(bittest,INT_CONSTANT)
2777 rchild.getOpcode() == INT_CONSTANT_opcode
2778 ) {
2779 c = STATE(lchild).cost_bittest + ((VR(p) == 0 || VR(p) == 1) && EQ_NE(IfCmp.getCond(P(p))) ? 11 : INFINITE);
2780 if (c < p.cost_stm) {
2781 p.cost_stm = (char)(c);
2782 p.word0 = (p.word0 & 0xFFFFFF00) | 0x71; // p.stm = 113
2783 }
2784 }
2785 }
2786
2787 private void label_INT_IFCMP2(BURS_TreeNode p) {
2788 p.word0 = 0;
2789 p.initCost();
2790 BURS_TreeNode lchild, rchild;
2791 lchild = p.child1;
2792 rchild = p.child2;
2793 label(lchild);
2794 label(rchild);
2795 int c;
2796 // stm: INT_IFCMP2(r,riv)
2797 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 26;
2798 if (c < p.cost_stm) {
2799 p.cost_stm = (char)(c);
2800 p.word0 = (p.word0 & 0xFFFFFF00) | 0x72; // p.stm = 114
2801 }
2802 // stm: INT_IFCMP2(load32,riv)
2803 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 28;
2804 if (c < p.cost_stm) {
2805 p.cost_stm = (char)(c);
2806 p.word0 = (p.word0 & 0xFFFFFF00) | 0x73; // p.stm = 115
2807 }
2808 // stm: INT_IFCMP2(riv,load32)
2809 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 28;
2810 if (c < p.cost_stm) {
2811 p.cost_stm = (char)(c);
2812 p.word0 = (p.word0 & 0xFFFFFF00) | 0x74; // p.stm = 116
2813 }
2814 }
2815
2816 private void label_LONG_IFCMP(BURS_TreeNode p) {
2817 p.word0 = 0;
2818 p.initCost();
2819 BURS_TreeNode lchild, rchild;
2820 lchild = p.child1;
2821 rchild = p.child2;
2822 label(lchild);
2823 label(rchild);
2824 int c;
2825 // stm: LONG_IFCMP(rlv,rlv)
2826 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 30;
2827 if (c < p.cost_stm) {
2828 p.cost_stm = (char)(c);
2829 p.word0 = (p.word0 & 0xFFFFFF00) | 0x75; // p.stm = 117
2830 }
2831 }
2832
2833 private void label_FLOAT_IFCMP(BURS_TreeNode p) {
2834 p.word0 = 0;
2835 p.initCost();
2836 BURS_TreeNode lchild, rchild;
2837 lchild = p.child1;
2838 rchild = p.child2;
2839 label(lchild);
2840 label(rchild);
2841 int c;
2842 // stm: FLOAT_IFCMP(r,r)
2843 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13;
2844 if (c < p.cost_stm) {
2845 p.cost_stm = (char)(c);
2846 p.word0 = (p.word0 & 0xFFFFFF00) | 0x85; // p.stm = 133
2847 }
2848 // stm: FLOAT_IFCMP(r,float_load)
2849 c = STATE(lchild).cost_r + STATE(rchild).cost_float_load + 15;
2850 if (c < p.cost_stm) {
2851 p.cost_stm = (char)(c);
2852 p.word0 = (p.word0 & 0xFFFFFF00) | 0x86; // p.stm = 134
2853 }
2854 // stm: FLOAT_IFCMP(float_load,r)
2855 c = STATE(lchild).cost_float_load + STATE(rchild).cost_r + 15;
2856 if (c < p.cost_stm) {
2857 p.cost_stm = (char)(c);
2858 p.word0 = (p.word0 & 0xFFFFFF00) | 0x87; // p.stm = 135
2859 }
2860 }
2861
2862 private void label_DOUBLE_IFCMP(BURS_TreeNode p) {
2863 p.word0 = 0;
2864 p.initCost();
2865 BURS_TreeNode lchild, rchild;
2866 lchild = p.child1;
2867 rchild = p.child2;
2868 label(lchild);
2869 label(rchild);
2870 int c;
2871 // stm: DOUBLE_IFCMP(r,r)
2872 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13;
2873 if (c < p.cost_stm) {
2874 p.cost_stm = (char)(c);
2875 p.word0 = (p.word0 & 0xFFFFFF00) | 0x88; // p.stm = 136
2876 }
2877 // stm: DOUBLE_IFCMP(r,double_load)
2878 c = STATE(lchild).cost_r + STATE(rchild).cost_double_load + 15;
2879 if (c < p.cost_stm) {
2880 p.cost_stm = (char)(c);
2881 p.word0 = (p.word0 & 0xFFFFFF00) | 0x89; // p.stm = 137
2882 }
2883 // stm: DOUBLE_IFCMP(double_load,r)
2884 c = STATE(lchild).cost_double_load + STATE(rchild).cost_r + 15;
2885 if (c < p.cost_stm) {
2886 p.cost_stm = (char)(c);
2887 p.word0 = (p.word0 & 0xFFFFFF00) | 0x8A; // p.stm = 138
2888 }
2889 }
2890
2891 private void label_UNINT_BEGIN(BURS_TreeNode p) {
2892 p.word0 = 0;
2893 p.initCost();
2894 // stm: UNINT_BEGIN
2895 if (10 < p.cost_stm) {
2896 p.cost_stm = (char)(10);
2897 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3; // p.stm = 3
2898 }
2899 }
2900
2901 private void label_UNINT_END(BURS_TreeNode p) {
2902 p.word0 = 0;
2903 p.initCost();
2904 // stm: UNINT_END
2905 if (10 < p.cost_stm) {
2906 p.cost_stm = (char)(10);
2907 p.word0 = (p.word0 & 0xFFFFFF00) | 0x4; // p.stm = 4
2908 }
2909 }
2910
2911 private void label_READ_CEILING(BURS_TreeNode p) {
2912 p.word0 = 0;
2913 p.initCost();
2914 // stm: READ_CEILING
2915 if (11 < p.cost_stm) {
2916 p.cost_stm = (char)(11);
2917 p.word0 = (p.word0 & 0xFFFFFF00) | 0x79; // p.stm = 121
2918 }
2919 }
2920
2921 private void label_WRITE_FLOOR(BURS_TreeNode p) {
2922 p.word0 = 0;
2923 p.initCost();
2924 // stm: WRITE_FLOOR
2925 if (11 < p.cost_stm) {
2926 p.cost_stm = (char)(11);
2927 p.word0 = (p.word0 & 0xFFFFFF00) | 0x78; // p.stm = 120
2928 }
2929 }
2930
2931 private void label_NOP(BURS_TreeNode p) {
2932 p.word0 = 0;
2933 p.initCost();
2934 // stm: NOP
2935 if (10 < p.cost_stm) {
2936 p.cost_stm = (char)(10);
2937 p.word0 = (p.word0 & 0xFFFFFF00) | 0xA; // p.stm = 10
2938 }
2939 }
2940
2941 private void label_INT_MOVE(BURS_TreeNode p) {
2942 p.word0 = 0;
2943 p.initCost();
2944 BURS_TreeNode lchild;
2945 lchild = p.child1;
2946 label(lchild);
2947 int c;
2948 // address1reg: INT_MOVE(r)
2949 c = STATE(lchild).cost_r + 0;
2950 if (c < p.cost_address1reg) {
2951 p.cost_address1reg = (char)(c);
2952 p.word2 = (p.word2 & 0xFFFFFFF8) | 0x2; // p.address1reg = 2
2953 closure_address1reg(p, c);
2954 }
2955 // r: INT_MOVE(address)
2956 c = STATE(lchild).cost_address + 20;
2957 if (c < p.cost_r) {
2958 p.cost_r = (char)(c);
2959 p.word0 = (p.word0 & 0xFFFF00FF) | 0x900; // p.r = 9
2960 closure_r(p, c);
2961 }
2962 // r: INT_MOVE(riv)
2963 c = STATE(lchild).cost_riv + 13;
2964 if (c < p.cost_r) {
2965 p.cost_r = (char)(c);
2966 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6300; // p.r = 99
2967 closure_r(p, c);
2968 }
2969 // czr: INT_MOVE(czr)
2970 c = STATE(lchild).cost_czr + 11;
2971 if (c < p.cost_czr) {
2972 p.cost_czr = (char)(c);
2973 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x70000; // p.czr = 7
2974 closure_czr(p, c);
2975 }
2976 // cz: INT_MOVE(cz)
2977 c = STATE(lchild).cost_cz + 0;
2978 if (c < p.cost_cz) {
2979 p.cost_cz = (char)(c);
2980 p.word0 = (p.word0 & 0xFFE7FFFF) | 0x100000; // p.cz = 2
2981 }
2982 // szpr: INT_MOVE(szpr)
2983 c = STATE(lchild).cost_szpr + 11;
2984 if (c < p.cost_szpr) {
2985 p.cost_szpr = (char)(c);
2986 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2C00000; // p.szpr = 22
2987 closure_szpr(p, c);
2988 }
2989 // szp: INT_MOVE(szp)
2990 c = STATE(lchild).cost_szp + 0;
2991 if (c < p.cost_szp) {
2992 p.cost_szp = (char)(c);
2993 p.word0 = (p.word0 & 0xE3FFFFFF) | 0x14000000; // p.szp = 5
2994 }
2995 // address1reg: INT_MOVE(address1reg)
2996 c = STATE(lchild).cost_address1reg + 0;
2997 if (c < p.cost_address1reg) {
2998 p.cost_address1reg = (char)(c);
2999 p.word2 = (p.word2 & 0xFFFFFFF8) | 0x4; // p.address1reg = 4
3000 closure_address1reg(p, c);
3001 }
3002 // address1scaledreg: INT_MOVE(address1scaledreg)
3003 c = STATE(lchild).cost_address1scaledreg + 0;
3004 if (c < p.cost_address1scaledreg) {
3005 p.cost_address1scaledreg = (char)(c);
3006 p.word1 = (p.word1 & 0x8FFFFFFF) | 0x40000000; // p.address1scaledreg = 4
3007 closure_address1scaledreg(p, c);
3008 }
3009 // address: INT_MOVE(address)
3010 c = STATE(lchild).cost_address + 0;
3011 if (c < p.cost_address) {
3012 p.cost_address = (char)(c);
3013 p.word2 = (p.word2 & 0xFFFFFF87) | 0x40; // p.address = 8
3014 }
3015 // sload8: INT_MOVE(sload8)
3016 c = STATE(lchild).cost_sload8 + 0;
3017 if (c < p.cost_sload8) {
3018 p.cost_sload8 = (char)(c);
3019 p.word1 = (p.word1 & 0xFFFFFF9F) | 0x60; // p.sload8 = 3
3020 closure_sload8(p, c);
3021 }
3022 // uload8: INT_MOVE(uload8)
3023 c = STATE(lchild).cost_uload8 + 0;
3024 if (c < p.cost_uload8) {
3025 p.cost_uload8 = (char)(c);
3026 p.word1 = (p.word1 & 0xFFFFFC7F) | 0x180; // p.uload8 = 3
3027 closure_uload8(p, c);
3028 }
3029 // load8: INT_MOVE(load8)
3030 c = STATE(lchild).cost_load8 + 0;
3031 if (c < p.cost_load8) {
3032 p.cost_load8 = (char)(c);
3033 p.word1 = (p.word1 & 0xFFFFF3FF) | 0xC00; // p.load8 = 3
3034 closure_load8(p, c);
3035 }
3036 // sload16: INT_MOVE(sload16)
3037 c = STATE(lchild).cost_sload16 + 0;
3038 if (c < p.cost_sload16) {
3039 p.cost_sload16 = (char)(c);
3040 p.word1 = (p.word1 & 0xFFFFCFFF) | 0x3000; // p.sload16 = 3
3041 closure_sload16(p, c);
3042 }
3043 // uload16: INT_MOVE(uload16)
3044 c = STATE(lchild).cost_uload16 + 0;
3045 if (c < p.cost_uload16) {
3046 p.cost_uload16 = (char)(c);
3047 p.word1 = (p.word1 & 0xFFFF3FFF) | 0xC000; // p.uload16 = 3
3048 closure_uload16(p, c);
3049 }
3050 // load16: INT_MOVE(load16)
3051 c = STATE(lchild).cost_load16 + 0;
3052 if (c < p.cost_load16) {
3053 p.cost_load16 = (char)(c);
3054 p.word1 = (p.word1 & 0xFFFCFFFF) | 0x30000; // p.load16 = 3
3055 closure_load16(p, c);
3056 }
3057 // load32: INT_MOVE(load32)
3058 c = STATE(lchild).cost_load32 + 0;
3059 if (c < p.cost_load32) {
3060 p.cost_load32 = (char)(c);
3061 p.word1 = (p.word1 & 0xFFE3FFFF) | 0x140000; // p.load32 = 5
3062 closure_load32(p, c);
3063 }
3064 }
3065
3066 private void label_LONG_MOVE(BURS_TreeNode p) {
3067 p.word0 = 0;
3068 p.initCost();
3069 BURS_TreeNode lchild;
3070 lchild = p.child1;
3071 label(lchild);
3072 int c;
3073 // load64: LONG_MOVE(load64)
3074 c = STATE(lchild).cost_load64 + 0;
3075 if (c < p.cost_load64) {
3076 p.cost_load64 = (char)(c);
3077 p.word1 = (p.word1 & 0xF1FFFFFF) | 0x6000000; // p.load64 = 3
3078 }
3079 // r: LONG_MOVE(r)
3080 c = STATE(lchild).cost_r + 23;
3081 if (c < p.cost_r) {
3082 p.cost_r = (char)(c);
3083 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6400; // p.r = 100
3084 closure_r(p, c);
3085 }
3086 if ( // r: LONG_MOVE(LONG_CONSTANT)
3087 lchild.getOpcode() == LONG_CONSTANT_opcode
3088 ) {
3089 c = 21;
3090 if (c < p.cost_r) {
3091 p.cost_r = (char)(c);
3092 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6500; // p.r = 101
3093 closure_r(p, c);
3094 }
3095 }
3096 }
3097
3098 private void label_FLOAT_MOVE(BURS_TreeNode p) {
3099 p.word0 = 0;
3100 p.initCost();
3101 BURS_TreeNode lchild;
3102 lchild = p.child1;
3103 label(lchild);
3104 int c;
3105 // r: FLOAT_MOVE(r)
3106 c = STATE(lchild).cost_r + 13;
3107 if (c < p.cost_r) {
3108 p.cost_r = (char)(c);
3109 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB400; // p.r = 180
3110 closure_r(p, c);
3111 }
3112 }
3113
3114 private void label_DOUBLE_MOVE(BURS_TreeNode p) {
3115 p.word0 = 0;
3116 p.initCost();
3117 BURS_TreeNode lchild;
3118 lchild = p.child1;
3119 label(lchild);
3120 int c;
3121 // r: DOUBLE_MOVE(r)
3122 c = STATE(lchild).cost_r + 13;
3123 if (c < p.cost_r) {
3124 p.cost_r = (char)(c);
3125 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB500; // p.r = 181
3126 closure_r(p, c);
3127 }
3128 }
3129
3130 private void label_GUARD_MOVE(BURS_TreeNode p) {
3131 p.word0 = 0;
3132 p.initCost();
3133 // r: GUARD_MOVE
3134 if (11 < p.cost_r) {
3135 p.cost_r = (char)(11);
3136 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA00; // p.r = 10
3137 closure_r(p, 11);
3138 }
3139 }
3140
3141 private void label_GUARD_COMBINE(BURS_TreeNode p) {
3142 p.word0 = 0;
3143 p.initCost();
3144 // r: GUARD_COMBINE
3145 if (11 < p.cost_r) {
3146 p.cost_r = (char)(11);
3147 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB00; // p.r = 11
3148 closure_r(p, 11);
3149 }
3150 }
3151
3152 private void label_INT_ADD(BURS_TreeNode p) {
3153 p.word0 = 0;
3154 p.initCost();
3155 BURS_TreeNode lchild, rchild;
3156 lchild = p.child1;
3157 rchild = p.child2;
3158 label(lchild);
3159 label(rchild);
3160 int c;
3161 if ( // address1reg: INT_ADD(r,INT_CONSTANT)
3162 rchild.getOpcode() == INT_CONSTANT_opcode
3163 ) {
3164 c = STATE(lchild).cost_r + 0;
3165 if (c < p.cost_address1reg) {
3166 p.cost_address1reg = (char)(c);
3167 p.word2 = (p.word2 & 0xFFFFFFF8) | 0x1; // p.address1reg = 1
3168 closure_address1reg(p, c);
3169 }
3170 }
3171 // address: INT_ADD(r,r)
3172 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 0;
3173 if (c < p.cost_address) {
3174 p.cost_address = (char)(c);
3175 p.word2 = (p.word2 & 0xFFFFFF87) | 0x10; // p.address = 2
3176 }
3177 if ( // address1reg: INT_ADD(address1reg,INT_CONSTANT)
3178 rchild.getOpcode() == INT_CONSTANT_opcode
3179 ) {
3180 c = STATE(lchild).cost_address1reg + 0;
3181 if (c < p.cost_address1reg) {
3182 p.cost_address1reg = (char)(c);
3183 p.word2 = (p.word2 & 0xFFFFFFF8) | 0x3; // p.address1reg = 3
3184 closure_address1reg(p, c);
3185 }
3186 }
3187 if ( // address1scaledreg: INT_ADD(address1scaledreg,INT_CONSTANT)
3188 rchild.getOpcode() == INT_CONSTANT_opcode
3189 ) {
3190 c = STATE(lchild).cost_address1scaledreg + 0;
3191 if (c < p.cost_address1scaledreg) {
3192 p.cost_address1scaledreg = (char)(c);
3193 p.word1 = (p.word1 & 0x8FFFFFFF) | 0x30000000; // p.address1scaledreg = 3
3194 closure_address1scaledreg(p, c);
3195 }
3196 }
3197 // address: INT_ADD(r,address1scaledreg)
3198 c = STATE(lchild).cost_r + STATE(rchild).cost_address1scaledreg + 0;
3199 if (c < p.cost_address) {
3200 p.cost_address = (char)(c);
3201 p.word2 = (p.word2 & 0xFFFFFF87) | 0x18; // p.address = 3
3202 }
3203 // address: INT_ADD(address1scaledreg,r)
3204 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_r + 0;
3205 if (c < p.cost_address) {
3206 p.cost_address = (char)(c);
3207 p.word2 = (p.word2 & 0xFFFFFF87) | 0x20; // p.address = 4
3208 }
3209 if ( // address: INT_ADD(address1scaledreg,INT_CONSTANT)
3210 rchild.getOpcode() == INT_CONSTANT_opcode
3211 ) {
3212 c = STATE(lchild).cost_address1scaledreg + 0;
3213 if (c < p.cost_address) {
3214 p.cost_address = (char)(c);
3215 p.word2 = (p.word2 & 0xFFFFFF87) | 0x28; // p.address = 5
3216 }
3217 }
3218 // address: INT_ADD(address1scaledreg,address1reg)
3219 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 0;
3220 if (c < p.cost_address) {
3221 p.cost_address = (char)(c);
3222 p.word2 = (p.word2 & 0xFFFFFF87) | 0x30; // p.address = 6
3223 }
3224 // address: INT_ADD(address1reg,address1scaledreg)
3225 c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 0;
3226 if (c < p.cost_address) {
3227 p.cost_address = (char)(c);
3228 p.word2 = (p.word2 & 0xFFFFFF87) | 0x38; // p.address = 7
3229 }
3230 // r: INT_ADD(address1scaledreg,r)
3231 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_r + 11;
3232 if (c < p.cost_r) {
3233 p.cost_r = (char)(c);
3234 p.word0 = (p.word0 & 0xFFFF00FF) | 0x400; // p.r = 4
3235 closure_r(p, c);
3236 }
3237 // r: INT_ADD(r,address1scaledreg)
3238 c = STATE(lchild).cost_r + STATE(rchild).cost_address1scaledreg + 11;
3239 if (c < p.cost_r) {
3240 p.cost_r = (char)(c);
3241 p.word0 = (p.word0 & 0xFFFF00FF) | 0x500; // p.r = 5
3242 closure_r(p, c);
3243 }
3244 // r: INT_ADD(address1scaledreg,address1reg)
3245 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 11;
3246 if (c < p.cost_r) {
3247 p.cost_r = (char)(c);
3248 p.word0 = (p.word0 & 0xFFFF00FF) | 0x600; // p.r = 6
3249 closure_r(p, c);
3250 }
3251 // r: INT_ADD(address1reg,address1scaledreg)
3252 c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 11;
3253 if (c < p.cost_r) {
3254 p.cost_r = (char)(c);
3255 p.word0 = (p.word0 & 0xFFFF00FF) | 0x700; // p.r = 7
3256 closure_r(p, c);
3257 }
3258 if ( // r: INT_ADD(address,INT_CONSTANT)
3259 rchild.getOpcode() == INT_CONSTANT_opcode
3260 ) {
3261 c = STATE(lchild).cost_address + 11;
3262 if (c < p.cost_r) {
3263 p.cost_r = (char)(c);
3264 p.word0 = (p.word0 & 0xFFFF00FF) | 0x800; // p.r = 8
3265 closure_r(p, c);
3266 }
3267 }
3268 // czr: INT_ADD(r,riv)
3269 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 13;
3270 if (c < p.cost_czr) {
3271 p.cost_czr = (char)(c);
3272 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x10000; // p.czr = 1
3273 closure_czr(p, c);
3274 }
3275 // r: INT_ADD(r,riv)
3276 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);
3277 if (c < p.cost_r) {
3278 p.cost_r = (char)(c);
3279 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2E00; // p.r = 46
3280 closure_r(p, c);
3281 }
3282 // czr: INT_ADD(riv,load32)
3283 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
3284 if (c < p.cost_czr) {
3285 p.cost_czr = (char)(c);
3286 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x20000; // p.czr = 2
3287 closure_czr(p, c);
3288 }
3289 // czr: INT_ADD(load32,riv)
3290 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
3291 if (c < p.cost_czr) {
3292 p.cost_czr = (char)(c);
3293 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x30000; // p.czr = 3
3294 closure_czr(p, c);
3295 }
3296 }
3297
3298 private void label_LONG_ADD(BURS_TreeNode p) {
3299 p.word0 = 0;
3300 p.initCost();
3301 BURS_TreeNode lchild, rchild;
3302 lchild = p.child1;
3303 rchild = p.child2;
3304 label(lchild);
3305 label(rchild);
3306 int c;
3307 // r: LONG_ADD(r,rlv)
3308 c = STATE(lchild).cost_r + STATE(rchild).cost_rlv + 23;
3309 if (c < p.cost_r) {
3310 p.cost_r = (char)(c);
3311 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4200; // p.r = 66
3312 closure_r(p, c);
3313 }
3314 }
3315
3316 private void label_FLOAT_ADD(BURS_TreeNode p) {
3317 p.word0 = 0;
3318 p.initCost();
3319 BURS_TreeNode lchild, rchild;
3320 lchild = p.child1;
3321 rchild = p.child2;
3322 label(lchild);
3323 label(rchild);
3324 int c;
3325 // r: FLOAT_ADD(r,r)
3326 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13;
3327 if (c < p.cost_r) {
3328 p.cost_r = (char)(c);
3329 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9800; // p.r = 152
3330 closure_r(p, c);
3331 }
3332 // r: FLOAT_ADD(r,float_load)
3333 c = STATE(lchild).cost_r + STATE(rchild).cost_float_load + 15;
3334 if (c < p.cost_r) {
3335 p.cost_r = (char)(c);
3336 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9900; // p.r = 153
3337 closure_r(p, c);
3338 }
3339 // r: FLOAT_ADD(float_load,r)
3340 c = STATE(lchild).cost_float_load + STATE(rchild).cost_r + 15;
3341 if (c < p.cost_r) {
3342 p.cost_r = (char)(c);
3343 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9A00; // p.r = 154
3344 closure_r(p, c);
3345 }
3346 }
3347
3348 private void label_DOUBLE_ADD(BURS_TreeNode p) {
3349 p.word0 = 0;
3350 p.initCost();
3351 BURS_TreeNode lchild, rchild;
3352 lchild = p.child1;
3353 rchild = p.child2;
3354 label(lchild);
3355 label(rchild);
3356 int c;
3357 // r: DOUBLE_ADD(r,r)
3358 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13;
3359 if (c < p.cost_r) {
3360 p.cost_r = (char)(c);
3361 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9B00; // p.r = 155
3362 closure_r(p, c);
3363 }
3364 // r: DOUBLE_ADD(r,double_load)
3365 c = STATE(lchild).cost_r + STATE(rchild).cost_double_load + 15;
3366 if (c < p.cost_r) {
3367 p.cost_r = (char)(c);
3368 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9C00; // p.r = 156
3369 closure_r(p, c);
3370 }
3371 // r: DOUBLE_ADD(double_load,r)
3372 c = STATE(lchild).cost_double_load + STATE(rchild).cost_r + 15;
3373 if (c < p.cost_r) {
3374 p.cost_r = (char)(c);
3375 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9D00; // p.r = 157
3376 closure_r(p, c);
3377 }
3378 }
3379
3380 private void label_INT_SUB(BURS_TreeNode p) {
3381 p.word0 = 0;
3382 p.initCost();
3383 BURS_TreeNode lchild, rchild;
3384 lchild = p.child1;
3385 rchild = p.child2;
3386 label(lchild);
3387 label(rchild);
3388 int c;
3389 // czr: INT_SUB(riv,r)
3390 c = STATE(lchild).cost_riv + STATE(rchild).cost_r + 13;
3391 if (c < p.cost_czr) {
3392 p.cost_czr = (char)(c);
3393 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x40000; // p.czr = 4
3394 closure_czr(p, c);
3395 }
3396 // r: INT_SUB(riv,r)
3397 c = STATE(lchild).cost_riv + STATE(rchild).cost_r + (Binary.getResult(P(p)).similar(Binary.getVal2(P(p))) ? 13-2 : INFINITE);
3398 if (c < p.cost_r) {
3399 p.cost_r = (char)(c);
3400 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2F00; // p.r = 47
3401 closure_r(p, c);
3402 }
3403 // r: INT_SUB(load32,r)
3404 c = STATE(lchild).cost_load32 + STATE(rchild).cost_r + (Binary.getResult(P(p)).similar(Binary.getVal2(P(p))) ? 15-2 : INFINITE);
3405 if (c < p.cost_r) {
3406 p.cost_r = (char)(c);
3407 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3000; // p.r = 48
3408 closure_r(p, c);
3409 }
3410 // czr: INT_SUB(riv,load32)
3411 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
3412 if (c < p.cost_czr) {
3413 p.cost_czr = (char)(c);
3414 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x50000; // p.czr = 5
3415 closure_czr(p, c);
3416 }
3417 // czr: INT_SUB(load32,riv)
3418 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
3419 if (c < p.cost_czr) {
3420 p.cost_czr = (char)(c);
3421 p.word0 = (p.word0 & 0xFFF8FFFF) | 0x60000; // p.czr = 6
3422 closure_czr(p, c);
3423 }
3424 }
3425
3426 private void label_LONG_SUB(BURS_TreeNode p) {
3427 p.word0 = 0;
3428 p.initCost();
3429 BURS_TreeNode lchild, rchild;
3430 lchild = p.child1;
3431 rchild = p.child2;
3432 label(lchild);
3433 label(rchild);
3434 int c;
3435 // r: LONG_SUB(rlv,rlv)
3436 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23;
3437 if (c < p.cost_r) {
3438 p.cost_r = (char)(c);
3439 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4300; // p.r = 67
3440 closure_r(p, c);
3441 }
3442 }
3443
3444 private void label_FLOAT_SUB(BURS_TreeNode p) {
3445 p.word0 = 0;
3446 p.initCost();
3447 BURS_TreeNode lchild, rchild;
3448 lchild = p.child1;
3449 rchild = p.child2;
3450 label(lchild);
3451 label(rchild);
3452 int c;
3453 // r: FLOAT_SUB(r,r)
3454 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13;
3455 if (c < p.cost_r) {
3456 p.cost_r = (char)(c);
3457 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9E00; // p.r = 158
3458 closure_r(p, c);
3459 }
3460 // r: FLOAT_SUB(r,float_load)
3461 c = STATE(lchild).cost_r + STATE(rchild).cost_float_load + 15;
3462 if (c < p.cost_r) {
3463 p.cost_r = (char)(c);
3464 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9F00; // p.r = 159
3465 closure_r(p, c);
3466 }
3467 }
3468
3469 private void label_DOUBLE_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: DOUBLE_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) | 0xA000; // p.r = 160
3483 closure_r(p, c);
3484 }
3485 // r: DOUBLE_SUB(r,double_load)
3486 c = STATE(lchild).cost_r + STATE(rchild).cost_double_load + 15;
3487 if (c < p.cost_r) {
3488 p.cost_r = (char)(c);
3489 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA100; // p.r = 161
3490 closure_r(p, c);
3491 }
3492 }
3493
3494 private void label_INT_MUL(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: INT_MUL(riv,riv)
3504 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13;
3505 if (c < p.cost_r) {
3506 p.cost_r = (char)(c);
3507 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3100; // p.r = 49
3508 closure_r(p, c);
3509 }
3510 // r: INT_MUL(riv,load32)
3511 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
3512 if (c < p.cost_r) {
3513 p.cost_r = (char)(c);
3514 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3200; // p.r = 50
3515 closure_r(p, c);
3516 }
3517 // r: INT_MUL(load32,riv)
3518 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
3519 if (c < p.cost_r) {
3520 p.cost_r = (char)(c);
3521 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3300; // p.r = 51
3522 closure_r(p, c);
3523 }
3524 }
3525
3526 private void label_LONG_MUL(BURS_TreeNode p) {
3527 p.word0 = 0;
3528 p.initCost();
3529 BURS_TreeNode lchild, rchild;
3530 lchild = p.child1;
3531 rchild = p.child2;
3532 label(lchild);
3533 label(rchild);
3534 int c;
3535 // r: LONG_MUL(rlv,rlv)
3536 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23;
3537 if (c < p.cost_r) {
3538 p.cost_r = (char)(c);
3539 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4400; // p.r = 68
3540 closure_r(p, c);
3541 }
3542 }
3543
3544 private void label_FLOAT_MUL(BURS_TreeNode p) {
3545 p.word0 = 0;
3546 p.initCost();
3547 BURS_TreeNode lchild, rchild;
3548 lchild = p.child1;
3549 rchild = p.child2;
3550 label(lchild);
3551 label(rchild);
3552 int c;
3553 // r: FLOAT_MUL(r,r)
3554 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13;
3555 if (c < p.cost_r) {
3556 p.cost_r = (char)(c);
3557 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA200; // p.r = 162
3558 closure_r(p, c);
3559 }
3560 // r: FLOAT_MUL(r,float_load)
3561 c = STATE(lchild).cost_r + STATE(rchild).cost_float_load + 15;
3562 if (c < p.cost_r) {
3563 p.cost_r = (char)(c);
3564 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA300; // p.r = 163
3565 closure_r(p, c);
3566 }
3567 // r: FLOAT_MUL(float_load,r)
3568 c = STATE(lchild).cost_float_load + STATE(rchild).cost_r + 15;
3569 if (c < p.cost_r) {
3570 p.cost_r = (char)(c);
3571 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA400; // p.r = 164
3572 closure_r(p, c);
3573 }
3574 }
3575
3576 private void label_DOUBLE_MUL(BURS_TreeNode p) {
3577 p.word0 = 0;
3578 p.initCost();
3579 BURS_TreeNode lchild, rchild;
3580 lchild = p.child1;
3581 rchild = p.child2;
3582 label(lchild);
3583 label(rchild);
3584 int c;
3585 // r: DOUBLE_MUL(r,r)
3586 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13;
3587 if (c < p.cost_r) {
3588 p.cost_r = (char)(c);
3589 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA500; // p.r = 165
3590 closure_r(p, c);
3591 }
3592 // r: DOUBLE_MUL(r,double_load)
3593 c = STATE(lchild).cost_r + STATE(rchild).cost_double_load + 15;
3594 if (c < p.cost_r) {
3595 p.cost_r = (char)(c);
3596 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA600; // p.r = 166
3597 closure_r(p, c);
3598 }
3599 // r: DOUBLE_MUL(double_load,r)
3600 c = STATE(lchild).cost_double_load + STATE(rchild).cost_r + 15;
3601 if (c < p.cost_r) {
3602 p.cost_r = (char)(c);
3603 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA700; // p.r = 167
3604 closure_r(p, c);
3605 }
3606 }
3607
3608 private void label_INT_DIV(BURS_TreeNode p) {
3609 p.word0 = 0;
3610 p.initCost();
3611 BURS_TreeNode lchild, rchild;
3612 lchild = p.child1;
3613 rchild = p.child2;
3614 label(lchild);
3615 label(rchild);
3616 int c;
3617 // r: INT_DIV(riv,riv)
3618 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 52;
3619 if (c < p.cost_r) {
3620 p.cost_r = (char)(c);
3621 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3400; // p.r = 52
3622 closure_r(p, c);
3623 }
3624 // r: INT_DIV(riv,load32)
3625 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 55;
3626 if (c < p.cost_r) {
3627 p.cost_r = (char)(c);
3628 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3500; // p.r = 53
3629 closure_r(p, c);
3630 }
3631 }
3632
3633 private void label_FLOAT_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: FLOAT_DIV(r,r)
3643 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13;
3644 if (c < p.cost_r) {
3645 p.cost_r = (char)(c);
3646 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA800; // p.r = 168
3647 closure_r(p, c);
3648 }
3649 // r: FLOAT_DIV(r,float_load)
3650 c = STATE(lchild).cost_r + STATE(rchild).cost_float_load + 15;
3651 if (c < p.cost_r) {
3652 p.cost_r = (char)(c);
3653 p.word0 = (p.word0 & 0xFFFF00FF) | 0xA900; // p.r = 169
3654 closure_r(p, c);
3655 }
3656 }
3657
3658 private void label_DOUBLE_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: DOUBLE_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) | 0xAA00; // p.r = 170
3672 closure_r(p, c);
3673 }
3674 // r: DOUBLE_DIV(r,double_load)
3675 c = STATE(lchild).cost_r + STATE(rchild).cost_double_load + 15;
3676 if (c < p.cost_r) {
3677 p.cost_r = (char)(c);
3678 p.word0 = (p.word0 & 0xFFFF00FF) | 0xAB00; // p.r = 171
3679 closure_r(p, c);
3680 }
3681 }
3682
3683 private void label_INT_REM(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: INT_REM(riv,riv)
3693 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 52;
3694 if (c < p.cost_r) {
3695 p.cost_r = (char)(c);
3696 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3600; // p.r = 54
3697 closure_r(p, c);
3698 }
3699 // r: INT_REM(riv,load32)
3700 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 55;
3701 if (c < p.cost_r) {
3702 p.cost_r = (char)(c);
3703 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3700; // p.r = 55
3704 closure_r(p, c);
3705 }
3706 }
3707
3708 private void label_FLOAT_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: FLOAT_REM(r,r)
3718 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13;
3719 if (c < p.cost_r) {
3720 p.cost_r = (char)(c);
3721 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB000; // p.r = 176
3722 closure_r(p, c);
3723 }
3724 }
3725
3726 private void label_DOUBLE_REM(BURS_TreeNode p) {
3727 p.word0 = 0;
3728 p.initCost();
3729 BURS_TreeNode lchild, rchild;
3730 lchild = p.child1;
3731 rchild = p.child2;
3732 label(lchild);
3733 label(rchild);
3734 int c;
3735 // r: DOUBLE_REM(r,r)
3736 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 13;
3737 if (c < p.cost_r) {
3738 p.cost_r = (char)(c);
3739 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB100; // p.r = 177
3740 closure_r(p, c);
3741 }
3742 }
3743
3744 private void label_INT_NEG(BURS_TreeNode p) {
3745 p.word0 = 0;
3746 p.initCost();
3747 BURS_TreeNode lchild;
3748 lchild = p.child1;
3749 label(lchild);
3750 int c;
3751 // szpr: INT_NEG(r)
3752 c = STATE(lchild).cost_r + 13;
3753 if (c < p.cost_szpr) {
3754 p.cost_szpr = (char)(c);
3755 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x200000; // p.szpr = 1
3756 closure_szpr(p, c);
3757 }
3758 }
3759
3760 private void label_LONG_NEG(BURS_TreeNode p) {
3761 p.word0 = 0;
3762 p.initCost();
3763 BURS_TreeNode lchild;
3764 lchild = p.child1;
3765 label(lchild);
3766 int c;
3767 // r: LONG_NEG(r)
3768 c = STATE(lchild).cost_r + 23;
3769 if (c < p.cost_r) {
3770 p.cost_r = (char)(c);
3771 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4500; // p.r = 69
3772 closure_r(p, c);
3773 }
3774 }
3775
3776 private void label_FLOAT_NEG(BURS_TreeNode p) {
3777 p.word0 = 0;
3778 p.initCost();
3779 BURS_TreeNode lchild;
3780 lchild = p.child1;
3781 label(lchild);
3782 int c;
3783 // r: FLOAT_NEG(r)
3784 c = STATE(lchild).cost_r + 26;
3785 if (c < p.cost_r) {
3786 p.cost_r = (char)(c);
3787 p.word0 = (p.word0 & 0xFFFF00FF) | 0xAC00; // p.r = 172
3788 closure_r(p, c);
3789 }
3790 }
3791
3792 private void label_DOUBLE_NEG(BURS_TreeNode p) {
3793 p.word0 = 0;
3794 p.initCost();
3795 BURS_TreeNode lchild;
3796 lchild = p.child1;
3797 label(lchild);
3798 int c;
3799 // r: DOUBLE_NEG(r)
3800 c = STATE(lchild).cost_r + 26;
3801 if (c < p.cost_r) {
3802 p.cost_r = (char)(c);
3803 p.word0 = (p.word0 & 0xFFFF00FF) | 0xAD00; // p.r = 173
3804 closure_r(p, c);
3805 }
3806 }
3807
3808 private void label_FLOAT_SQRT(BURS_TreeNode p) {
3809 p.word0 = 0;
3810 p.initCost();
3811 BURS_TreeNode lchild;
3812 lchild = p.child1;
3813 label(lchild);
3814 int c;
3815 // r: FLOAT_SQRT(r)
3816 c = STATE(lchild).cost_r + 13;
3817 if (c < p.cost_r) {
3818 p.cost_r = (char)(c);
3819 p.word0 = (p.word0 & 0xFFFF00FF) | 0xAE00; // p.r = 174
3820 closure_r(p, c);
3821 }
3822 }
3823
3824 private void label_DOUBLE_SQRT(BURS_TreeNode p) {
3825 p.word0 = 0;
3826 p.initCost();
3827 BURS_TreeNode lchild;
3828 lchild = p.child1;
3829 label(lchild);
3830 int c;
3831 // r: DOUBLE_SQRT(r)
3832 c = STATE(lchild).cost_r + 13;
3833 if (c < p.cost_r) {
3834 p.cost_r = (char)(c);
3835 p.word0 = (p.word0 & 0xFFFF00FF) | 0xAF00; // p.r = 175
3836 closure_r(p, c);
3837 }
3838 }
3839
3840 private void label_INT_SHL(BURS_TreeNode p) {
3841 p.word0 = 0;
3842 p.initCost();
3843 BURS_TreeNode lchild, rchild;
3844 lchild = p.child1;
3845 rchild = p.child2;
3846 label(lchild);
3847 label(rchild);
3848 int c;
3849 if ( // address1scaledreg: INT_SHL(r,INT_CONSTANT)
3850 rchild.getOpcode() == INT_CONSTANT_opcode
3851 ) {
3852 c = STATE(lchild).cost_r + LEA_SHIFT(Binary.getVal2(P(p)), 0);
3853 if (c < p.cost_address1scaledreg) {
3854 p.cost_address1scaledreg = (char)(c);
3855 p.word1 = (p.word1 & 0x8FFFFFFF) | 0x20000000; // p.address1scaledreg = 2
3856 closure_address1scaledreg(p, c);
3857 }
3858 }
3859 if ( // szpr: INT_SHL(riv,INT_AND(r,INT_CONSTANT))
3860 rchild.getOpcode() == INT_AND_opcode &&
3861 rchild.child2.getOpcode() == INT_CONSTANT_opcode
3862 ) {
3863 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_r + (VRR(p) == 31 ? 23 : INFINITE);
3864 if (c < p.cost_szpr) {
3865 p.cost_szpr = (char)(c);
3866 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x400000; // p.szpr = 2
3867 closure_szpr(p, c);
3868 }
3869 }
3870 // szpr: INT_SHL(riv,riv)
3871 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 23;
3872 if (c < p.cost_szpr) {
3873 p.cost_szpr = (char)(c);
3874 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x600000; // p.szpr = 3
3875 closure_szpr(p, c);
3876 }
3877 if ( // szpr: INT_SHL(r,INT_CONSTANT)
3878 rchild.getOpcode() == INT_CONSTANT_opcode
3879 ) {
3880 c = STATE(lchild).cost_r + 13;
3881 if (c < p.cost_szpr) {
3882 p.cost_szpr = (char)(c);
3883 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x800000; // p.szpr = 4
3884 closure_szpr(p, c);
3885 }
3886 }
3887 if ( // r: INT_SHL(r,INT_CONSTANT)
3888 rchild.getOpcode() == INT_CONSTANT_opcode
3889 ) {
3890 c = STATE(lchild).cost_r + (!Binary.getResult(P(p)).similar(Binary.getVal1(P(p))) && (Binary.getVal2(P(p)).asIntConstant().value & 0x1f) <= 3 ? 11 : INFINITE);
3891 if (c < p.cost_r) {
3892 p.cost_r = (char)(c);
3893 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3800; // p.r = 56
3894 closure_r(p, c);
3895 }
3896 }
3897 if ( // szpr: INT_SHL(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
3898 lchild.getOpcode() == INT_SHR_opcode &&
3899 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
3900 rchild.getOpcode() == INT_CONSTANT_opcode
3901 ) {
3902 c = STATE(lchild.child1).cost_r + ((VR(p) == VLR(p)) ? 23 : INFINITE);
3903 if (c < p.cost_szpr) {
3904 p.cost_szpr = (char)(c);
3905 p.word0 = (p.word0 & 0xFC1FFFFF) | 0xA00000; // p.szpr = 5
3906 closure_szpr(p, c);
3907 }
3908 }
3909 }
3910
3911 private void label_LONG_SHL(BURS_TreeNode p) {
3912 p.word0 = 0;
3913 p.initCost();
3914 BURS_TreeNode lchild, rchild;
3915 lchild = p.child1;
3916 rchild = p.child2;
3917 label(lchild);
3918 label(rchild);
3919 int c;
3920 // r: LONG_SHL(rlv,riv)
3921 c = STATE(lchild).cost_rlv + STATE(rchild).cost_riv + 20;
3922 if (c < p.cost_r) {
3923 p.cost_r = (char)(c);
3924 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4600; // p.r = 70
3925 closure_r(p, c);
3926 }
3927 if ( // r: LONG_SHL(rlv,INT_AND(riv,INT_CONSTANT))
3928 rchild.getOpcode() == INT_AND_opcode &&
3929 rchild.child2.getOpcode() == INT_CONSTANT_opcode
3930 ) {
3931 c = STATE(lchild).cost_rlv + STATE(rchild.child1).cost_riv + 20;
3932 if (c < p.cost_r) {
3933 p.cost_r = (char)(c);
3934 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4700; // p.r = 71
3935 closure_r(p, c);
3936 }
3937 }
3938 if ( // r: LONG_SHL(INT_2LONG(r),INT_CONSTANT)
3939 lchild.getOpcode() == INT_2LONG_opcode &&
3940 rchild.getOpcode() == INT_CONSTANT_opcode
3941 ) {
3942 c = STATE(lchild.child1).cost_r + (VR(p) == 32 ? 23 : INFINITE);
3943 if (c < p.cost_r) {
3944 p.cost_r = (char)(c);
3945 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5900; // p.r = 89
3946 closure_r(p, c);
3947 }
3948 }
3949 if ( // r: LONG_SHL(INT_2LONG(load64),INT_CONSTANT)
3950 lchild.getOpcode() == INT_2LONG_opcode &&
3951 rchild.getOpcode() == INT_CONSTANT_opcode
3952 ) {
3953 c = STATE(lchild.child1).cost_load64 + (VR(p) == 32 ? 23 : INFINITE);
3954 if (c < p.cost_r) {
3955 p.cost_r = (char)(c);
3956 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5A00; // p.r = 90
3957 closure_r(p, c);
3958 }
3959 }
3960 }
3961
3962 private void label_INT_SHR(BURS_TreeNode p) {
3963 p.word0 = 0;
3964 p.initCost();
3965 BURS_TreeNode lchild, rchild;
3966 lchild = p.child1;
3967 rchild = p.child2;
3968 label(lchild);
3969 label(rchild);
3970 int c;
3971 if ( // szpr: INT_SHR(riv,INT_AND(r,INT_CONSTANT))
3972 rchild.getOpcode() == INT_AND_opcode &&
3973 rchild.child2.getOpcode() == INT_CONSTANT_opcode
3974 ) {
3975 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_r + (VRR(p) == 31 ? 23 : INFINITE);
3976 if (c < p.cost_szpr) {
3977 p.cost_szpr = (char)(c);
3978 p.word0 = (p.word0 & 0xFC1FFFFF) | 0xC00000; // p.szpr = 6
3979 closure_szpr(p, c);
3980 }
3981 }
3982 // szpr: INT_SHR(riv,riv)
3983 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 23;
3984 if (c < p.cost_szpr) {
3985 p.cost_szpr = (char)(c);
3986 p.word0 = (p.word0 & 0xFC1FFFFF) | 0xE00000; // p.szpr = 7
3987 closure_szpr(p, c);
3988 }
3989 if ( // szpr: INT_SHR(riv,INT_CONSTANT)
3990 rchild.getOpcode() == INT_CONSTANT_opcode
3991 ) {
3992 c = STATE(lchild).cost_riv + 13;
3993 if (c < p.cost_szpr) {
3994 p.cost_szpr = (char)(c);
3995 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1000000; // p.szpr = 8
3996 closure_szpr(p, c);
3997 }
3998 }
3999 }
4000
4001 private void label_LONG_SHR(BURS_TreeNode p) {
4002 p.word0 = 0;
4003 p.initCost();
4004 BURS_TreeNode lchild, rchild;
4005 lchild = p.child1;
4006 rchild = p.child2;
4007 label(lchild);
4008 label(rchild);
4009 int c;
4010 // r: LONG_SHR(rlv,riv)
4011 c = STATE(lchild).cost_rlv + STATE(rchild).cost_riv + 20;
4012 if (c < p.cost_r) {
4013 p.cost_r = (char)(c);
4014 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4800; // p.r = 72
4015 closure_r(p, c);
4016 }
4017 if ( // r: LONG_SHR(rlv,INT_AND(riv,INT_CONSTANT))
4018 rchild.getOpcode() == INT_AND_opcode &&
4019 rchild.child2.getOpcode() == INT_CONSTANT_opcode
4020 ) {
4021 c = STATE(lchild).cost_rlv + STATE(rchild.child1).cost_riv + 20;
4022 if (c < p.cost_r) {
4023 p.cost_r = (char)(c);
4024 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4900; // p.r = 73
4025 closure_r(p, c);
4026 }
4027 }
4028 }
4029
4030 private void label_INT_USHR(BURS_TreeNode p) {
4031 p.word0 = 0;
4032 p.initCost();
4033 BURS_TreeNode lchild, rchild;
4034 lchild = p.child1;
4035 rchild = p.child2;
4036 label(lchild);
4037 label(rchild);
4038 int c;
4039 if ( // szpr: INT_USHR(riv,INT_AND(r,INT_CONSTANT))
4040 rchild.getOpcode() == INT_AND_opcode &&
4041 rchild.child2.getOpcode() == INT_CONSTANT_opcode
4042 ) {
4043 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_r + (VRR(p) == 31 ? 23 : INFINITE);
4044 if (c < p.cost_szpr) {
4045 p.cost_szpr = (char)(c);
4046 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1200000; // p.szpr = 9
4047 closure_szpr(p, c);
4048 }
4049 }
4050 // szpr: INT_USHR(riv,riv)
4051 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 23;
4052 if (c < p.cost_szpr) {
4053 p.cost_szpr = (char)(c);
4054 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1400000; // p.szpr = 10
4055 closure_szpr(p, c);
4056 }
4057 if ( // szpr: INT_USHR(riv,INT_CONSTANT)
4058 rchild.getOpcode() == INT_CONSTANT_opcode
4059 ) {
4060 c = STATE(lchild).cost_riv + 13;
4061 if (c < p.cost_szpr) {
4062 p.cost_szpr = (char)(c);
4063 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1600000; // p.szpr = 11
4064 closure_szpr(p, c);
4065 }
4066 }
4067 if ( // r: INT_USHR(INT_SHL(load8_16_32,INT_CONSTANT),INT_CONSTANT)
4068 lchild.getOpcode() == INT_SHL_opcode &&
4069 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
4070 rchild.getOpcode() == INT_CONSTANT_opcode
4071 ) {
4072 c = STATE(lchild.child1).cost_load8_16_32 + (VR(p) == 24 && VLLR(p) == 24 ? 15 : INFINITE);
4073 if (c < p.cost_r) {
4074 p.cost_r = (char)(c);
4075 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6D00; // p.r = 109
4076 closure_r(p, c);
4077 }
4078 }
4079 if ( // r: INT_USHR(INT_SHL(load16_32,INT_CONSTANT),INT_CONSTANT)
4080 lchild.getOpcode() == INT_SHL_opcode &&
4081 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
4082 rchild.getOpcode() == INT_CONSTANT_opcode
4083 ) {
4084 c = STATE(lchild.child1).cost_load16_32 + (VR(p) == 16 && VLR(p) == 16 ? 15 : INFINITE);
4085 if (c < p.cost_r) {
4086 p.cost_r = (char)(c);
4087 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7500; // p.r = 117
4088 closure_r(p, c);
4089 }
4090 }
4091 }
4092
4093 private void label_LONG_USHR(BURS_TreeNode p) {
4094 p.word0 = 0;
4095 p.initCost();
4096 BURS_TreeNode lchild, rchild;
4097 lchild = p.child1;
4098 rchild = p.child2;
4099 label(lchild);
4100 label(rchild);
4101 int c;
4102 // r: LONG_USHR(rlv,riv)
4103 c = STATE(lchild).cost_rlv + STATE(rchild).cost_riv + 20;
4104 if (c < p.cost_r) {
4105 p.cost_r = (char)(c);
4106 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4A00; // p.r = 74
4107 closure_r(p, c);
4108 }
4109 if ( // r: LONG_USHR(rlv,INT_AND(riv,INT_CONSTANT))
4110 rchild.getOpcode() == INT_AND_opcode &&
4111 rchild.child2.getOpcode() == INT_CONSTANT_opcode
4112 ) {
4113 c = STATE(lchild).cost_rlv + STATE(rchild.child1).cost_riv + 20;
4114 if (c < p.cost_r) {
4115 p.cost_r = (char)(c);
4116 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4B00; // p.r = 75
4117 closure_r(p, c);
4118 }
4119 }
4120 }
4121
4122 private void label_INT_AND(BURS_TreeNode p) {
4123 p.word0 = 0;
4124 p.initCost();
4125 BURS_TreeNode lchild, rchild;
4126 lchild = p.child1;
4127 rchild = p.child2;
4128 label(lchild);
4129 label(rchild);
4130 int c;
4131 // szpr: INT_AND(riv,riv)
4132 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13;
4133 if (c < p.cost_szpr) {
4134 p.cost_szpr = (char)(c);
4135 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1800000; // p.szpr = 12
4136 closure_szpr(p, c);
4137 }
4138 // szp: INT_AND(r,riv)
4139 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 11;
4140 if (c < p.cost_szp) {
4141 p.cost_szp = (char)(c);
4142 p.word0 = (p.word0 & 0xE3FFFFFF) | 0x8000000; // p.szp = 2
4143 }
4144 // szpr: INT_AND(riv,load32)
4145 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
4146 if (c < p.cost_szpr) {
4147 p.cost_szpr = (char)(c);
4148 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1A00000; // p.szpr = 13
4149 closure_szpr(p, c);
4150 }
4151 // szpr: INT_AND(load32,riv)
4152 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
4153 if (c < p.cost_szpr) {
4154 p.cost_szpr = (char)(c);
4155 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1C00000; // p.szpr = 14
4156 closure_szpr(p, c);
4157 }
4158 // szp: INT_AND(load8_16_32,riv)
4159 c = STATE(lchild).cost_load8_16_32 + STATE(rchild).cost_riv + 11;
4160 if (c < p.cost_szp) {
4161 p.cost_szp = (char)(c);
4162 p.word0 = (p.word0 & 0xE3FFFFFF) | 0xC000000; // p.szp = 3
4163 }
4164 // szp: INT_AND(riv,load8_16_32)
4165 c = STATE(lchild).cost_riv + STATE(rchild).cost_load8_16_32 + 11;
4166 if (c < p.cost_szp) {
4167 p.cost_szp = (char)(c);
4168 p.word0 = (p.word0 & 0xE3FFFFFF) | 0x10000000; // p.szp = 4
4169 }
4170 if ( // uload8: INT_AND(load8_16_32,INT_CONSTANT)
4171 rchild.getOpcode() == INT_CONSTANT_opcode
4172 ) {
4173 c = STATE(lchild).cost_load8_16_32 + (VR(p) == 0xff ? 0 : INFINITE);
4174 if (c < p.cost_uload8) {
4175 p.cost_uload8 = (char)(c);
4176 p.word1 = (p.word1 & 0xFFFFFC7F) | 0x200; // p.uload8 = 4
4177 closure_uload8(p, c);
4178 }
4179 }
4180 if ( // r: INT_AND(load8_16_32,INT_CONSTANT)
4181 rchild.getOpcode() == INT_CONSTANT_opcode
4182 ) {
4183 c = STATE(lchild).cost_load8_16_32 + (VR(p) == 0xff ? 15 : INFINITE);
4184 if (c < p.cost_r) {
4185 p.cost_r = (char)(c);
4186 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6B00; // p.r = 107
4187 closure_r(p, c);
4188 }
4189 }
4190 if ( // r: INT_AND(load16_32,INT_CONSTANT)
4191 rchild.getOpcode() == INT_CONSTANT_opcode
4192 ) {
4193 c = STATE(lchild).cost_load16_32 + (VR(p) == 0xffff ? 15 : INFINITE);
4194 if (c < p.cost_r) {
4195 p.cost_r = (char)(c);
4196 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7200; // p.r = 114
4197 closure_r(p, c);
4198 }
4199 }
4200 if ( // bittest: INT_AND(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
4201 lchild.getOpcode() == INT_USHR_opcode &&
4202 lchild.child2.getOpcode() == INT_AND_opcode &&
4203 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
4204 rchild.getOpcode() == INT_CONSTANT_opcode
4205 ) {
4206 c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1).cost_r + ((VR(p) == 1) && (VLRR(p) == 31) ? 13:INFINITE);
4207 if (c < p.cost_bittest) {
4208 p.cost_bittest = (char)(c);
4209 p.word2 = (p.word2 & 0xFFFF87FF) | 0x800; // p.bittest = 1
4210 }
4211 }
4212 if ( // bittest: INT_AND(INT_USHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
4213 lchild.getOpcode() == INT_USHR_opcode &&
4214 lchild.child2.getOpcode() == INT_AND_opcode &&
4215 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
4216 rchild.getOpcode() == INT_CONSTANT_opcode
4217 ) {
4218 c = STATE(lchild.child1).cost_load32 + STATE(lchild.child2.child1).cost_r + (VR(p) == 1 ? 31:INFINITE);
4219 if (c < p.cost_bittest) {
4220 p.cost_bittest = (char)(c);
4221 p.word2 = (p.word2 & 0xFFFF87FF) | 0x1000; // p.bittest = 2
4222 }
4223 }
4224 if ( // bittest: INT_AND(INT_USHR(r,INT_CONSTANT),INT_CONSTANT)
4225 lchild.getOpcode() == INT_USHR_opcode &&
4226 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
4227 rchild.getOpcode() == INT_CONSTANT_opcode
4228 ) {
4229 c = STATE(lchild.child1).cost_r + ((VR(p) == 1) && (VLR(p) <= 31) ? 13:INFINITE);
4230 if (c < p.cost_bittest) {
4231 p.cost_bittest = (char)(c);
4232 p.word2 = (p.word2 & 0xFFFF87FF) | 0x1800; // p.bittest = 3
4233 }
4234 }
4235 if ( // bittest: INT_AND(INT_SHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
4236 lchild.getOpcode() == INT_SHR_opcode &&
4237 lchild.child2.getOpcode() == INT_AND_opcode &&
4238 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
4239 rchild.getOpcode() == INT_CONSTANT_opcode
4240 ) {
4241 c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1).cost_r + ((VR(p) == 1) && (VLRR(p) == 31) ? 13:INFINITE);
4242 if (c < p.cost_bittest) {
4243 p.cost_bittest = (char)(c);
4244 p.word2 = (p.word2 & 0xFFFF87FF) | 0x2000; // p.bittest = 4
4245 }
4246 }
4247 if ( // bittest: INT_AND(INT_SHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
4248 lchild.getOpcode() == INT_SHR_opcode &&
4249 lchild.child2.getOpcode() == INT_AND_opcode &&
4250 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
4251 rchild.getOpcode() == INT_CONSTANT_opcode
4252 ) {
4253 c = STATE(lchild.child1).cost_load32 + STATE(lchild.child2.child1).cost_r + (VR(p) == 1 ? 31:INFINITE);
4254 if (c < p.cost_bittest) {
4255 p.cost_bittest = (char)(c);
4256 p.word2 = (p.word2 & 0xFFFF87FF) | 0x2800; // p.bittest = 5
4257 }
4258 }
4259 if ( // bittest: INT_AND(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
4260 lchild.getOpcode() == INT_SHR_opcode &&
4261 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
4262 rchild.getOpcode() == INT_CONSTANT_opcode
4263 ) {
4264 c = STATE(lchild.child1).cost_r + ((VR(p) == 1) && (VLR(p) <= 31) ? 13:INFINITE);
4265 if (c < p.cost_bittest) {
4266 p.cost_bittest = (char)(c);
4267 p.word2 = (p.word2 & 0xFFFF87FF) | 0x3000; // p.bittest = 6
4268 }
4269 }
4270 if ( // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(riv,INT_CONSTANT)),r)
4271 lchild.getOpcode() == INT_SHL_opcode &&
4272 lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
4273 lchild.child2.getOpcode() == INT_AND_opcode &&
4274 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
4275 ) {
4276 c = STATE(lchild.child2.child1).cost_riv + STATE(rchild).cost_r + ((VLL(p) == 1) && (VLRR(p) == 31)? 13:INFINITE);
4277 if (c < p.cost_bittest) {
4278 p.cost_bittest = (char)(c);
4279 p.word2 = (p.word2 & 0xFFFF87FF) | 0x3800; // p.bittest = 7
4280 }
4281 }
4282 if ( // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)),load32)
4283 lchild.getOpcode() == INT_SHL_opcode &&
4284 lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
4285 lchild.child2.getOpcode() == INT_AND_opcode &&
4286 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
4287 ) {
4288 c = STATE(lchild.child2.child1).cost_r + STATE(rchild).cost_load32 + (VLL(p) == 1 ? 31:INFINITE);
4289 if (c < p.cost_bittest) {
4290 p.cost_bittest = (char)(c);
4291 p.word2 = (p.word2 & 0xFFFF87FF) | 0x4000; // p.bittest = 8
4292 }
4293 }
4294 if ( // bittest: INT_AND(r,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
4295 rchild.getOpcode() == INT_SHL_opcode &&
4296 rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
4297 rchild.child2.getOpcode() == INT_AND_opcode &&
4298 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
4299 ) {
4300 c = STATE(lchild).cost_r + STATE(rchild.child2.child1).cost_r + ((VRL(p) == 1) && (VRRR(p) == 31) ? 13:INFINITE);
4301 if (c < p.cost_bittest) {
4302 p.cost_bittest = (char)(c);
4303 p.word2 = (p.word2 & 0xFFFF87FF) | 0x4800; // p.bittest = 9
4304 }
4305 }
4306 if ( // bittest: INT_AND(load32,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
4307 rchild.getOpcode() == INT_SHL_opcode &&
4308 rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
4309 rchild.child2.getOpcode() == INT_AND_opcode &&
4310 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
4311 ) {
4312 c = STATE(lchild).cost_load32 + STATE(rchild.child2.child1).cost_r + (VRL(p) == 1 ? 31:INFINITE);
4313 if (c < p.cost_bittest) {
4314 p.cost_bittest = (char)(c);
4315 p.word2 = (p.word2 & 0xFFFF87FF) | 0x5000; // p.bittest = 10
4316 }
4317 }
4318 }
4319
4320 private void label_LONG_AND(BURS_TreeNode p) {
4321 p.word0 = 0;
4322 p.initCost();
4323 BURS_TreeNode lchild, rchild;
4324 lchild = p.child1;
4325 rchild = p.child2;
4326 label(lchild);
4327 label(rchild);
4328 int c;
4329 // r: LONG_AND(rlv,rlv)
4330 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23;
4331 if (c < p.cost_r) {
4332 p.cost_r = (char)(c);
4333 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4C00; // p.r = 76
4334 closure_r(p, c);
4335 }
4336 if ( // r: LONG_AND(INT_2LONG(r),LONG_CONSTANT)
4337 lchild.getOpcode() == INT_2LONG_opcode &&
4338 rchild.getOpcode() == LONG_CONSTANT_opcode
4339 ) {
4340 c = STATE(lchild.child1).cost_r + ((Binary.getVal2(P(p)).asLongConstant().upper32() == 0) && (Binary.getVal2(P(p)).asLongConstant().lower32() == -1)? 23 : INFINITE);
4341 if (c < p.cost_r) {
4342 p.cost_r = (char)(c);
4343 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5700; // p.r = 87
4344 closure_r(p, c);
4345 }
4346 }
4347 if ( // r: LONG_AND(INT_2LONG(load32),LONG_CONSTANT)
4348 lchild.getOpcode() == INT_2LONG_opcode &&
4349 rchild.getOpcode() == LONG_CONSTANT_opcode
4350 ) {
4351 c = STATE(lchild.child1).cost_load32 + ((Binary.getVal2(P(p)).asLongConstant().upper32() == 0) && (Binary.getVal2(P(p)).asLongConstant().lower32() == -1)? 28 : INFINITE);
4352 if (c < p.cost_r) {
4353 p.cost_r = (char)(c);
4354 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5800; // p.r = 88
4355 closure_r(p, c);
4356 }
4357 }
4358 }
4359
4360 private void label_INT_OR(BURS_TreeNode p) {
4361 p.word0 = 0;
4362 p.initCost();
4363 BURS_TreeNode lchild, rchild;
4364 lchild = p.child1;
4365 rchild = p.child2;
4366 label(lchild);
4367 label(rchild);
4368 int c;
4369 if ( // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
4370 lchild.getOpcode() == INT_SHL_opcode &&
4371 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
4372 rchild.getOpcode() == INT_USHR_opcode &&
4373 rchild.child2.getOpcode() == INT_CONSTANT_opcode
4374 ) {
4375 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);
4376 if (c < p.cost_r) {
4377 p.cost_r = (char)(c);
4378 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3900; // p.r = 57
4379 closure_r(p, c);
4380 }
4381 }
4382 if ( // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
4383 lchild.getOpcode() == INT_USHR_opcode &&
4384 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
4385 rchild.getOpcode() == INT_SHL_opcode &&
4386 rchild.child2.getOpcode() == INT_CONSTANT_opcode
4387 ) {
4388 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);
4389 if (c < p.cost_r) {
4390 p.cost_r = (char)(c);
4391 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3A00; // p.r = 58
4392 closure_r(p, c);
4393 }
4394 }
4395 if ( // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
4396 lchild.getOpcode() == INT_SHL_opcode &&
4397 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
4398 rchild.getOpcode() == INT_USHR_opcode &&
4399 rchild.child2.getOpcode() == INT_CONSTANT_opcode
4400 ) {
4401 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);
4402 if (c < p.cost_r) {
4403 p.cost_r = (char)(c);
4404 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3B00; // p.r = 59
4405 closure_r(p, c);
4406 }
4407 }
4408 if ( // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
4409 lchild.getOpcode() == INT_USHR_opcode &&
4410 lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
4411 rchild.getOpcode() == INT_SHL_opcode &&
4412 rchild.child2.getOpcode() == INT_CONSTANT_opcode
4413 ) {
4414 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);
4415 if (c < p.cost_r) {
4416 p.cost_r = (char)(c);
4417 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3C00; // p.r = 60
4418 closure_r(p, c);
4419 }
4420 }
4421 if ( // r: INT_OR(INT_SHL(r,INT_AND(r,INT_CONSTANT)),INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
4422 lchild.getOpcode() == INT_SHL_opcode &&
4423 lchild.child2.getOpcode() == INT_AND_opcode &&
4424 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
4425 rchild.getOpcode() == INT_USHR_opcode &&
4426 rchild.child2.getOpcode() == INT_AND_opcode &&
4427 rchild.child2.child1.getOpcode() == INT_NEG_opcode &&
4428 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
4429 ) {
4430 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);
4431 if (c < p.cost_r) {
4432 p.cost_r = (char)(c);
4433 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3D00; // p.r = 61
4434 closure_r(p, c);
4435 }
4436 }
4437 if ( // r: INT_OR(INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_SHL(r,INT_AND(r,INT_CONSTANT)))
4438 lchild.getOpcode() == INT_USHR_opcode &&
4439 lchild.child2.getOpcode() == INT_AND_opcode &&
4440 lchild.child2.child1.getOpcode() == INT_NEG_opcode &&
4441 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
4442 rchild.getOpcode() == INT_SHL_opcode &&
4443 rchild.child2.getOpcode() == INT_AND_opcode &&
4444 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
4445 ) {
4446 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);
4447 if (c < p.cost_r) {
4448 p.cost_r = (char)(c);
4449 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3E00; // p.r = 62
4450 closure_r(p, c);
4451 }
4452 }
4453 if ( // r: INT_OR(INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_USHR(r,INT_AND(r,INT_CONSTANT)))
4454 lchild.getOpcode() == INT_SHL_opcode &&
4455 lchild.child2.getOpcode() == INT_AND_opcode &&
4456 lchild.child2.child1.getOpcode() == INT_NEG_opcode &&
4457 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
4458 rchild.getOpcode() == INT_USHR_opcode &&
4459 rchild.child2.getOpcode() == INT_AND_opcode &&
4460 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
4461 ) {
4462 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);
4463 if (c < p.cost_r) {
4464 p.cost_r = (char)(c);
4465 p.word0 = (p.word0 & 0xFFFF00FF) | 0x3F00; // p.r = 63
4466 closure_r(p, c);
4467 }
4468 }
4469 if ( // r: INT_OR(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
4470 lchild.getOpcode() == INT_USHR_opcode &&
4471 lchild.child2.getOpcode() == INT_AND_opcode &&
4472 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
4473 rchild.getOpcode() == INT_SHL_opcode &&
4474 rchild.child2.getOpcode() == INT_AND_opcode &&
4475 rchild.child2.child1.getOpcode() == INT_NEG_opcode &&
4476 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
4477 ) {
4478 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);
4479 if (c < p.cost_r) {
4480 p.cost_r = (char)(c);
4481 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4000; // p.r = 64
4482 closure_r(p, c);
4483 }
4484 }
4485 // szpr: INT_OR(riv,riv)
4486 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13;
4487 if (c < p.cost_szpr) {
4488 p.cost_szpr = (char)(c);
4489 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1E00000; // p.szpr = 15
4490 closure_szpr(p, c);
4491 }
4492 // szpr: INT_OR(riv,load32)
4493 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
4494 if (c < p.cost_szpr) {
4495 p.cost_szpr = (char)(c);
4496 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2000000; // p.szpr = 16
4497 closure_szpr(p, c);
4498 }
4499 // szpr: INT_OR(load32,riv)
4500 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
4501 if (c < p.cost_szpr) {
4502 p.cost_szpr = (char)(c);
4503 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2200000; // p.szpr = 17
4504 closure_szpr(p, c);
4505 }
4506 }
4507
4508 private void label_LONG_OR(BURS_TreeNode p) {
4509 p.word0 = 0;
4510 p.initCost();
4511 BURS_TreeNode lchild, rchild;
4512 lchild = p.child1;
4513 rchild = p.child2;
4514 label(lchild);
4515 label(rchild);
4516 int c;
4517 // r: LONG_OR(rlv,rlv)
4518 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23;
4519 if (c < p.cost_r) {
4520 p.cost_r = (char)(c);
4521 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4D00; // p.r = 77
4522 closure_r(p, c);
4523 }
4524 }
4525
4526 private void label_INT_XOR(BURS_TreeNode p) {
4527 p.word0 = 0;
4528 p.initCost();
4529 BURS_TreeNode lchild, rchild;
4530 lchild = p.child1;
4531 rchild = p.child2;
4532 label(lchild);
4533 label(rchild);
4534 int c;
4535 // szpr: INT_XOR(riv,riv)
4536 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13;
4537 if (c < p.cost_szpr) {
4538 p.cost_szpr = (char)(c);
4539 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2400000; // p.szpr = 18
4540 closure_szpr(p, c);
4541 }
4542 // szpr: INT_XOR(riv,load32)
4543 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
4544 if (c < p.cost_szpr) {
4545 p.cost_szpr = (char)(c);
4546 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2600000; // p.szpr = 19
4547 closure_szpr(p, c);
4548 }
4549 // szpr: INT_XOR(load32,riv)
4550 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
4551 if (c < p.cost_szpr) {
4552 p.cost_szpr = (char)(c);
4553 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2800000; // p.szpr = 20
4554 closure_szpr(p, c);
4555 }
4556 }
4557
4558 private void label_INT_NOT(BURS_TreeNode p) {
4559 p.word0 = 0;
4560 p.initCost();
4561 BURS_TreeNode lchild;
4562 lchild = p.child1;
4563 label(lchild);
4564 int c;
4565 // r: INT_NOT(r)
4566 c = STATE(lchild).cost_r + 13;
4567 if (c < p.cost_r) {
4568 p.cost_r = (char)(c);
4569 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4100; // p.r = 65
4570 closure_r(p, c);
4571 }
4572 }
4573
4574 private void label_LONG_NOT(BURS_TreeNode p) {
4575 p.word0 = 0;
4576 p.initCost();
4577 BURS_TreeNode lchild;
4578 lchild = p.child1;
4579 label(lchild);
4580 int c;
4581 // r: LONG_NOT(r)
4582 c = STATE(lchild).cost_r + 23;
4583 if (c < p.cost_r) {
4584 p.cost_r = (char)(c);
4585 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4F00; // p.r = 79
4586 closure_r(p, c);
4587 }
4588 }
4589
4590 private void label_LONG_XOR(BURS_TreeNode p) {
4591 p.word0 = 0;
4592 p.initCost();
4593 BURS_TreeNode lchild, rchild;
4594 lchild = p.child1;
4595 rchild = p.child2;
4596 label(lchild);
4597 label(rchild);
4598 int c;
4599 // r: LONG_XOR(r,rlv)
4600 c = STATE(lchild).cost_r + STATE(rchild).cost_rlv + 23;
4601 if (c < p.cost_r) {
4602 p.cost_r = (char)(c);
4603 p.word0 = (p.word0 & 0xFFFF00FF) | 0x4E00; // p.r = 78
4604 closure_r(p, c);
4605 }
4606 }
4607
4608 private void label_ADDR_2LONG(BURS_TreeNode p) {
4609 p.word0 = 0;
4610 p.initCost();
4611 BURS_TreeNode lchild;
4612 lchild = p.child1;
4613 label(lchild);
4614 int c;
4615 // r: ADDR_2LONG(r)
4616 c = STATE(lchild).cost_r + 33;
4617 if (c < p.cost_r) {
4618 p.cost_r = (char)(c);
4619 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5B00; // p.r = 91
4620 closure_r(p, c);
4621 }
4622 // r: ADDR_2LONG(load32)
4623 c = STATE(lchild).cost_load32 + 38;
4624 if (c < p.cost_r) {
4625 p.cost_r = (char)(c);
4626 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5C00; // p.r = 92
4627 closure_r(p, c);
4628 }
4629 }
4630
4631 private void label_INT_2LONG(BURS_TreeNode p) {
4632 p.word0 = 0;
4633 p.initCost();
4634 BURS_TreeNode lchild;
4635 lchild = p.child1;
4636 label(lchild);
4637 int c;
4638 // r: INT_2LONG(r)
4639 c = STATE(lchild).cost_r + 33;
4640 if (c < p.cost_r) {
4641 p.cost_r = (char)(c);
4642 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5500; // p.r = 85
4643 closure_r(p, c);
4644 }
4645 // r: INT_2LONG(load32)
4646 c = STATE(lchild).cost_load32 + 38;
4647 if (c < p.cost_r) {
4648 p.cost_r = (char)(c);
4649 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5600; // p.r = 86
4650 closure_r(p, c);
4651 }
4652 }
4653
4654 private void label_INT_2FLOAT(BURS_TreeNode p) {
4655 p.word0 = 0;
4656 p.initCost();
4657 BURS_TreeNode lchild;
4658 lchild = p.child1;
4659 label(lchild);
4660 int c;
4661 // r: INT_2FLOAT(riv)
4662 c = STATE(lchild).cost_riv + 13;
4663 if (c < p.cost_r) {
4664 p.cost_r = (char)(c);
4665 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBA00; // p.r = 186
4666 closure_r(p, c);
4667 }
4668 // r: INT_2FLOAT(load32)
4669 c = STATE(lchild).cost_load32 + 15;
4670 if (c < p.cost_r) {
4671 p.cost_r = (char)(c);
4672 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBB00; // p.r = 187
4673 closure_r(p, c);
4674 }
4675 }
4676
4677 private void label_INT_2DOUBLE(BURS_TreeNode p) {
4678 p.word0 = 0;
4679 p.initCost();
4680 BURS_TreeNode lchild;
4681 lchild = p.child1;
4682 label(lchild);
4683 int c;
4684 // r: INT_2DOUBLE(riv)
4685 c = STATE(lchild).cost_riv + 13;
4686 if (c < p.cost_r) {
4687 p.cost_r = (char)(c);
4688 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBC00; // p.r = 188
4689 closure_r(p, c);
4690 }
4691 // r: INT_2DOUBLE(load32)
4692 c = STATE(lchild).cost_load32 + 15;
4693 if (c < p.cost_r) {
4694 p.cost_r = (char)(c);
4695 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBD00; // p.r = 189
4696 closure_r(p, c);
4697 }
4698 }
4699
4700 private void label_LONG_2INT(BURS_TreeNode p) {
4701 p.word0 = 0;
4702 p.initCost();
4703 BURS_TreeNode lchild;
4704 lchild = p.child1;
4705 label(lchild);
4706 int c;
4707 // r: LONG_2INT(r)
4708 c = STATE(lchild).cost_r + 13;
4709 if (c < p.cost_r) {
4710 p.cost_r = (char)(c);
4711 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5D00; // p.r = 93
4712 closure_r(p, c);
4713 }
4714 // r: LONG_2INT(load64)
4715 c = STATE(lchild).cost_load64 + 15;
4716 if (c < p.cost_r) {
4717 p.cost_r = (char)(c);
4718 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5E00; // p.r = 94
4719 closure_r(p, c);
4720 }
4721 if ( // r: LONG_2INT(LONG_USHR(r,INT_CONSTANT))
4722 lchild.getOpcode() == LONG_USHR_opcode &&
4723 lchild.child2.getOpcode() == INT_CONSTANT_opcode
4724 ) {
4725 c = STATE(lchild.child1).cost_r + (VLR(p) == 32 ? 13 : INFINITE);
4726 if (c < p.cost_r) {
4727 p.cost_r = (char)(c);
4728 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5F00; // p.r = 95
4729 closure_r(p, c);
4730 }
4731 }
4732 if ( // r: LONG_2INT(LONG_SHR(r,INT_CONSTANT))
4733 lchild.getOpcode() == LONG_SHR_opcode &&
4734 lchild.child2.getOpcode() == INT_CONSTANT_opcode
4735 ) {
4736 c = STATE(lchild.child1).cost_r + (VLR(p) == 32 ? 13 : INFINITE);
4737 if (c < p.cost_r) {
4738 p.cost_r = (char)(c);
4739 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6000; // p.r = 96
4740 closure_r(p, c);
4741 }
4742 }
4743 if ( // r: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
4744 lchild.getOpcode() == LONG_USHR_opcode &&
4745 lchild.child2.getOpcode() == INT_CONSTANT_opcode
4746 ) {
4747 c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 15 : INFINITE);
4748 if (c < p.cost_r) {
4749 p.cost_r = (char)(c);
4750 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6100; // p.r = 97
4751 closure_r(p, c);
4752 }
4753 }
4754 if ( // r: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
4755 lchild.getOpcode() == LONG_SHR_opcode &&
4756 lchild.child2.getOpcode() == INT_CONSTANT_opcode
4757 ) {
4758 c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 15 : INFINITE);
4759 if (c < p.cost_r) {
4760 p.cost_r = (char)(c);
4761 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6200; // p.r = 98
4762 closure_r(p, c);
4763 }
4764 }
4765 if ( // load32: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
4766 lchild.getOpcode() == LONG_USHR_opcode &&
4767 lchild.child2.getOpcode() == INT_CONSTANT_opcode
4768 ) {
4769 c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 0 : INFINITE);
4770 if (c < p.cost_load32) {
4771 p.cost_load32 = (char)(c);
4772 p.word1 = (p.word1 & 0xFFE3FFFF) | 0xC0000; // p.load32 = 3
4773 closure_load32(p, c);
4774 }
4775 }
4776 if ( // load32: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
4777 lchild.getOpcode() == LONG_SHR_opcode &&
4778 lchild.child2.getOpcode() == INT_CONSTANT_opcode
4779 ) {
4780 c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 0 : INFINITE);
4781 if (c < p.cost_load32) {
4782 p.cost_load32 = (char)(c);
4783 p.word1 = (p.word1 & 0xFFE3FFFF) | 0x100000; // p.load32 = 4
4784 closure_load32(p, c);
4785 }
4786 }
4787 }
4788
4789 private void label_LONG_2FLOAT(BURS_TreeNode p) {
4790 p.word0 = 0;
4791 p.initCost();
4792 BURS_TreeNode lchild;
4793 lchild = p.child1;
4794 label(lchild);
4795 int c;
4796 // r: LONG_2FLOAT(r)
4797 c = STATE(lchild).cost_r + 13;
4798 if (c < p.cost_r) {
4799 p.cost_r = (char)(c);
4800 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB200; // p.r = 178
4801 closure_r(p, c);
4802 }
4803 }
4804
4805 private void label_LONG_2DOUBLE(BURS_TreeNode p) {
4806 p.word0 = 0;
4807 p.initCost();
4808 BURS_TreeNode lchild;
4809 lchild = p.child1;
4810 label(lchild);
4811 int c;
4812 // r: LONG_2DOUBLE(r)
4813 c = STATE(lchild).cost_r + 13;
4814 if (c < p.cost_r) {
4815 p.cost_r = (char)(c);
4816 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB300; // p.r = 179
4817 closure_r(p, c);
4818 }
4819 }
4820
4821 private void label_FLOAT_2INT(BURS_TreeNode p) {
4822 p.word0 = 0;
4823 p.initCost();
4824 BURS_TreeNode lchild;
4825 lchild = p.child1;
4826 label(lchild);
4827 int c;
4828 // r: FLOAT_2INT(r)
4829 c = STATE(lchild).cost_r + 13;
4830 if (c < p.cost_r) {
4831 p.cost_r = (char)(c);
4832 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC200; // p.r = 194
4833 closure_r(p, c);
4834 }
4835 }
4836
4837 private void label_FLOAT_2LONG(BURS_TreeNode p) {
4838 p.word0 = 0;
4839 p.initCost();
4840 BURS_TreeNode lchild;
4841 lchild = p.child1;
4842 label(lchild);
4843 int c;
4844 // r: FLOAT_2LONG(r)
4845 c = STATE(lchild).cost_r + 13;
4846 if (c < p.cost_r) {
4847 p.cost_r = (char)(c);
4848 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC300; // p.r = 195
4849 closure_r(p, c);
4850 }
4851 }
4852
4853 private void label_FLOAT_2DOUBLE(BURS_TreeNode p) {
4854 p.word0 = 0;
4855 p.initCost();
4856 BURS_TreeNode lchild;
4857 lchild = p.child1;
4858 label(lchild);
4859 int c;
4860 // r: FLOAT_2DOUBLE(r)
4861 c = STATE(lchild).cost_r + 13;
4862 if (c < p.cost_r) {
4863 p.cost_r = (char)(c);
4864 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBE00; // p.r = 190
4865 closure_r(p, c);
4866 }
4867 // r: FLOAT_2DOUBLE(float_load)
4868 c = STATE(lchild).cost_float_load + 15;
4869 if (c < p.cost_r) {
4870 p.cost_r = (char)(c);
4871 p.word0 = (p.word0 & 0xFFFF00FF) | 0xBF00; // p.r = 191
4872 closure_r(p, c);
4873 }
4874 }
4875
4876 private void label_DOUBLE_2INT(BURS_TreeNode p) {
4877 p.word0 = 0;
4878 p.initCost();
4879 BURS_TreeNode lchild;
4880 lchild = p.child1;
4881 label(lchild);
4882 int c;
4883 // r: DOUBLE_2INT(r)
4884 c = STATE(lchild).cost_r + 13;
4885 if (c < p.cost_r) {
4886 p.cost_r = (char)(c);
4887 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC400; // p.r = 196
4888 closure_r(p, c);
4889 }
4890 }
4891
4892 private void label_DOUBLE_2LONG(BURS_TreeNode p) {
4893 p.word0 = 0;
4894 p.initCost();
4895 BURS_TreeNode lchild;
4896 lchild = p.child1;
4897 label(lchild);
4898 int c;
4899 // r: DOUBLE_2LONG(r)
4900 c = STATE(lchild).cost_r + 13;
4901 if (c < p.cost_r) {
4902 p.cost_r = (char)(c);
4903 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC500; // p.r = 197
4904 closure_r(p, c);
4905 }
4906 }
4907
4908 private void label_DOUBLE_2FLOAT(BURS_TreeNode p) {
4909 p.word0 = 0;
4910 p.initCost();
4911 BURS_TreeNode lchild;
4912 lchild = p.child1;
4913 label(lchild);
4914 int c;
4915 // r: DOUBLE_2FLOAT(r)
4916 c = STATE(lchild).cost_r + 13;
4917 if (c < p.cost_r) {
4918 p.cost_r = (char)(c);
4919 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC000; // p.r = 192
4920 closure_r(p, c);
4921 }
4922 // r: DOUBLE_2FLOAT(double_load)
4923 c = STATE(lchild).cost_double_load + 15;
4924 if (c < p.cost_r) {
4925 p.cost_r = (char)(c);
4926 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC100; // p.r = 193
4927 closure_r(p, c);
4928 }
4929 }
4930
4931 private void label_INT_2BYTE(BURS_TreeNode p) {
4932 p.word0 = 0;
4933 p.initCost();
4934 BURS_TreeNode lchild;
4935 lchild = p.child1;
4936 label(lchild);
4937 int c;
4938 // r: INT_2BYTE(r)
4939 c = STATE(lchild).cost_r + 15;
4940 if (c < p.cost_r) {
4941 p.cost_r = (char)(c);
4942 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5000; // p.r = 80
4943 closure_r(p, c);
4944 }
4945 // r: INT_2BYTE(load8_16_32)
4946 c = STATE(lchild).cost_load8_16_32 + 17;
4947 if (c < p.cost_r) {
4948 p.cost_r = (char)(c);
4949 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5100; // p.r = 81
4950 closure_r(p, c);
4951 }
4952 // r: INT_2BYTE(load8_16_32)
4953 c = STATE(lchild).cost_load8_16_32 + 20;
4954 if (c < p.cost_r) {
4955 p.cost_r = (char)(c);
4956 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6C00; // p.r = 108
4957 closure_r(p, c);
4958 }
4959 }
4960
4961 private void label_INT_2USHORT(BURS_TreeNode p) {
4962 p.word0 = 0;
4963 p.initCost();
4964 BURS_TreeNode lchild;
4965 lchild = p.child1;
4966 label(lchild);
4967 int c;
4968 // szpr: INT_2USHORT(r)
4969 c = STATE(lchild).cost_r + 23;
4970 if (c < p.cost_szpr) {
4971 p.cost_szpr = (char)(c);
4972 p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2A00000; // p.szpr = 21
4973 closure_szpr(p, c);
4974 }
4975 // r: INT_2USHORT(load16_32)
4976 c = STATE(lchild).cost_load16_32 + 25;
4977 if (c < p.cost_r) {
4978 p.cost_r = (char)(c);
4979 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5200; // p.r = 82
4980 closure_r(p, c);
4981 }
4982 // r: INT_2USHORT(load16_32)
4983 c = STATE(lchild).cost_load16_32 + 15;
4984 if (c < p.cost_r) {
4985 p.cost_r = (char)(c);
4986 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7300; // p.r = 115
4987 closure_r(p, c);
4988 }
4989 // r: INT_2USHORT(load16_32)
4990 c = STATE(lchild).cost_load16_32 + 20;
4991 if (c < p.cost_r) {
4992 p.cost_r = (char)(c);
4993 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7400; // p.r = 116
4994 closure_r(p, c);
4995 }
4996 }
4997
4998 private void label_INT_2SHORT(BURS_TreeNode p) {
4999 p.word0 = 0;
5000 p.initCost();
5001 BURS_TreeNode lchild;
5002 lchild = p.child1;
5003 label(lchild);
5004 int c;
5005 // r: INT_2SHORT(r)
5006 c = STATE(lchild).cost_r + 15;
5007 if (c < p.cost_r) {
5008 p.cost_r = (char)(c);
5009 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5300; // p.r = 83
5010 closure_r(p, c);
5011 }
5012 // r: INT_2SHORT(load16_32)
5013 c = STATE(lchild).cost_load16_32 + 17;
5014 if (c < p.cost_r) {
5015 p.cost_r = (char)(c);
5016 p.word0 = (p.word0 & 0xFFFF00FF) | 0x5400; // p.r = 84
5017 closure_r(p, c);
5018 }
5019 }
5020
5021 private void label_LONG_CMP(BURS_TreeNode p) {
5022 p.word0 = 0;
5023 p.initCost();
5024 BURS_TreeNode lchild, rchild;
5025 lchild = p.child1;
5026 rchild = p.child2;
5027 label(lchild);
5028 label(rchild);
5029 int c;
5030 // r: LONG_CMP(rlv,rlv)
5031 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 10*13;
5032 if (c < p.cost_r) {
5033 p.cost_r = (char)(c);
5034 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8F00; // p.r = 143
5035 closure_r(p, c);
5036 }
5037 }
5038
5039 private void label_RETURN(BURS_TreeNode p) {
5040 p.word0 = 0;
5041 p.initCost();
5042 BURS_TreeNode lchild;
5043 lchild = p.child1;
5044 label(lchild);
5045 int c;
5046 if ( // stm: RETURN(NULL)
5047 lchild.getOpcode() == NULL_opcode
5048 ) {
5049 c = 13;
5050 if (c < p.cost_stm) {
5051 p.cost_stm = (char)(c);
5052 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7B; // p.stm = 123
5053 }
5054 }
5055 if ( // stm: RETURN(INT_CONSTANT)
5056 lchild.getOpcode() == INT_CONSTANT_opcode
5057 ) {
5058 c = 11;
5059 if (c < p.cost_stm) {
5060 p.cost_stm = (char)(c);
5061 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7C; // p.stm = 124
5062 }
5063 }
5064 // stm: RETURN(r)
5065 c = STATE(lchild).cost_r + 13;
5066 if (c < p.cost_stm) {
5067 p.cost_stm = (char)(c);
5068 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7D; // p.stm = 125
5069 }
5070 if ( // stm: RETURN(LONG_CONSTANT)
5071 lchild.getOpcode() == LONG_CONSTANT_opcode
5072 ) {
5073 c = 11;
5074 if (c < p.cost_stm) {
5075 p.cost_stm = (char)(c);
5076 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7E; // p.stm = 126
5077 }
5078 }
5079 }
5080
5081 private void label_NULL_CHECK(BURS_TreeNode p) {
5082 p.word0 = 0;
5083 p.initCost();
5084 BURS_TreeNode lchild;
5085 lchild = p.child1;
5086 label(lchild);
5087 int c;
5088 // stm: NULL_CHECK(riv)
5089 c = STATE(lchild).cost_riv + 11;
5090 if (c < p.cost_stm) {
5091 p.cost_stm = (char)(c);
5092 p.word0 = (p.word0 & 0xFFFFFF00) | 0xB; // p.stm = 11
5093 }
5094 }
5095
5096 private void label_GOTO(BURS_TreeNode p) {
5097 p.word0 = 0;
5098 p.initCost();
5099 // stm: GOTO
5100 if (11 < p.cost_stm) {
5101 p.cost_stm = (char)(11);
5102 p.word0 = (p.word0 & 0xFFFFFF00) | 0x76; // p.stm = 118
5103 }
5104 }
5105
5106 private void label_BOOLEAN_NOT(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 // r: BOOLEAN_NOT(r)
5114 c = STATE(lchild).cost_r + 13;
5115 if (c < p.cost_r) {
5116 p.cost_r = (char)(c);
5117 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD00; // p.r = 13
5118 closure_r(p, c);
5119 }
5120 }
5121
5122 private void label_BOOLEAN_CMP_INT(BURS_TreeNode p) {
5123 p.word0 = 0;
5124 p.initCost();
5125 BURS_TreeNode lchild, rchild;
5126 lchild = p.child1;
5127 rchild = p.child2;
5128 label(lchild);
5129 label(rchild);
5130 int c;
5131 // r: BOOLEAN_CMP_INT(r,riv)
5132 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 39;
5133 if (c < p.cost_r) {
5134 p.cost_r = (char)(c);
5135 p.word0 = (p.word0 & 0xFFFF00FF) | 0xE00; // p.r = 14
5136 closure_r(p, c);
5137 }
5138 // boolcmp: BOOLEAN_CMP_INT(r,riv)
5139 c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 13;
5140 if (c < p.cost_boolcmp) {
5141 p.cost_boolcmp = (char)(c);
5142 p.word2 = (p.word2 & 0xFFFFF87F) | 0x80; // p.boolcmp = 1
5143 }
5144 if ( // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
5145 rchild.getOpcode() == INT_CONSTANT_opcode
5146 ) {
5147 c = STATE(lchild).cost_r + (VR(p) == 0 && CMP_TO_TEST(BooleanCmp.getCond(P(p))) ? 37:INFINITE);
5148 if (c < p.cost_r) {
5149 p.cost_r = (char)(c);
5150 p.word0 = (p.word0 & 0xFFFF00FF) | 0xF00; // p.r = 15
5151 closure_r(p, c);
5152 }
5153 }
5154 if ( // boolcmp: BOOLEAN_CMP_INT(r,INT_CONSTANT)
5155 rchild.getOpcode() == INT_CONSTANT_opcode
5156 ) {
5157 c = STATE(lchild).cost_r + (VR(p) == 0 && CMP_TO_TEST(BooleanCmp.getCond(P(p))) ? 11:INFINITE);
5158 if (c < p.cost_boolcmp) {
5159 p.cost_boolcmp = (char)(c);
5160 p.word2 = (p.word2 & 0xFFFFF87F) | 0x100; // p.boolcmp = 2
5161 }
5162 }
5163 if ( // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
5164 rchild.getOpcode() == INT_CONSTANT_opcode
5165 ) {
5166 c = STATE(lchild).cost_r + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isLESS() ? 11 : INFINITE);
5167 if (c < p.cost_r) {
5168 p.cost_r = (char)(c);
5169 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1000; // p.r = 16
5170 closure_r(p, c);
5171 }
5172 }
5173 if ( // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
5174 rchild.getOpcode() == INT_CONSTANT_opcode
5175 ) {
5176 c = STATE(lchild).cost_load32 + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isLESS() ? 16 : INFINITE);
5177 if (c < p.cost_r) {
5178 p.cost_r = (char)(c);
5179 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1100; // p.r = 17
5180 closure_r(p, c);
5181 }
5182 }
5183 if ( // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
5184 rchild.getOpcode() == INT_CONSTANT_opcode
5185 ) {
5186 c = STATE(lchild).cost_r + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isGREATER_EQUAL() ? 22 : INFINITE);
5187 if (c < p.cost_r) {
5188 p.cost_r = (char)(c);
5189 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1200; // p.r = 18
5190 closure_r(p, c);
5191 }
5192 }
5193 if ( // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
5194 rchild.getOpcode() == INT_CONSTANT_opcode
5195 ) {
5196 c = STATE(lchild).cost_load32 + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isGREATER_EQUAL() ? 27 : INFINITE);
5197 if (c < p.cost_r) {
5198 p.cost_r = (char)(c);
5199 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1300; // p.r = 19
5200 closure_r(p, c);
5201 }
5202 }
5203 if ( // r: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
5204 rchild.getOpcode() == INT_CONSTANT_opcode
5205 ) {
5206 c = STATE(lchild).cost_cz + isZERO(VR(p), 26);
5207 if (c < p.cost_r) {
5208 p.cost_r = (char)(c);
5209 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1400; // p.r = 20
5210 closure_r(p, c);
5211 }
5212 }
5213 if ( // boolcmp: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
5214 rchild.getOpcode() == INT_CONSTANT_opcode
5215 ) {
5216 c = STATE(lchild).cost_cz + isZERO(VR(p), 0);
5217 if (c < p.cost_boolcmp) {
5218 p.cost_boolcmp = (char)(c);
5219 p.word2 = (p.word2 & 0xFFFFF87F) | 0x180; // p.boolcmp = 3
5220 }
5221 }
5222 if ( // r: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
5223 rchild.getOpcode() == INT_CONSTANT_opcode
5224 ) {
5225 c = STATE(lchild).cost_szp + (VR(p) == 0 && EQ_NE(BooleanCmp.getCond(P(p)))?26:INFINITE);
5226 if (c < p.cost_r) {
5227 p.cost_r = (char)(c);
5228 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1500; // p.r = 21
5229 closure_r(p, c);
5230 }
5231 }
5232 if ( // boolcmp: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
5233 rchild.getOpcode() == INT_CONSTANT_opcode
5234 ) {
5235 c = STATE(lchild).cost_szp + (VR(p) == 0 && EQ_NE(BooleanCmp.getCond(P(p)))?0:INFINITE);
5236 if (c < p.cost_boolcmp) {
5237 p.cost_boolcmp = (char)(c);
5238 p.word2 = (p.word2 & 0xFFFFF87F) | 0x200; // p.boolcmp = 4
5239 }
5240 }
5241 if ( // r: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
5242 rchild.getOpcode() == INT_CONSTANT_opcode
5243 ) {
5244 c = STATE(lchild).cost_bittest + ((VR(p) == 0 || VR(p) == 1) && EQ_NE(BooleanCmp.getCond(P(p))) ? 26 : INFINITE);
5245 if (c < p.cost_r) {
5246 p.cost_r = (char)(c);
5247 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1600; // p.r = 22
5248 closure_r(p, c);
5249 }
5250 }
5251 if ( // boolcmp: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
5252 rchild.getOpcode() == INT_CONSTANT_opcode
5253 ) {
5254 c = STATE(lchild).cost_bittest + ((VR(p) == 0 || VR(p) == 1) && EQ_NE(BooleanCmp.getCond(P(p))) ? 0 : INFINITE);
5255 if (c < p.cost_boolcmp) {
5256 p.cost_boolcmp = (char)(c);
5257 p.word2 = (p.word2 & 0xFFFFF87F) | 0x280; // p.boolcmp = 5
5258 }
5259 }
5260 if ( // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
5261 rchild.getOpcode() == INT_CONSTANT_opcode
5262 ) {
5263 c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 1 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 26 : INFINITE);
5264 if (c < p.cost_r) {
5265 p.cost_r = (char)(c);
5266 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1700; // p.r = 23
5267 closure_r(p, c);
5268 }
5269 }
5270 if ( // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
5271 rchild.getOpcode() == INT_CONSTANT_opcode
5272 ) {
5273 c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 1 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 0 : INFINITE);
5274 if (c < p.cost_boolcmp) {
5275 p.cost_boolcmp = (char)(c);
5276 p.word2 = (p.word2 & 0xFFFFF87F) | 0x300; // p.boolcmp = 6
5277 }
5278 }
5279 if ( // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
5280 rchild.getOpcode() == INT_CONSTANT_opcode
5281 ) {
5282 c = STATE(lchild).cost_boolcmp + ((VR(p) == 1 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 0 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 26 : INFINITE);
5283 if (c < p.cost_r) {
5284 p.cost_r = (char)(c);
5285 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1800; // p.r = 24
5286 closure_r(p, c);
5287 }
5288 }
5289 if ( // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
5290 rchild.getOpcode() == INT_CONSTANT_opcode
5291 ) {
5292 c = STATE(lchild).cost_boolcmp + ((VR(p) == 1 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 0 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 0 : INFINITE);
5293 if (c < p.cost_boolcmp) {
5294 p.cost_boolcmp = (char)(c);
5295 p.word2 = (p.word2 & 0xFFFFF87F) | 0x380; // p.boolcmp = 7
5296 }
5297 }
5298 // r: BOOLEAN_CMP_INT(load32,riv)
5299 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 41;
5300 if (c < p.cost_r) {
5301 p.cost_r = (char)(c);
5302 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1900; // p.r = 25
5303 closure_r(p, c);
5304 }
5305 // boolcmp: BOOLEAN_CMP_INT(load32,riv)
5306 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
5307 if (c < p.cost_boolcmp) {
5308 p.cost_boolcmp = (char)(c);
5309 p.word2 = (p.word2 & 0xFFFFF87F) | 0x400; // p.boolcmp = 8
5310 }
5311 // r: BOOLEAN_CMP_INT(r,load32)
5312 c = STATE(lchild).cost_r + STATE(rchild).cost_load32 + 41;
5313 if (c < p.cost_r) {
5314 p.cost_r = (char)(c);
5315 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1A00; // p.r = 26
5316 closure_r(p, c);
5317 }
5318 // boolcmp: BOOLEAN_CMP_INT(riv,load32)
5319 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
5320 if (c < p.cost_boolcmp) {
5321 p.cost_boolcmp = (char)(c);
5322 p.word2 = (p.word2 & 0xFFFFF87F) | 0x480; // p.boolcmp = 9
5323 }
5324 }
5325
5326 private void label_BOOLEAN_CMP_LONG(BURS_TreeNode p) {
5327 p.word0 = 0;
5328 p.initCost();
5329 BURS_TreeNode lchild, rchild;
5330 lchild = p.child1;
5331 rchild = p.child2;
5332 label(lchild);
5333 label(rchild);
5334 int c;
5335 // r: BOOLEAN_CMP_LONG(rlv,rlv)
5336 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 8*13;
5337 if (c < p.cost_r) {
5338 p.cost_r = (char)(c);
5339 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1B00; // p.r = 27
5340 closure_r(p, c);
5341 }
5342 // boolcmp: BOOLEAN_CMP_LONG(rlv,rlv)
5343 c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 11*13;
5344 if (c < p.cost_boolcmp) {
5345 p.cost_boolcmp = (char)(c);
5346 p.word2 = (p.word2 & 0xFFFFF87F) | 0x500; // p.boolcmp = 10
5347 }
5348 }
5349
5350 private void label_BYTE_LOAD(BURS_TreeNode p) {
5351 p.word0 = 0;
5352 p.initCost();
5353 BURS_TreeNode lchild, rchild;
5354 lchild = p.child1;
5355 rchild = p.child2;
5356 label(lchild);
5357 label(rchild);
5358 int c;
5359 // sload8: BYTE_LOAD(riv,riv)
5360 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
5361 if (c < p.cost_sload8) {
5362 p.cost_sload8 = (char)(c);
5363 p.word1 = (p.word1 & 0xFFFFFF9F) | 0x20; // p.sload8 = 1
5364 closure_sload8(p, c);
5365 }
5366 // r: BYTE_LOAD(riv,riv)
5367 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
5368 if (c < p.cost_r) {
5369 p.cost_r = (char)(c);
5370 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6700; // p.r = 103
5371 closure_r(p, c);
5372 }
5373 }
5374
5375 private void label_UBYTE_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 // uload8: UBYTE_LOAD(riv,riv)
5385 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
5386 if (c < p.cost_uload8) {
5387 p.cost_uload8 = (char)(c);
5388 p.word1 = (p.word1 & 0xFFFFFC7F) | 0x80; // p.uload8 = 1
5389 closure_uload8(p, c);
5390 }
5391 // r: UBYTE_LOAD(riv,riv)
5392 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
5393 if (c < p.cost_r) {
5394 p.cost_r = (char)(c);
5395 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6900; // p.r = 105
5396 closure_r(p, c);
5397 }
5398 }
5399
5400 private void label_SHORT_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 // sload16: SHORT_LOAD(riv,riv)
5410 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
5411 if (c < p.cost_sload16) {
5412 p.cost_sload16 = (char)(c);
5413 p.word1 = (p.word1 & 0xFFFFCFFF) | 0x1000; // p.sload16 = 1
5414 closure_sload16(p, c);
5415 }
5416 // r: SHORT_LOAD(riv,riv)
5417 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
5418 if (c < p.cost_r) {
5419 p.cost_r = (char)(c);
5420 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6E00; // p.r = 110
5421 closure_r(p, c);
5422 }
5423 }
5424
5425 private void label_USHORT_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 // uload16: USHORT_LOAD(riv,riv)
5435 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
5436 if (c < p.cost_uload16) {
5437 p.cost_uload16 = (char)(c);
5438 p.word1 = (p.word1 & 0xFFFF3FFF) | 0x4000; // p.uload16 = 1
5439 closure_uload16(p, c);
5440 }
5441 // r: USHORT_LOAD(riv,riv)
5442 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
5443 if (c < p.cost_r) {
5444 p.cost_r = (char)(c);
5445 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7000; // p.r = 112
5446 closure_r(p, c);
5447 }
5448 }
5449
5450 private void label_INT_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 // load32: INT_LOAD(riv,riv)
5460 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
5461 if (c < p.cost_load32) {
5462 p.cost_load32 = (char)(c);
5463 p.word1 = (p.word1 & 0xFFE3FFFF) | 0x40000; // p.load32 = 1
5464 closure_load32(p, c);
5465 }
5466 // r: INT_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) | 0x7600; // p.r = 118
5471 closure_r(p, c);
5472 }
5473 // r: INT_LOAD(riv,address1scaledreg)
5474 c = STATE(lchild).cost_riv + STATE(rchild).cost_address1scaledreg + 15;
5475 if (c < p.cost_r) {
5476 p.cost_r = (char)(c);
5477 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7700; // p.r = 119
5478 closure_r(p, c);
5479 }
5480 // r: INT_LOAD(address1scaledreg,riv)
5481 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_riv + 15;
5482 if (c < p.cost_r) {
5483 p.cost_r = (char)(c);
5484 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7800; // p.r = 120
5485 closure_r(p, c);
5486 }
5487 // r: INT_LOAD(address1scaledreg,address1reg)
5488 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 15;
5489 if (c < p.cost_r) {
5490 p.cost_r = (char)(c);
5491 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7900; // p.r = 121
5492 closure_r(p, c);
5493 }
5494 // r: INT_LOAD(address1reg,address1scaledreg)
5495 c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 15;
5496 if (c < p.cost_r) {
5497 p.cost_r = (char)(c);
5498 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7A00; // p.r = 122
5499 closure_r(p, c);
5500 }
5501 if ( // r: INT_LOAD(address,INT_CONSTANT)
5502 rchild.getOpcode() == INT_CONSTANT_opcode
5503 ) {
5504 c = STATE(lchild).cost_address + 15;
5505 if (c < p.cost_r) {
5506 p.cost_r = (char)(c);
5507 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7B00; // p.r = 123
5508 closure_r(p, c);
5509 }
5510 }
5511 }
5512
5513 private void label_LONG_LOAD(BURS_TreeNode p) {
5514 p.word0 = 0;
5515 p.initCost();
5516 BURS_TreeNode lchild, rchild;
5517 lchild = p.child1;
5518 rchild = p.child2;
5519 label(lchild);
5520 label(rchild);
5521 int c;
5522 // load64: LONG_LOAD(riv,riv)
5523 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
5524 if (c < p.cost_load64) {
5525 p.cost_load64 = (char)(c);
5526 p.word1 = (p.word1 & 0xF1FFFFFF) | 0x2000000; // p.load64 = 1
5527 }
5528 // r: LONG_LOAD(riv,riv)
5529 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 30;
5530 if (c < p.cost_r) {
5531 p.cost_r = (char)(c);
5532 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7D00; // p.r = 125
5533 closure_r(p, c);
5534 }
5535 }
5536
5537 private void label_FLOAT_LOAD(BURS_TreeNode p) {
5538 p.word0 = 0;
5539 p.initCost();
5540 BURS_TreeNode lchild, rchild;
5541 lchild = p.child1;
5542 rchild = p.child2;
5543 label(lchild);
5544 label(rchild);
5545 int c;
5546 // r: FLOAT_LOAD(riv,riv)
5547 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
5548 if (c < p.cost_r) {
5549 p.cost_r = (char)(c);
5550 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB800; // p.r = 184
5551 closure_r(p, c);
5552 }
5553 // float_load: FLOAT_LOAD(riv,riv)
5554 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
5555 if (c < p.cost_float_load) {
5556 p.cost_float_load = (char)(c);
5557 p.word2 = (p.word2 & 0xFFFC7FFF) | 0x8000; // p.float_load = 1
5558 }
5559 }
5560
5561 private void label_DOUBLE_LOAD(BURS_TreeNode p) {
5562 p.word0 = 0;
5563 p.initCost();
5564 BURS_TreeNode lchild, rchild;
5565 lchild = p.child1;
5566 rchild = p.child2;
5567 label(lchild);
5568 label(rchild);
5569 int c;
5570 // r: DOUBLE_LOAD(riv,riv)
5571 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
5572 if (c < p.cost_r) {
5573 p.cost_r = (char)(c);
5574 p.word0 = (p.word0 & 0xFFFF00FF) | 0xB600; // p.r = 182
5575 closure_r(p, c);
5576 }
5577 // double_load: DOUBLE_LOAD(riv,riv)
5578 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
5579 if (c < p.cost_double_load) {
5580 p.cost_double_load = (char)(c);
5581 p.word2 = (p.word2 & 0xFFE3FFFF) | 0x40000; // p.double_load = 1
5582 }
5583 }
5584
5585 private void label_BYTE_STORE(BURS_TreeNode p) {
5586 p.word0 = 0;
5587 p.initCost();
5588 BURS_TreeNode lchild, rchild;
5589 lchild = p.child1;
5590 rchild = p.child2;
5591 label(lchild);
5592 label(rchild);
5593 int c;
5594 if ( // stm: BYTE_STORE(BOOLEAN_NOT(UBYTE_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
5595 lchild.getOpcode() == BOOLEAN_NOT_opcode &&
5596 lchild.child1.getOpcode() == UBYTE_LOAD_opcode &&
5597 rchild.getOpcode() == OTHER_OPERAND_opcode
5598 ) {
5599 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);
5600 if (c < p.cost_stm) {
5601 p.cost_stm = (char)(c);
5602 p.word0 = (p.word0 & 0xFFFFFF00) | 0x14; // p.stm = 20
5603 }
5604 }
5605 if ( // stm: BYTE_STORE(boolcmp,OTHER_OPERAND(riv,riv))
5606 rchild.getOpcode() == OTHER_OPERAND_opcode
5607 ) {
5608 c = STATE(lchild).cost_boolcmp + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
5609 if (c < p.cost_stm) {
5610 p.cost_stm = (char)(c);
5611 p.word0 = (p.word0 & 0xFFFFFF00) | 0x16; // p.stm = 22
5612 }
5613 }
5614 if ( // stm: BYTE_STORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
5615 lchild.getOpcode() == INT_2BYTE_opcode &&
5616 rchild.getOpcode() == OTHER_OPERAND_opcode
5617 ) {
5618 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
5619 if (c < p.cost_stm) {
5620 p.cost_stm = (char)(c);
5621 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3C; // p.stm = 60
5622 }
5623 }
5624 if ( // stm: BYTE_STORE(riv,OTHER_OPERAND(riv,riv))
5625 rchild.getOpcode() == OTHER_OPERAND_opcode
5626 ) {
5627 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
5628 if (c < p.cost_stm) {
5629 p.cost_stm = (char)(c);
5630 p.word0 = (p.word0 & 0xFFFFFF00) | 0x52; // p.stm = 82
5631 }
5632 }
5633 if ( // stm: BYTE_STORE(load8,OTHER_OPERAND(riv,riv))
5634 rchild.getOpcode() == OTHER_OPERAND_opcode
5635 ) {
5636 c = STATE(lchild).cost_load8 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25;
5637 if (c < p.cost_stm) {
5638 p.cost_stm = (char)(c);
5639 p.word0 = (p.word0 & 0xFFFFFF00) | 0x53; // p.stm = 83
5640 }
5641 }
5642 }
5643
5644 private void label_SHORT_STORE(BURS_TreeNode p) {
5645 p.word0 = 0;
5646 p.initCost();
5647 BURS_TreeNode lchild, rchild;
5648 lchild = p.child1;
5649 rchild = p.child2;
5650 label(lchild);
5651 label(rchild);
5652 int c;
5653 if ( // stm: SHORT_STORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
5654 lchild.getOpcode() == INT_2USHORT_opcode &&
5655 rchild.getOpcode() == OTHER_OPERAND_opcode
5656 ) {
5657 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
5658 if (c < p.cost_stm) {
5659 p.cost_stm = (char)(c);
5660 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3E; // p.stm = 62
5661 }
5662 }
5663 if ( // stm: SHORT_STORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
5664 lchild.getOpcode() == INT_2SHORT_opcode &&
5665 rchild.getOpcode() == OTHER_OPERAND_opcode
5666 ) {
5667 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
5668 if (c < p.cost_stm) {
5669 p.cost_stm = (char)(c);
5670 p.word0 = (p.word0 & 0xFFFFFF00) | 0x40; // p.stm = 64
5671 }
5672 }
5673 if ( // stm: SHORT_STORE(riv,OTHER_OPERAND(riv,riv))
5674 rchild.getOpcode() == OTHER_OPERAND_opcode
5675 ) {
5676 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
5677 if (c < p.cost_stm) {
5678 p.cost_stm = (char)(c);
5679 p.word0 = (p.word0 & 0xFFFFFF00) | 0x56; // p.stm = 86
5680 }
5681 }
5682 if ( // stm: SHORT_STORE(load16,OTHER_OPERAND(riv,riv))
5683 rchild.getOpcode() == OTHER_OPERAND_opcode
5684 ) {
5685 c = STATE(lchild).cost_load16 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25;
5686 if (c < p.cost_stm) {
5687 p.cost_stm = (char)(c);
5688 p.word0 = (p.word0 & 0xFFFFFF00) | 0x57; // p.stm = 87
5689 }
5690 }
5691 }
5692
5693 private void label_INT_STORE(BURS_TreeNode p) {
5694 p.word0 = 0;
5695 p.initCost();
5696 BURS_TreeNode lchild, rchild;
5697 lchild = p.child1;
5698 rchild = p.child2;
5699 label(lchild);
5700 label(rchild);
5701 int c;
5702 if ( // stm: INT_STORE(INT_ADD(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
5703 lchild.getOpcode() == INT_ADD_opcode &&
5704 lchild.child1.getOpcode() == INT_LOAD_opcode &&
5705 rchild.getOpcode() == OTHER_OPERAND_opcode
5706 ) {
5707 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);
5708 if (c < p.cost_stm) {
5709 p.cost_stm = (char)(c);
5710 p.word0 = (p.word0 & 0xFFFFFF00) | 0x18; // p.stm = 24
5711 }
5712 }
5713 if ( // stm: INT_STORE(INT_ADD(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
5714 lchild.getOpcode() == INT_ADD_opcode &&
5715 lchild.child2.getOpcode() == INT_LOAD_opcode &&
5716 rchild.getOpcode() == OTHER_OPERAND_opcode
5717 ) {
5718 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);
5719 if (c < p.cost_stm) {
5720 p.cost_stm = (char)(c);
5721 p.word0 = (p.word0 & 0xFFFFFF00) | 0x19; // p.stm = 25
5722 }
5723 }
5724 if ( // stm: INT_STORE(INT_SUB(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
5725 lchild.getOpcode() == INT_SUB_opcode &&
5726 lchild.child1.getOpcode() == INT_LOAD_opcode &&
5727 rchild.getOpcode() == OTHER_OPERAND_opcode
5728 ) {
5729 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);
5730 if (c < p.cost_stm) {
5731 p.cost_stm = (char)(c);
5732 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1C; // p.stm = 28
5733 }
5734 }
5735 if ( // stm: INT_STORE(INT_SUB(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
5736 lchild.getOpcode() == INT_SUB_opcode &&
5737 lchild.child2.getOpcode() == INT_LOAD_opcode &&
5738 rchild.getOpcode() == OTHER_OPERAND_opcode
5739 ) {
5740 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);
5741 if (c < p.cost_stm) {
5742 p.cost_stm = (char)(c);
5743 p.word0 = (p.word0 & 0xFFFFFF00) | 0x1D; // p.stm = 29
5744 }
5745 }
5746 if ( // stm: INT_STORE(INT_NEG(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
5747 lchild.getOpcode() == INT_NEG_opcode &&
5748 lchild.child1.getOpcode() == INT_LOAD_opcode &&
5749 rchild.getOpcode() == OTHER_OPERAND_opcode
5750 ) {
5751 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);
5752 if (c < p.cost_stm) {
5753 p.cost_stm = (char)(c);
5754 p.word0 = (p.word0 & 0xFFFFFF00) | 0x20; // p.stm = 32
5755 }
5756 }
5757 if ( // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
5758 lchild.getOpcode() == INT_SHL_opcode &&
5759 lchild.child1.getOpcode() == INT_LOAD_opcode &&
5760 lchild.child2.getOpcode() == INT_AND_opcode &&
5761 lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
5762 rchild.getOpcode() == OTHER_OPERAND_opcode
5763 ) {
5764 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));
5765 if (c < p.cost_stm) {
5766 p.cost_stm = (char)(c);
5767 p.word0 = (p.word0 & 0xFFFFFF00) | 0x22; // p.stm = 34
5768 }
5769 }
5770 if ( // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
5771 lchild.getOpcode() == INT_SHL_opcode &&
5772 lchild.child1.getOpcode() == INT_LOAD_opcode &&
5773 lchild.child2.getOpcode() == INT_CONSTANT_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) | 0x23; // p.stm = 35
5780 }
5781 }
5782 if ( // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
5783 lchild.getOpcode() == INT_SHR_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) | 0x26; // p.stm = 38
5793 }
5794 }
5795 if ( // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
5796 lchild.getOpcode() == INT_SHR_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) | 0x27; // p.stm = 39
5805 }
5806 }
5807 if ( // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
5808 lchild.getOpcode() == INT_USHR_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) | 0x2A; // p.stm = 42
5818 }
5819 }
5820 if ( // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
5821 lchild.getOpcode() == INT_USHR_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) | 0x2B; // p.stm = 43
5830 }
5831 }
5832 if ( // stm: INT_STORE(INT_AND(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
5833 lchild.getOpcode() == INT_AND_opcode &&
5834 lchild.child1.getOpcode() == INT_LOAD_opcode &&
5835 rchild.getOpcode() == OTHER_OPERAND_opcode
5836 ) {
5837 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);
5838 if (c < p.cost_stm) {
5839 p.cost_stm = (char)(c);
5840 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2E; // p.stm = 46
5841 }
5842 }
5843 if ( // stm: INT_STORE(INT_AND(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
5844 lchild.getOpcode() == INT_AND_opcode &&
5845 lchild.child2.getOpcode() == INT_LOAD_opcode &&
5846 rchild.getOpcode() == OTHER_OPERAND_opcode
5847 ) {
5848 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);
5849 if (c < p.cost_stm) {
5850 p.cost_stm = (char)(c);
5851 p.word0 = (p.word0 & 0xFFFFFF00) | 0x2F; // p.stm = 47
5852 }
5853 }
5854 if ( // stm: INT_STORE(INT_OR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
5855 lchild.getOpcode() == INT_OR_opcode &&
5856 lchild.child1.getOpcode() == INT_LOAD_opcode &&
5857 rchild.getOpcode() == OTHER_OPERAND_opcode
5858 ) {
5859 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);
5860 if (c < p.cost_stm) {
5861 p.cost_stm = (char)(c);
5862 p.word0 = (p.word0 & 0xFFFFFF00) | 0x32; // p.stm = 50
5863 }
5864 }
5865 if ( // stm: INT_STORE(INT_OR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
5866 lchild.getOpcode() == INT_OR_opcode &&
5867 lchild.child2.getOpcode() == INT_LOAD_opcode &&
5868 rchild.getOpcode() == OTHER_OPERAND_opcode
5869 ) {
5870 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);
5871 if (c < p.cost_stm) {
5872 p.cost_stm = (char)(c);
5873 p.word0 = (p.word0 & 0xFFFFFF00) | 0x33; // p.stm = 51
5874 }
5875 }
5876 if ( // stm: INT_STORE(INT_XOR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
5877 lchild.getOpcode() == INT_XOR_opcode &&
5878 lchild.child1.getOpcode() == INT_LOAD_opcode &&
5879 rchild.getOpcode() == OTHER_OPERAND_opcode
5880 ) {
5881 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);
5882 if (c < p.cost_stm) {
5883 p.cost_stm = (char)(c);
5884 p.word0 = (p.word0 & 0xFFFFFF00) | 0x36; // p.stm = 54
5885 }
5886 }
5887 if ( // stm: INT_STORE(INT_XOR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
5888 lchild.getOpcode() == INT_XOR_opcode &&
5889 lchild.child2.getOpcode() == INT_LOAD_opcode &&
5890 rchild.getOpcode() == OTHER_OPERAND_opcode
5891 ) {
5892 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);
5893 if (c < p.cost_stm) {
5894 p.cost_stm = (char)(c);
5895 p.word0 = (p.word0 & 0xFFFFFF00) | 0x37; // p.stm = 55
5896 }
5897 }
5898 if ( // stm: INT_STORE(INT_NOT(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
5899 lchild.getOpcode() == INT_NOT_opcode &&
5900 lchild.child1.getOpcode() == INT_LOAD_opcode &&
5901 rchild.getOpcode() == OTHER_OPERAND_opcode
5902 ) {
5903 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);
5904 if (c < p.cost_stm) {
5905 p.cost_stm = (char)(c);
5906 p.word0 = (p.word0 & 0xFFFFFF00) | 0x3A; // p.stm = 58
5907 }
5908 }
5909 if ( // stm: INT_STORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
5910 lchild.getOpcode() == LONG_2INT_opcode &&
5911 rchild.getOpcode() == OTHER_OPERAND_opcode
5912 ) {
5913 c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
5914 if (c < p.cost_stm) {
5915 p.cost_stm = (char)(c);
5916 p.word0 = (p.word0 & 0xFFFFFF00) | 0x42; // p.stm = 66
5917 }
5918 }
5919 if ( // stm: INT_STORE(riv,OTHER_OPERAND(riv,riv))
5920 rchild.getOpcode() == OTHER_OPERAND_opcode
5921 ) {
5922 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
5923 if (c < p.cost_stm) {
5924 p.cost_stm = (char)(c);
5925 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5A; // p.stm = 90
5926 }
5927 }
5928 if ( // stm: INT_STORE(riv,OTHER_OPERAND(riv,address1scaledreg))
5929 rchild.getOpcode() == OTHER_OPERAND_opcode
5930 ) {
5931 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_address1scaledreg + 15;
5932 if (c < p.cost_stm) {
5933 p.cost_stm = (char)(c);
5934 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5B; // p.stm = 91
5935 }
5936 }
5937 if ( // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,riv))
5938 rchild.getOpcode() == OTHER_OPERAND_opcode
5939 ) {
5940 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2).cost_riv + 15;
5941 if (c < p.cost_stm) {
5942 p.cost_stm = (char)(c);
5943 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5C; // p.stm = 92
5944 }
5945 }
5946 if ( // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,address1reg))
5947 rchild.getOpcode() == OTHER_OPERAND_opcode
5948 ) {
5949 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2).cost_address1reg + 15;
5950 if (c < p.cost_stm) {
5951 p.cost_stm = (char)(c);
5952 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5D; // p.stm = 93
5953 }
5954 }
5955 if ( // stm: INT_STORE(riv,OTHER_OPERAND(address1reg,address1scaledreg))
5956 rchild.getOpcode() == OTHER_OPERAND_opcode
5957 ) {
5958 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address1reg + STATE(rchild.child2).cost_address1scaledreg + 15;
5959 if (c < p.cost_stm) {
5960 p.cost_stm = (char)(c);
5961 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5E; // p.stm = 94
5962 }
5963 }
5964 if ( // stm: INT_STORE(riv,OTHER_OPERAND(address,INT_CONSTANT))
5965 rchild.getOpcode() == OTHER_OPERAND_opcode &&
5966 rchild.child2.getOpcode() == INT_CONSTANT_opcode
5967 ) {
5968 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address + 15;
5969 if (c < p.cost_stm) {
5970 p.cost_stm = (char)(c);
5971 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5F; // p.stm = 95
5972 }
5973 }
5974 }
5975
5976 private void label_LONG_STORE(BURS_TreeNode p) {
5977 p.word0 = 0;
5978 p.initCost();
5979 BURS_TreeNode lchild, rchild;
5980 lchild = p.child1;
5981 rchild = p.child2;
5982 label(lchild);
5983 label(rchild);
5984 int c;
5985 if ( // stm: LONG_STORE(r,OTHER_OPERAND(riv,riv))
5986 rchild.getOpcode() == OTHER_OPERAND_opcode
5987 ) {
5988 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 30;
5989 if (c < p.cost_stm) {
5990 p.cost_stm = (char)(c);
5991 p.word0 = (p.word0 & 0xFFFFFF00) | 0x61; // p.stm = 97
5992 }
5993 }
5994 if ( // stm: LONG_STORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
5995 lchild.getOpcode() == LONG_CONSTANT_opcode &&
5996 rchild.getOpcode() == OTHER_OPERAND_opcode
5997 ) {
5998 c = STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 26;
5999 if (c < p.cost_stm) {
6000 p.cost_stm = (char)(c);
6001 p.word0 = (p.word0 & 0xFFFFFF00) | 0x62; // p.stm = 98
6002 }
6003 }
6004 if ( // stm: LONG_STORE(load64,OTHER_OPERAND(riv,riv))
6005 rchild.getOpcode() == OTHER_OPERAND_opcode
6006 ) {
6007 c = STATE(lchild).cost_load64 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 32;
6008 if (c < p.cost_stm) {
6009 p.cost_stm = (char)(c);
6010 p.word0 = (p.word0 & 0xFFFFFF00) | 0x8C; // p.stm = 140
6011 }
6012 }
6013 }
6014
6015 private void label_FLOAT_STORE(BURS_TreeNode p) {
6016 p.word0 = 0;
6017 p.initCost();
6018 BURS_TreeNode lchild, rchild;
6019 lchild = p.child1;
6020 rchild = p.child2;
6021 label(lchild);
6022 label(rchild);
6023 int c;
6024 if ( // stm: FLOAT_STORE(r,OTHER_OPERAND(riv,riv))
6025 rchild.getOpcode() == OTHER_OPERAND_opcode
6026 ) {
6027 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 17;
6028 if (c < p.cost_stm) {
6029 p.cost_stm = (char)(c);
6030 p.word0 = (p.word0 & 0xFFFFFF00) | 0x82; // p.stm = 130
6031 }
6032 }
6033 }
6034
6035 private void label_DOUBLE_STORE(BURS_TreeNode p) {
6036 p.word0 = 0;
6037 p.initCost();
6038 BURS_TreeNode lchild, rchild;
6039 lchild = p.child1;
6040 rchild = p.child2;
6041 label(lchild);
6042 label(rchild);
6043 int c;
6044 if ( // stm: DOUBLE_STORE(r,OTHER_OPERAND(riv,riv))
6045 rchild.getOpcode() == OTHER_OPERAND_opcode
6046 ) {
6047 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 17;
6048 if (c < p.cost_stm) {
6049 p.cost_stm = (char)(c);
6050 p.word0 = (p.word0 & 0xFFFFFF00) | 0x80; // p.stm = 128
6051 }
6052 }
6053 }
6054
6055 private void label_PREPARE_INT(BURS_TreeNode p) {
6056 p.word0 = 0;
6057 p.initCost();
6058 BURS_TreeNode lchild, rchild;
6059 lchild = p.child1;
6060 rchild = p.child2;
6061 label(lchild);
6062 label(rchild);
6063 int c;
6064 // r: PREPARE_INT(riv,riv)
6065 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
6066 if (c < p.cost_r) {
6067 p.cost_r = (char)(c);
6068 p.word0 = (p.word0 & 0xFFFF00FF) | 0x7F00; // p.r = 127
6069 closure_r(p, c);
6070 }
6071 // r: PREPARE_INT(r,address1scaledreg)
6072 c = STATE(lchild).cost_r + STATE(rchild).cost_address1scaledreg + 15;
6073 if (c < p.cost_r) {
6074 p.cost_r = (char)(c);
6075 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8000; // p.r = 128
6076 closure_r(p, c);
6077 }
6078 // r: PREPARE_INT(address1scaledreg,r)
6079 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_r + 15;
6080 if (c < p.cost_r) {
6081 p.cost_r = (char)(c);
6082 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8100; // p.r = 129
6083 closure_r(p, c);
6084 }
6085 // r: PREPARE_INT(address1scaledreg,address1reg)
6086 c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 15;
6087 if (c < p.cost_r) {
6088 p.cost_r = (char)(c);
6089 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8200; // p.r = 130
6090 closure_r(p, c);
6091 }
6092 // r: PREPARE_INT(address1reg,address1scaledreg)
6093 c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 15;
6094 if (c < p.cost_r) {
6095 p.cost_r = (char)(c);
6096 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8300; // p.r = 131
6097 closure_r(p, c);
6098 }
6099 if ( // r: PREPARE_INT(address,INT_CONSTANT)
6100 rchild.getOpcode() == INT_CONSTANT_opcode
6101 ) {
6102 c = STATE(lchild).cost_address + 15;
6103 if (c < p.cost_r) {
6104 p.cost_r = (char)(c);
6105 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8400; // p.r = 132
6106 closure_r(p, c);
6107 }
6108 }
6109 if ( // r: PREPARE_INT(INT_CONSTANT,address)
6110 lchild.getOpcode() == INT_CONSTANT_opcode
6111 ) {
6112 c = STATE(rchild).cost_address + 15;
6113 if (c < p.cost_r) {
6114 p.cost_r = (char)(c);
6115 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8500; // p.r = 133
6116 closure_r(p, c);
6117 }
6118 }
6119 }
6120
6121 private void label_PREPARE_LONG(BURS_TreeNode p) {
6122 p.word0 = 0;
6123 p.initCost();
6124 BURS_TreeNode lchild, rchild;
6125 lchild = p.child1;
6126 rchild = p.child2;
6127 label(lchild);
6128 label(rchild);
6129 int c;
6130 // r: PREPARE_LONG(riv,riv)
6131 c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 30;
6132 if (c < p.cost_r) {
6133 p.cost_r = (char)(c);
6134 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8600; // p.r = 134
6135 closure_r(p, c);
6136 }
6137 }
6138
6139 private void label_ATTEMPT_INT(BURS_TreeNode p) {
6140 p.word0 = 0;
6141 p.initCost();
6142 BURS_TreeNode lchild, rchild;
6143 lchild = p.child1;
6144 rchild = p.child2;
6145 label(lchild);
6146 label(rchild);
6147 int c;
6148 if ( // r: ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv)))
6149 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6150 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
6151 ) {
6152 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
6153 if (c < p.cost_r) {
6154 p.cost_r = (char)(c);
6155 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8700; // p.r = 135
6156 closure_r(p, c);
6157 }
6158 }
6159 if ( // r: ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
6160 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6161 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
6162 ) {
6163 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
6164 if (c < p.cost_r) {
6165 p.cost_r = (char)(c);
6166 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8800; // p.r = 136
6167 closure_r(p, c);
6168 }
6169 }
6170 if ( // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv)))
6171 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6172 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
6173 ) {
6174 c = STATE(lchild).cost_address1scaledreg + STATE(rchild.child1).cost_r + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
6175 if (c < p.cost_r) {
6176 p.cost_r = (char)(c);
6177 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8900; // p.r = 137
6178 closure_r(p, c);
6179 }
6180 }
6181 if ( // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv)))
6182 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6183 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
6184 ) {
6185 c = STATE(lchild).cost_address1scaledreg + STATE(rchild.child1).cost_address1reg + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
6186 if (c < p.cost_r) {
6187 p.cost_r = (char)(c);
6188 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8A00; // p.r = 138
6189 closure_r(p, c);
6190 }
6191 }
6192 if ( // r: ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
6193 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6194 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
6195 ) {
6196 c = STATE(lchild).cost_address1reg + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
6197 if (c < p.cost_r) {
6198 p.cost_r = (char)(c);
6199 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8B00; // p.r = 139
6200 closure_r(p, c);
6201 }
6202 }
6203 if ( // r: ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv)))
6204 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6205 rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
6206 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
6207 ) {
6208 c = STATE(lchild).cost_address + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
6209 if (c < p.cost_r) {
6210 p.cost_r = (char)(c);
6211 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8C00; // p.r = 140
6212 closure_r(p, c);
6213 }
6214 }
6215 if ( // r: ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv)))
6216 lchild.getOpcode() == INT_CONSTANT_opcode &&
6217 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6218 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
6219 ) {
6220 c = STATE(rchild.child1).cost_address + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
6221 if (c < p.cost_r) {
6222 p.cost_r = (char)(c);
6223 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8D00; // p.r = 141
6224 closure_r(p, c);
6225 }
6226 }
6227 }
6228
6229 private void label_ATTEMPT_LONG(BURS_TreeNode p) {
6230 p.word0 = 0;
6231 p.initCost();
6232 BURS_TreeNode lchild, rchild;
6233 lchild = p.child1;
6234 rchild = p.child2;
6235 label(lchild);
6236 label(rchild);
6237 int c;
6238 if ( // r: ATTEMPT_LONG(riv,OTHER_OPERAND(riv,OTHER_OPERAND(rlv,rlv)))
6239 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6240 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
6241 ) {
6242 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2.child1).cost_rlv + STATE(rchild.child2.child2).cost_rlv + 67;
6243 if (c < p.cost_r) {
6244 p.cost_r = (char)(c);
6245 p.word0 = (p.word0 & 0xFFFF00FF) | 0x8E00; // p.r = 142
6246 closure_r(p, c);
6247 }
6248 }
6249 }
6250
6251 private void label_CALL(BURS_TreeNode p) {
6252 p.word0 = 0;
6253 p.initCost();
6254 BURS_TreeNode lchild, rchild;
6255 lchild = p.child1;
6256 rchild = p.child2;
6257 label(lchild);
6258 label(rchild);
6259 int c;
6260 // r: CALL(r,any)
6261 c = STATE(lchild).cost_r + STATE(rchild).cost_any + 13;
6262 if (c < p.cost_r) {
6263 p.cost_r = (char)(c);
6264 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9000; // p.r = 144
6265 closure_r(p, c);
6266 }
6267 if ( // r: CALL(BRANCH_TARGET,any)
6268 lchild.getOpcode() == BRANCH_TARGET_opcode
6269 ) {
6270 c = STATE(rchild).cost_any + 13;
6271 if (c < p.cost_r) {
6272 p.cost_r = (char)(c);
6273 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9100; // p.r = 145
6274 closure_r(p, c);
6275 }
6276 }
6277 if ( // r: CALL(INT_LOAD(riv,riv),any)
6278 lchild.getOpcode() == INT_LOAD_opcode
6279 ) {
6280 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild).cost_any + 11;
6281 if (c < p.cost_r) {
6282 p.cost_r = (char)(c);
6283 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9200; // p.r = 146
6284 closure_r(p, c);
6285 }
6286 }
6287 if ( // r: CALL(INT_CONSTANT,any)
6288 lchild.getOpcode() == INT_CONSTANT_opcode
6289 ) {
6290 c = STATE(rchild).cost_any + 23;
6291 if (c < p.cost_r) {
6292 p.cost_r = (char)(c);
6293 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9300; // p.r = 147
6294 closure_r(p, c);
6295 }
6296 }
6297 }
6298
6299 private void label_SYSCALL(BURS_TreeNode p) {
6300 p.word0 = 0;
6301 p.initCost();
6302 BURS_TreeNode lchild, rchild;
6303 lchild = p.child1;
6304 rchild = p.child2;
6305 label(lchild);
6306 label(rchild);
6307 int c;
6308 // r: SYSCALL(r,any)
6309 c = STATE(lchild).cost_r + STATE(rchild).cost_any + 13;
6310 if (c < p.cost_r) {
6311 p.cost_r = (char)(c);
6312 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9400; // p.r = 148
6313 closure_r(p, c);
6314 }
6315 if ( // r: SYSCALL(INT_LOAD(riv,riv),any)
6316 lchild.getOpcode() == INT_LOAD_opcode
6317 ) {
6318 c = STATE(lchild.child1).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild).cost_any + 11;
6319 if (c < p.cost_r) {
6320 p.cost_r = (char)(c);
6321 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9500; // p.r = 149
6322 closure_r(p, c);
6323 }
6324 }
6325 if ( // r: SYSCALL(INT_CONSTANT,any)
6326 lchild.getOpcode() == INT_CONSTANT_opcode
6327 ) {
6328 c = STATE(rchild).cost_any + 23;
6329 if (c < p.cost_r) {
6330 p.cost_r = (char)(c);
6331 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9600; // p.r = 150
6332 closure_r(p, c);
6333 }
6334 }
6335 }
6336
6337 private void label_YIELDPOINT_PROLOGUE(BURS_TreeNode p) {
6338 p.word0 = 0;
6339 p.initCost();
6340 // stm: YIELDPOINT_PROLOGUE
6341 if (10 < p.cost_stm) {
6342 p.cost_stm = (char)(10);
6343 p.word0 = (p.word0 & 0xFFFFFF00) | 0x5; // p.stm = 5
6344 }
6345 }
6346
6347 private void label_YIELDPOINT_EPILOGUE(BURS_TreeNode p) {
6348 p.word0 = 0;
6349 p.initCost();
6350 // stm: YIELDPOINT_EPILOGUE
6351 if (10 < p.cost_stm) {
6352 p.cost_stm = (char)(10);
6353 p.word0 = (p.word0 & 0xFFFFFF00) | 0x6; // p.stm = 6
6354 }
6355 }
6356
6357 private void label_YIELDPOINT_BACKEDGE(BURS_TreeNode p) {
6358 p.word0 = 0;
6359 p.initCost();
6360 // stm: YIELDPOINT_BACKEDGE
6361 if (10 < p.cost_stm) {
6362 p.cost_stm = (char)(10);
6363 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7; // p.stm = 7
6364 }
6365 }
6366
6367 private void label_YIELDPOINT_OSR(BURS_TreeNode p) {
6368 p.word0 = 0;
6369 p.initCost();
6370 BURS_TreeNode lchild, rchild;
6371 lchild = p.child1;
6372 rchild = p.child2;
6373 label(lchild);
6374 label(rchild);
6375 int c;
6376 // stm: YIELDPOINT_OSR(any,any)
6377 c = STATE(lchild).cost_any + STATE(rchild).cost_any + 10;
6378 if (c < p.cost_stm) {
6379 p.cost_stm = (char)(c);
6380 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7F; // p.stm = 127
6381 }
6382 }
6383
6384 private void label_IR_PROLOGUE(BURS_TreeNode p) {
6385 p.word0 = 0;
6386 p.initCost();
6387 // stm: IR_PROLOGUE
6388 if (11 < p.cost_stm) {
6389 p.cost_stm = (char)(11);
6390 p.word0 = (p.word0 & 0xFFFFFF00) | 0xC; // p.stm = 12
6391 }
6392 }
6393
6394 private void label_RESOLVE(BURS_TreeNode p) {
6395 p.word0 = 0;
6396 p.initCost();
6397 // stm: RESOLVE
6398 if (10 < p.cost_stm) {
6399 p.cost_stm = (char)(10);
6400 p.word0 = (p.word0 & 0xFFFFFF00) | 0x9; // p.stm = 9
6401 }
6402 }
6403
6404 private void label_GET_TIME_BASE(BURS_TreeNode p) {
6405 p.word0 = 0;
6406 p.initCost();
6407 // r: GET_TIME_BASE
6408 if (15 < p.cost_r) {
6409 p.cost_r = (char)(15);
6410 p.word0 = (p.word0 & 0xFFFF00FF) | 0x9700; // p.r = 151
6411 closure_r(p, 15);
6412 }
6413 }
6414
6415 private void label_TRAP_IF(BURS_TreeNode p) {
6416 p.word0 = 0;
6417 p.initCost();
6418 BURS_TreeNode lchild, rchild;
6419 lchild = p.child1;
6420 rchild = p.child2;
6421 label(lchild);
6422 label(rchild);
6423 int c;
6424 if ( // stm: TRAP_IF(r,INT_CONSTANT)
6425 rchild.getOpcode() == INT_CONSTANT_opcode
6426 ) {
6427 c = STATE(lchild).cost_r + 10;
6428 if (c < p.cost_stm) {
6429 p.cost_stm = (char)(c);
6430 p.word0 = (p.word0 & 0xFFFFFF00) | 0xF; // p.stm = 15
6431 }
6432 }
6433 if ( // stm: TRAP_IF(r,LONG_CONSTANT)
6434 rchild.getOpcode() == LONG_CONSTANT_opcode
6435 ) {
6436 c = STATE(lchild).cost_r + 10;
6437 if (c < p.cost_stm) {
6438 p.cost_stm = (char)(c);
6439 p.word0 = (p.word0 & 0xFFFFFF00) | 0x10; // p.stm = 16
6440 }
6441 }
6442 // stm: TRAP_IF(r,r)
6443 c = STATE(lchild).cost_r + STATE(rchild).cost_r + 10;
6444 if (c < p.cost_stm) {
6445 p.cost_stm = (char)(c);
6446 p.word0 = (p.word0 & 0xFFFFFF00) | 0x11; // p.stm = 17
6447 }
6448 // stm: TRAP_IF(load32,riv)
6449 c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
6450 if (c < p.cost_stm) {
6451 p.cost_stm = (char)(c);
6452 p.word0 = (p.word0 & 0xFFFFFF00) | 0x12; // p.stm = 18
6453 }
6454 // stm: TRAP_IF(riv,load32)
6455 c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
6456 if (c < p.cost_stm) {
6457 p.cost_stm = (char)(c);
6458 p.word0 = (p.word0 & 0xFFFFFF00) | 0x13; // p.stm = 19
6459 }
6460 }
6461
6462 private void label_TRAP(BURS_TreeNode p) {
6463 p.word0 = 0;
6464 p.initCost();
6465 // stm: TRAP
6466 if (10 < p.cost_stm) {
6467 p.cost_stm = (char)(10);
6468 p.word0 = (p.word0 & 0xFFFFFF00) | 0xE; // p.stm = 14
6469 }
6470 }
6471
6472 private void label_FLOAT_AS_INT_BITS(BURS_TreeNode p) {
6473 p.word0 = 0;
6474 p.initCost();
6475 BURS_TreeNode lchild;
6476 lchild = p.child1;
6477 label(lchild);
6478 int c;
6479 // r: FLOAT_AS_INT_BITS(r)
6480 c = STATE(lchild).cost_r + 13;
6481 if (c < p.cost_r) {
6482 p.cost_r = (char)(c);
6483 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC600; // p.r = 198
6484 closure_r(p, c);
6485 }
6486 // load32: FLOAT_AS_INT_BITS(float_load)
6487 c = STATE(lchild).cost_float_load + 0;
6488 if (c < p.cost_load32) {
6489 p.cost_load32 = (char)(c);
6490 p.word1 = (p.word1 & 0xFFE3FFFF) | 0x180000; // p.load32 = 6
6491 closure_load32(p, c);
6492 }
6493 }
6494
6495 private void label_INT_BITS_AS_FLOAT(BURS_TreeNode p) {
6496 p.word0 = 0;
6497 p.initCost();
6498 BURS_TreeNode lchild;
6499 lchild = p.child1;
6500 label(lchild);
6501 int c;
6502 // r: INT_BITS_AS_FLOAT(riv)
6503 c = STATE(lchild).cost_riv + 13;
6504 if (c < p.cost_r) {
6505 p.cost_r = (char)(c);
6506 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC800; // p.r = 200
6507 closure_r(p, c);
6508 }
6509 // float_load: INT_BITS_AS_FLOAT(load32)
6510 c = STATE(lchild).cost_load32 + 0;
6511 if (c < p.cost_float_load) {
6512 p.cost_float_load = (char)(c);
6513 p.word2 = (p.word2 & 0xFFFC7FFF) | 0x18000; // p.float_load = 3
6514 }
6515 }
6516
6517 private void label_DOUBLE_AS_LONG_BITS(BURS_TreeNode p) {
6518 p.word0 = 0;
6519 p.initCost();
6520 BURS_TreeNode lchild;
6521 lchild = p.child1;
6522 label(lchild);
6523 int c;
6524 // r: DOUBLE_AS_LONG_BITS(r)
6525 c = STATE(lchild).cost_r + 13;
6526 if (c < p.cost_r) {
6527 p.cost_r = (char)(c);
6528 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC700; // p.r = 199
6529 closure_r(p, c);
6530 }
6531 // load64: DOUBLE_AS_LONG_BITS(double_load)
6532 c = STATE(lchild).cost_double_load + 0;
6533 if (c < p.cost_load64) {
6534 p.cost_load64 = (char)(c);
6535 p.word1 = (p.word1 & 0xF1FFFFFF) | 0x8000000; // p.load64 = 4
6536 }
6537 }
6538
6539 private void label_LONG_BITS_AS_DOUBLE(BURS_TreeNode p) {
6540 p.word0 = 0;
6541 p.initCost();
6542 BURS_TreeNode lchild;
6543 lchild = p.child1;
6544 label(lchild);
6545 int c;
6546 // r: LONG_BITS_AS_DOUBLE(rlv)
6547 c = STATE(lchild).cost_rlv + 13;
6548 if (c < p.cost_r) {
6549 p.cost_r = (char)(c);
6550 p.word0 = (p.word0 & 0xFFFF00FF) | 0xC900; // p.r = 201
6551 closure_r(p, c);
6552 }
6553 // double_load: LONG_BITS_AS_DOUBLE(load64)
6554 c = STATE(lchild).cost_load64 + 0;
6555 if (c < p.cost_double_load) {
6556 p.cost_double_load = (char)(c);
6557 p.word2 = (p.word2 & 0xFFE3FFFF) | 0xC0000; // p.double_load = 3
6558 }
6559 }
6560
6561 private void label_LOWTABLESWITCH(BURS_TreeNode p) {
6562 p.word0 = 0;
6563 p.initCost();
6564 BURS_TreeNode lchild;
6565 lchild = p.child1;
6566 label(lchild);
6567 int c;
6568 // stm: LOWTABLESWITCH(r)
6569 c = STATE(lchild).cost_r + 10;
6570 if (c < p.cost_stm) {
6571 p.cost_stm = (char)(c);
6572 p.word0 = (p.word0 & 0xFFFFFF00) | 0x8; // p.stm = 8
6573 }
6574 }
6575
6576 private void label_ADDRESS_CONSTANT(BURS_TreeNode p) {
6577 p.word0 = 0;
6578 p.initCost();
6579 // any: ADDRESS_CONSTANT
6580 if (0 < p.cost_any) {
6581 p.cost_any = (char)(0);
6582 p.word1 = (p.word1 & 0xFFFFFFE3) | 0xC; // p.any = 3
6583 }
6584 }
6585
6586 private void label_INT_CONSTANT(BURS_TreeNode p) {
6587 p.word0 = 0;
6588 p.initCost();
6589 // riv: INT_CONSTANT
6590 if (0 < p.cost_riv) {
6591 p.cost_riv = (char)(0);
6592 p.word0 = (p.word0 & 0x9FFFFFFF) | 0x40000000; // p.riv = 2
6593 closure_riv(p, 0);
6594 }
6595 }
6596
6597 private void label_LONG_CONSTANT(BURS_TreeNode p) {
6598 p.word0 = 0;
6599 p.initCost();
6600 // rlv: LONG_CONSTANT
6601 if (0 < p.cost_rlv) {
6602 p.cost_rlv = (char)(0);
6603 p.word1 = (p.word1 & 0xFFFFFFFC) | 0x2; // p.rlv = 2
6604 }
6605 // any: LONG_CONSTANT
6606 if (0 < p.cost_any) {
6607 p.cost_any = (char)(0);
6608 p.word1 = (p.word1 & 0xFFFFFFE3) | 0x10; // p.any = 4
6609 }
6610 }
6611
6612 private void label_REGISTER(BURS_TreeNode p) {
6613 p.word0 = 0;
6614 p.initCost();
6615 // r: REGISTER
6616 if (0 < p.cost_r) {
6617 p.cost_r = (char)(0);
6618 p.word0 = (p.word0 & 0xFFFF00FF) | 0x100; // p.r = 1
6619 closure_r(p, 0);
6620 }
6621 }
6622
6623 private void label_OTHER_OPERAND(BURS_TreeNode p) {
6624 p.word0 = 0;
6625 p.initCost();
6626 BURS_TreeNode lchild, rchild;
6627 lchild = p.child1;
6628 rchild = p.child2;
6629 label(lchild);
6630 label(rchild);
6631 int c;
6632 // any: OTHER_OPERAND(any,any)
6633 c = STATE(lchild).cost_any + STATE(rchild).cost_any + 0;
6634 if (c < p.cost_any) {
6635 p.cost_any = (char)(c);
6636 p.word1 = (p.word1 & 0xFFFFFFE3) | 0x14; // p.any = 5
6637 }
6638 }
6639
6640 private void label_NULL(BURS_TreeNode p) {
6641 p.word0 = 0;
6642 p.initCost();
6643 // any: NULL
6644 if (0 < p.cost_any) {
6645 p.cost_any = (char)(0);
6646 p.word1 = (p.word1 & 0xFFFFFFE3) | 0x4; // p.any = 1
6647 }
6648 }
6649
6650 private void label_BRANCH_TARGET(BURS_TreeNode p) {
6651 p.word0 = 0;
6652 p.initCost();
6653 }
6654
6655 private void label_MATERIALIZE_FP_CONSTANT(BURS_TreeNode p) {
6656 p.word0 = 0;
6657 p.initCost();
6658 BURS_TreeNode lchild;
6659 lchild = p.child1;
6660 label(lchild);
6661 int c;
6662 if ( // r: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
6663 lchild.getOpcode() == INT_CONSTANT_opcode
6664 ) {
6665 c = 15;
6666 if (c < p.cost_r) {
6667 p.cost_r = (char)(c);
6668 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCA00; // p.r = 202
6669 closure_r(p, c);
6670 }
6671 }
6672 if ( // float_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
6673 lchild.getOpcode() == INT_CONSTANT_opcode
6674 ) {
6675 c = (Binary.getResult(P(p)).isFloat() ? 0 : INFINITE);
6676 if (c < p.cost_float_load) {
6677 p.cost_float_load = (char)(c);
6678 p.word2 = (p.word2 & 0xFFFC7FFF) | 0x20000; // p.float_load = 4
6679 }
6680 }
6681 if ( // double_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
6682 lchild.getOpcode() == INT_CONSTANT_opcode
6683 ) {
6684 c = (Binary.getResult(P(p)).isDouble() ? 0 : INFINITE);
6685 if (c < p.cost_double_load) {
6686 p.cost_double_load = (char)(c);
6687 p.word2 = (p.word2 & 0xFFE3FFFF) | 0x100000; // p.double_load = 4
6688 }
6689 }
6690 }
6691
6692 private void label_GET_CURRENT_PROCESSOR(BURS_TreeNode p) {
6693 p.word0 = 0;
6694 p.initCost();
6695 // r: GET_CURRENT_PROCESSOR
6696 if (15 < p.cost_r) {
6697 p.cost_r = (char)(15);
6698 p.word0 = (p.word0 & 0xFFFF00FF) | 0x6600; // p.r = 102
6699 closure_r(p, 15);
6700 }
6701 }
6702
6703 private void label_CLEAR_FLOATING_POINT_STATE(BURS_TreeNode p) {
6704 p.word0 = 0;
6705 p.initCost();
6706 // stm: CLEAR_FLOATING_POINT_STATE
6707 if (0 < p.cost_stm) {
6708 p.cost_stm = (char)(0);
6709 p.word0 = (p.word0 & 0xFFFFFF00) | 0x84; // p.stm = 132
6710 }
6711 }
6712
6713 private void label_PREFETCH(BURS_TreeNode p) {
6714 p.word0 = 0;
6715 p.initCost();
6716 BURS_TreeNode lchild;
6717 lchild = p.child1;
6718 label(lchild);
6719 int c;
6720 // stm: PREFETCH(r)
6721 c = STATE(lchild).cost_r + 11;
6722 if (c < p.cost_stm) {
6723 p.cost_stm = (char)(c);
6724 p.word0 = (p.word0 & 0xFFFFFF00) | 0x77; // p.stm = 119
6725 }
6726 }
6727
6728 private void label_PAUSE(BURS_TreeNode p) {
6729 p.word0 = 0;
6730 p.initCost();
6731 // stm: PAUSE
6732 if (11 < p.cost_stm) {
6733 p.cost_stm = (char)(11);
6734 p.word0 = (p.word0 & 0xFFFFFF00) | 0x7A; // p.stm = 122
6735 }
6736 }
6737
6738 private void label_CMP_CMOV(BURS_TreeNode p) {
6739 p.word0 = 0;
6740 p.initCost();
6741 BURS_TreeNode lchild, rchild;
6742 lchild = p.child1;
6743 rchild = p.child2;
6744 label(lchild);
6745 label(rchild);
6746 int c;
6747 if ( // r: CMP_CMOV(r,OTHER_OPERAND(riv,any))
6748 rchild.getOpcode() == OTHER_OPERAND_opcode
6749 ) {
6750 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_any + (13 + 30);
6751 if (c < p.cost_r) {
6752 p.cost_r = (char)(c);
6753 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1C00; // p.r = 28
6754 closure_r(p, c);
6755 }
6756 }
6757 if ( // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,any))
6758 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6759 rchild.child1.getOpcode() == INT_CONSTANT_opcode
6760 ) {
6761 c = STATE(lchild).cost_r + STATE(rchild.child2).cost_any + (VRL(p) == 0 && CMP_TO_TEST(CondMove.getCond(P(p))) ? (11 + 30):INFINITE);
6762 if (c < p.cost_r) {
6763 p.cost_r = (char)(c);
6764 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1D00; // p.r = 29
6765 closure_r(p, c);
6766 }
6767 }
6768 if ( // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
6769 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6770 rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
6771 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
6772 rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
6773 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
6774 ) {
6775 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);
6776 if (c < p.cost_r) {
6777 p.cost_r = (char)(c);
6778 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1E00; // p.r = 30
6779 closure_r(p, c);
6780 }
6781 }
6782 if ( // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
6783 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6784 rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
6785 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
6786 rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
6787 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
6788 ) {
6789 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);
6790 if (c < p.cost_r) {
6791 p.cost_r = (char)(c);
6792 p.word0 = (p.word0 & 0xFFFF00FF) | 0x1F00; // p.r = 31
6793 closure_r(p, c);
6794 }
6795 }
6796 if ( // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
6797 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6798 rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
6799 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
6800 rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
6801 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
6802 ) {
6803 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);
6804 if (c < p.cost_r) {
6805 p.cost_r = (char)(c);
6806 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2000; // p.r = 32
6807 closure_r(p, c);
6808 }
6809 }
6810 if ( // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
6811 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6812 rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
6813 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
6814 rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
6815 rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
6816 ) {
6817 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);
6818 if (c < p.cost_r) {
6819 p.cost_r = (char)(c);
6820 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2100; // p.r = 33
6821 closure_r(p, c);
6822 }
6823 }
6824 if ( // r: CMP_CMOV(load8,OTHER_OPERAND(INT_CONSTANT,any))
6825 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6826 rchild.child1.getOpcode() == INT_CONSTANT_opcode
6827 ) {
6828 c = STATE(lchild).cost_load8 + STATE(rchild.child2).cost_any + FITS(CondMove.getVal2(P(p)), 8, (15 + 30));
6829 if (c < p.cost_r) {
6830 p.cost_r = (char)(c);
6831 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2200; // p.r = 34
6832 closure_r(p, c);
6833 }
6834 }
6835 if ( // r: CMP_CMOV(uload8,OTHER_OPERAND(riv,any))
6836 rchild.getOpcode() == OTHER_OPERAND_opcode
6837 ) {
6838 c = STATE(lchild).cost_uload8 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_any + (15 + 30);
6839 if (c < p.cost_r) {
6840 p.cost_r = (char)(c);
6841 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2300; // p.r = 35
6842 closure_r(p, c);
6843 }
6844 }
6845 if ( // r: CMP_CMOV(riv,OTHER_OPERAND(uload8,any))
6846 rchild.getOpcode() == OTHER_OPERAND_opcode
6847 ) {
6848 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_uload8 + STATE(rchild.child2).cost_any + (15 + 30);
6849 if (c < p.cost_r) {
6850 p.cost_r = (char)(c);
6851 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2400; // p.r = 36
6852 closure_r(p, c);
6853 }
6854 }
6855 if ( // r: CMP_CMOV(sload16,OTHER_OPERAND(INT_CONSTANT,any))
6856 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6857 rchild.child1.getOpcode() == INT_CONSTANT_opcode
6858 ) {
6859 c = STATE(lchild).cost_sload16 + STATE(rchild.child2).cost_any + FITS(CondMove.getVal2(P(p)), 8, (15 + 30));
6860 if (c < p.cost_r) {
6861 p.cost_r = (char)(c);
6862 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2500; // p.r = 37
6863 closure_r(p, c);
6864 }
6865 }
6866 if ( // r: CMP_CMOV(load32,OTHER_OPERAND(riv,any))
6867 rchild.getOpcode() == OTHER_OPERAND_opcode
6868 ) {
6869 c = STATE(lchild).cost_load32 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_any + (15 + 30);
6870 if (c < p.cost_r) {
6871 p.cost_r = (char)(c);
6872 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2600; // p.r = 38
6873 closure_r(p, c);
6874 }
6875 }
6876 if ( // r: CMP_CMOV(riv,OTHER_OPERAND(load32,any))
6877 rchild.getOpcode() == OTHER_OPERAND_opcode
6878 ) {
6879 c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_load32 + STATE(rchild.child2).cost_any + (15 + 30);
6880 if (c < p.cost_r) {
6881 p.cost_r = (char)(c);
6882 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2700; // p.r = 39
6883 closure_r(p, c);
6884 }
6885 }
6886 if ( // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
6887 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6888 rchild.child1.getOpcode() == INT_CONSTANT_opcode
6889 ) {
6890 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);
6891 if (c < p.cost_r) {
6892 p.cost_r = (char)(c);
6893 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2800; // p.r = 40
6894 closure_r(p, c);
6895 }
6896 }
6897 if ( // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
6898 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6899 rchild.child1.getOpcode() == INT_CONSTANT_opcode
6900 ) {
6901 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);
6902 if (c < p.cost_r) {
6903 p.cost_r = (char)(c);
6904 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2900; // p.r = 41
6905 closure_r(p, c);
6906 }
6907 }
6908 if ( // r: CMP_CMOV(bittest,OTHER_OPERAND(INT_CONSTANT,any))
6909 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6910 rchild.child1.getOpcode() == INT_CONSTANT_opcode
6911 ) {
6912 c = STATE(lchild).cost_bittest + STATE(rchild.child2).cost_any + ((VRL(p) == 0 || VRL(p) == 1) && EQ_NE(CondMove.getCond(P(p))) ? 30 : INFINITE);
6913 if (c < p.cost_r) {
6914 p.cost_r = (char)(c);
6915 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2A00; // p.r = 42
6916 closure_r(p, c);
6917 }
6918 }
6919 if ( // r: CMP_CMOV(cz,OTHER_OPERAND(INT_CONSTANT,any))
6920 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6921 rchild.child1.getOpcode() == INT_CONSTANT_opcode
6922 ) {
6923 c = STATE(lchild).cost_cz + STATE(rchild.child2).cost_any + isZERO(VRL(p), 30);
6924 if (c < p.cost_r) {
6925 p.cost_r = (char)(c);
6926 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2B00; // p.r = 43
6927 closure_r(p, c);
6928 }
6929 }
6930 if ( // r: CMP_CMOV(szp,OTHER_OPERAND(INT_CONSTANT,any))
6931 rchild.getOpcode() == OTHER_OPERAND_opcode &&
6932 rchild.child1.getOpcode() == INT_CONSTANT_opcode
6933 ) {
6934 c = STATE(lchild).cost_szp + STATE(rchild.child2).cost_any + isZERO(VRL(p), 30);
6935 if (c < p.cost_r) {
6936 p.cost_r = (char)(c);
6937 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2C00; // p.r = 44
6938 closure_r(p, c);
6939 }
6940 }
6941 }
6942
6943 private void label_FCMP_CMOV(BURS_TreeNode p) {
6944 p.word0 = 0;
6945 p.initCost();
6946 BURS_TreeNode lchild, rchild;
6947 lchild = p.child1;
6948 rchild = p.child2;
6949 label(lchild);
6950 label(rchild);
6951 int c;
6952 if ( // r: FCMP_CMOV(r,OTHER_OPERAND(r,any))
6953 rchild.getOpcode() == OTHER_OPERAND_opcode
6954 ) {
6955 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2).cost_any + 13*2;
6956 if (c < p.cost_r) {
6957 p.cost_r = (char)(c);
6958 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCB00; // p.r = 203
6959 closure_r(p, c);
6960 }
6961 }
6962 if ( // r: FCMP_CMOV(r,OTHER_OPERAND(float_load,any))
6963 rchild.getOpcode() == OTHER_OPERAND_opcode
6964 ) {
6965 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_float_load + STATE(rchild.child2).cost_any + 13+15;
6966 if (c < p.cost_r) {
6967 p.cost_r = (char)(c);
6968 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCC00; // p.r = 204
6969 closure_r(p, c);
6970 }
6971 }
6972 if ( // r: FCMP_CMOV(r,OTHER_OPERAND(double_load,any))
6973 rchild.getOpcode() == OTHER_OPERAND_opcode
6974 ) {
6975 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_double_load + STATE(rchild.child2).cost_any + 13+15;
6976 if (c < p.cost_r) {
6977 p.cost_r = (char)(c);
6978 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCD00; // p.r = 205
6979 closure_r(p, c);
6980 }
6981 }
6982 if ( // r: FCMP_CMOV(float_load,OTHER_OPERAND(r,any))
6983 rchild.getOpcode() == OTHER_OPERAND_opcode
6984 ) {
6985 c = STATE(lchild).cost_float_load + STATE(rchild.child1).cost_r + STATE(rchild.child2).cost_any + 13+15;
6986 if (c < p.cost_r) {
6987 p.cost_r = (char)(c);
6988 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCE00; // p.r = 206
6989 closure_r(p, c);
6990 }
6991 }
6992 if ( // r: FCMP_CMOV(double_load,OTHER_OPERAND(r,any))
6993 rchild.getOpcode() == OTHER_OPERAND_opcode
6994 ) {
6995 c = STATE(lchild).cost_double_load + STATE(rchild.child1).cost_r + STATE(rchild.child2).cost_any + 13+15;
6996 if (c < p.cost_r) {
6997 p.cost_r = (char)(c);
6998 p.word0 = (p.word0 & 0xFFFF00FF) | 0xCF00; // p.r = 207
6999 closure_r(p, c);
7000 }
7001 }
7002 }
7003
7004 private void label_LCMP_CMOV(BURS_TreeNode p) {
7005 p.word0 = 0;
7006 p.initCost();
7007 BURS_TreeNode lchild, rchild;
7008 lchild = p.child1;
7009 rchild = p.child2;
7010 label(lchild);
7011 label(rchild);
7012 int c;
7013 if ( // r: LCMP_CMOV(r,OTHER_OPERAND(rlv,any))
7014 rchild.getOpcode() == OTHER_OPERAND_opcode
7015 ) {
7016 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_rlv + STATE(rchild.child2).cost_any + (8*13 + 30);
7017 if (c < p.cost_r) {
7018 p.cost_r = (char)(c);
7019 p.word0 = (p.word0 & 0xFFFF00FF) | 0x2D00; // p.r = 45
7020 closure_r(p, c);
7021 }
7022 }
7023 }
7024
7025 private void label_FCMP_FCMOV(BURS_TreeNode p) {
7026 p.word0 = 0;
7027 p.initCost();
7028 BURS_TreeNode lchild, rchild;
7029 lchild = p.child1;
7030 rchild = p.child2;
7031 label(lchild);
7032 label(rchild);
7033 int c;
7034 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(r,any))
7035 rchild.getOpcode() == OTHER_OPERAND_opcode
7036 ) {
7037 c = STATE(lchild).cost_r + STATE(rchild.child1).cost_r + STATE(rchild.child2).cost_any + 13*4;
7038 if (c < p.cost_r) {
7039 p.cost_r = (char)(c);
7040 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD000; // p.r = 208
7041 closure_r(p, c);
7042 }
7043 }
7044 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,float_load)))
7045 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7046 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
7047 ) {
7048 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;
7049 if (c < p.cost_r) {
7050 p.cost_r = (char)(c);
7051 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD100; // p.r = 209
7052 closure_r(p, c);
7053 }
7054 }
7055 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,double_load)))
7056 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7057 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
7058 ) {
7059 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;
7060 if (c < p.cost_r) {
7061 p.cost_r = (char)(c);
7062 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD200; // p.r = 210
7063 closure_r(p, c);
7064 }
7065 }
7066 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(float_load,r)))
7067 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7068 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
7069 ) {
7070 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;
7071 if (c < p.cost_r) {
7072 p.cost_r = (char)(c);
7073 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD300; // p.r = 211
7074 closure_r(p, c);
7075 }
7076 }
7077 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(double_load,r)))
7078 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7079 rchild.child2.getOpcode() == OTHER_OPERAND_opcode
7080 ) {
7081 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;
7082 if (c < p.cost_r) {
7083 p.cost_r = (char)(c);
7084 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD400; // p.r = 212
7085 closure_r(p, c);
7086 }
7087 }
7088 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(float_load,any))
7089 rchild.getOpcode() == OTHER_OPERAND_opcode
7090 ) {
7091 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);
7092 if (c < p.cost_r) {
7093 p.cost_r = (char)(c);
7094 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD500; // p.r = 213
7095 closure_r(p, c);
7096 }
7097 }
7098 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(double_load,any))
7099 rchild.getOpcode() == OTHER_OPERAND_opcode
7100 ) {
7101 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);
7102 if (c < p.cost_r) {
7103 p.cost_r = (char)(c);
7104 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD600; // p.r = 214
7105 closure_r(p, c);
7106 }
7107 }
7108 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,FLOAT_NEG(r))))
7109 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7110 rchild.child1.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode &&
7111 rchild.child1.child1.getOpcode() == INT_CONSTANT_opcode &&
7112 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
7113 rchild.child2.child2.getOpcode() == FLOAT_NEG_opcode
7114 ) {
7115 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 );
7116 if (c < p.cost_r) {
7117 p.cost_r = (char)(c);
7118 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD700; // p.r = 215
7119 closure_r(p, c);
7120 }
7121 }
7122 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(FLOAT_NEG(r),r)))
7123 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7124 rchild.child1.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode &&
7125 rchild.child1.child1.getOpcode() == INT_CONSTANT_opcode &&
7126 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
7127 rchild.child2.child1.getOpcode() == FLOAT_NEG_opcode
7128 ) {
7129 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 );
7130 if (c < p.cost_r) {
7131 p.cost_r = (char)(c);
7132 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD800; // p.r = 216
7133 closure_r(p, c);
7134 }
7135 }
7136 if ( // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(FLOAT_NEG(r),r)))
7137 lchild.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode &&
7138 lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
7139 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7140 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
7141 rchild.child2.child1.getOpcode() == FLOAT_NEG_opcode
7142 ) {
7143 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 );
7144 if (c < p.cost_r) {
7145 p.cost_r = (char)(c);
7146 p.word0 = (p.word0 & 0xFFFF00FF) | 0xD900; // p.r = 217
7147 closure_r(p, c);
7148 }
7149 }
7150 if ( // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,FLOAT_NEG(r))))
7151 lchild.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode &&
7152 lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
7153 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7154 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
7155 rchild.child2.child2.getOpcode() == FLOAT_NEG_opcode
7156 ) {
7157 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 );
7158 if (c < p.cost_r) {
7159 p.cost_r = (char)(c);
7160 p.word0 = (p.word0 & 0xFFFF00FF) | 0xDA00; // p.r = 218
7161 closure_r(p, c);
7162 }
7163 }
7164 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,DOUBLE_NEG(r))))
7165 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7166 rchild.child1.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode &&
7167 rchild.child1.child1.getOpcode() == INT_CONSTANT_opcode &&
7168 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
7169 rchild.child2.child2.getOpcode() == DOUBLE_NEG_opcode
7170 ) {
7171 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 );
7172 if (c < p.cost_r) {
7173 p.cost_r = (char)(c);
7174 p.word0 = (p.word0 & 0xFFFF00FF) | 0xDB00; // p.r = 219
7175 closure_r(p, c);
7176 }
7177 }
7178 if ( // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(DOUBLE_NEG(r),r)))
7179 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7180 rchild.child1.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode &&
7181 rchild.child1.child1.getOpcode() == INT_CONSTANT_opcode &&
7182 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
7183 rchild.child2.child1.getOpcode() == DOUBLE_NEG_opcode
7184 ) {
7185 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 );
7186 if (c < p.cost_r) {
7187 p.cost_r = (char)(c);
7188 p.word0 = (p.word0 & 0xFFFF00FF) | 0xDC00; // p.r = 220
7189 closure_r(p, c);
7190 }
7191 }
7192 if ( // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(DOUBLE_NEG(r),r)))
7193 lchild.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode &&
7194 lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
7195 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7196 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
7197 rchild.child2.child1.getOpcode() == DOUBLE_NEG_opcode
7198 ) {
7199 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 );
7200 if (c < p.cost_r) {
7201 p.cost_r = (char)(c);
7202 p.word0 = (p.word0 & 0xFFFF00FF) | 0xDD00; // p.r = 221
7203 closure_r(p, c);
7204 }
7205 }
7206 if ( // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,DOUBLE_NEG(r))))
7207 lchild.getOpcode() == MATERIALIZE_FP_CONSTANT_opcode &&
7208 lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
7209 rchild.getOpcode() == OTHER_OPERAND_opcode &&
7210 rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
7211 rchild.child2.child2.getOpcode() == DOUBLE_NEG_opcode
7212 ) {
7213 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 );
7214 if (c < p.cost_r) {
7215 p.cost_r = (char)(c);
7216 p.word0 = (p.word0 & 0xFFFF00FF) | 0xDE00; // p.r = 222
7217 closure_r(p, c);
7218 }
7219 }
7220 }
7221
7222 public void label(BURS_TreeNode p) {
7223 p.initCost();
7224 switch (p.getOpcode()) {
7225 case GET_CAUGHT_EXCEPTION_opcode: label_GET_CAUGHT_EXCEPTION(p); break;
7226 case SET_CAUGHT_EXCEPTION_opcode: label_SET_CAUGHT_EXCEPTION(p); break;
7227 case IG_PATCH_POINT_opcode: label_IG_PATCH_POINT(p); break;
7228 case INT_ALOAD_opcode: label_INT_ALOAD(p); break;
7229 case LONG_ALOAD_opcode: label_LONG_ALOAD(p); break;
7230 case FLOAT_ALOAD_opcode: label_FLOAT_ALOAD(p); break;
7231 case DOUBLE_ALOAD_opcode: label_DOUBLE_ALOAD(p); break;
7232 case UBYTE_ALOAD_opcode: label_UBYTE_ALOAD(p); break;
7233 case BYTE_ALOAD_opcode: label_BYTE_ALOAD(p); break;
7234 case USHORT_ALOAD_opcode: label_USHORT_ALOAD(p); break;
7235 case SHORT_ALOAD_opcode: label_SHORT_ALOAD(p); break;
7236 case INT_ASTORE_opcode: label_INT_ASTORE(p); break;
7237 case LONG_ASTORE_opcode: label_LONG_ASTORE(p); break;
7238 case FLOAT_ASTORE_opcode: label_FLOAT_ASTORE(p); break;
7239 case DOUBLE_ASTORE_opcode: label_DOUBLE_ASTORE(p); break;
7240 case BYTE_ASTORE_opcode: label_BYTE_ASTORE(p); break;
7241 case SHORT_ASTORE_opcode: label_SHORT_ASTORE(p); break;
7242 case INT_IFCMP_opcode: label_INT_IFCMP(p); break;
7243 case INT_IFCMP2_opcode: label_INT_IFCMP2(p); break;
7244 case LONG_IFCMP_opcode: label_LONG_IFCMP(p); break;
7245 case FLOAT_IFCMP_opcode: label_FLOAT_IFCMP(p); break;
7246 case DOUBLE_IFCMP_opcode: label_DOUBLE_IFCMP(p); break;
7247 case UNINT_BEGIN_opcode: label_UNINT_BEGIN(p); break;
7248 case UNINT_END_opcode: label_UNINT_END(p); break;
7249 case READ_CEILING_opcode: label_READ_CEILING(p); break;
7250 case WRITE_FLOOR_opcode: label_WRITE_FLOOR(p); break;
7251 case NOP_opcode: label_NOP(p); break;
7252 case INT_MOVE_opcode: label_INT_MOVE(p); break;
7253 case LONG_MOVE_opcode: label_LONG_MOVE(p); break;
7254 case FLOAT_MOVE_opcode: label_FLOAT_MOVE(p); break;
7255 case DOUBLE_MOVE_opcode: label_DOUBLE_MOVE(p); break;
7256 case GUARD_MOVE_opcode: label_GUARD_MOVE(p); break;
7257 case GUARD_COMBINE_opcode: label_GUARD_COMBINE(p); break;
7258 case INT_ADD_opcode: label_INT_ADD(p); break;
7259 case LONG_ADD_opcode: label_LONG_ADD(p); break;
7260 case FLOAT_ADD_opcode: label_FLOAT_ADD(p); break;
7261 case DOUBLE_ADD_opcode: label_DOUBLE_ADD(p); break;
7262 case INT_SUB_opcode: label_INT_SUB(p); break;
7263 case LONG_SUB_opcode: label_LONG_SUB(p); break;
7264 case FLOAT_SUB_opcode: label_FLOAT_SUB(p); break;
7265 case DOUBLE_SUB_opcode: label_DOUBLE_SUB(p); break;
7266 case INT_MUL_opcode: label_INT_MUL(p); break;
7267 case LONG_MUL_opcode: label_LONG_MUL(p); break;
7268 case FLOAT_MUL_opcode: label_FLOAT_MUL(p); break;
7269 case DOUBLE_MUL_opcode: label_DOUBLE_MUL(p); break;
7270 case INT_DIV_opcode: label_INT_DIV(p); break;
7271 case FLOAT_DIV_opcode: label_FLOAT_DIV(p); break;
7272 case DOUBLE_DIV_opcode: label_DOUBLE_DIV(p); break;
7273 case INT_REM_opcode: label_INT_REM(p); break;
7274 case FLOAT_REM_opcode: label_FLOAT_REM(p); break;
7275 case DOUBLE_REM_opcode: label_DOUBLE_REM(p); break;
7276 case INT_NEG_opcode: label_INT_NEG(p); break;
7277 case LONG_NEG_opcode: label_LONG_NEG(p); break;
7278 case FLOAT_NEG_opcode: label_FLOAT_NEG(p); break;
7279 case DOUBLE_NEG_opcode: label_DOUBLE_NEG(p); break;
7280 case FLOAT_SQRT_opcode: label_FLOAT_SQRT(p); break;
7281 case DOUBLE_SQRT_opcode: label_DOUBLE_SQRT(p); break;
7282 case INT_SHL_opcode: label_INT_SHL(p); break;
7283 case LONG_SHL_opcode: label_LONG_SHL(p); break;
7284 case INT_SHR_opcode: label_INT_SHR(p); break;
7285 case LONG_SHR_opcode: label_LONG_SHR(p); break;
7286 case INT_USHR_opcode: label_INT_USHR(p); break;
7287 case LONG_USHR_opcode: label_LONG_USHR(p); break;
7288 case INT_AND_opcode: label_INT_AND(p); break;
7289 case LONG_AND_opcode: label_LONG_AND(p); break;
7290 case INT_OR_opcode: label_INT_OR(p); break;
7291 case LONG_OR_opcode: label_LONG_OR(p); break;
7292 case INT_XOR_opcode: label_INT_XOR(p); break;
7293 case INT_NOT_opcode: label_INT_NOT(p); break;
7294 case LONG_NOT_opcode: label_LONG_NOT(p); break;
7295 case LONG_XOR_opcode: label_LONG_XOR(p); break;
7296 case ADDR_2LONG_opcode: label_ADDR_2LONG(p); break;
7297 case INT_2LONG_opcode: label_INT_2LONG(p); break;
7298 case INT_2FLOAT_opcode: label_INT_2FLOAT(p); break;
7299 case INT_2DOUBLE_opcode: label_INT_2DOUBLE(p); break;
7300 case LONG_2INT_opcode: label_LONG_2INT(p); break;
7301 case LONG_2FLOAT_opcode: label_LONG_2FLOAT(p); break;
7302 case LONG_2DOUBLE_opcode: label_LONG_2DOUBLE(p); break;
7303 case FLOAT_2INT_opcode: label_FLOAT_2INT(p); break;
7304 case FLOAT_2LONG_opcode: label_FLOAT_2LONG(p); break;
7305 case FLOAT_2DOUBLE_opcode: label_FLOAT_2DOUBLE(p); break;
7306 case DOUBLE_2INT_opcode: label_DOUBLE_2INT(p); break;
7307 case DOUBLE_2LONG_opcode: label_DOUBLE_2LONG(p); break;
7308 case DOUBLE_2FLOAT_opcode: label_DOUBLE_2FLOAT(p); break;
7309 case INT_2BYTE_opcode: label_INT_2BYTE(p); break;
7310 case INT_2USHORT_opcode: label_INT_2USHORT(p); break;
7311 case INT_2SHORT_opcode: label_INT_2SHORT(p); break;
7312 case LONG_CMP_opcode: label_LONG_CMP(p); break;
7313 case RETURN_opcode: label_RETURN(p); break;
7314 case NULL_CHECK_opcode: label_NULL_CHECK(p); break;
7315 case GOTO_opcode: label_GOTO(p); break;
7316 case BOOLEAN_NOT_opcode: label_BOOLEAN_NOT(p); break;
7317 case BOOLEAN_CMP_INT_opcode: label_BOOLEAN_CMP_INT(p); break;
7318 case BOOLEAN_CMP_LONG_opcode: label_BOOLEAN_CMP_LONG(p); break;
7319 case BYTE_LOAD_opcode: label_BYTE_LOAD(p); break;
7320 case UBYTE_LOAD_opcode: label_UBYTE_LOAD(p); break;
7321 case SHORT_LOAD_opcode: label_SHORT_LOAD(p); break;
7322 case USHORT_LOAD_opcode: label_USHORT_LOAD(p); break;
7323 case INT_LOAD_opcode: label_INT_LOAD(p); break;
7324 case LONG_LOAD_opcode: label_LONG_LOAD(p); break;
7325 case FLOAT_LOAD_opcode: label_FLOAT_LOAD(p); break;
7326 case DOUBLE_LOAD_opcode: label_DOUBLE_LOAD(p); break;
7327 case BYTE_STORE_opcode: label_BYTE_STORE(p); break;
7328 case SHORT_STORE_opcode: label_SHORT_STORE(p); break;
7329 case INT_STORE_opcode: label_INT_STORE(p); break;
7330 case LONG_STORE_opcode: label_LONG_STORE(p); break;
7331 case FLOAT_STORE_opcode: label_FLOAT_STORE(p); break;
7332 case DOUBLE_STORE_opcode: label_DOUBLE_STORE(p); break;
7333 case PREPARE_INT_opcode: label_PREPARE_INT(p); break;
7334 case PREPARE_LONG_opcode: label_PREPARE_LONG(p); break;
7335 case ATTEMPT_INT_opcode: label_ATTEMPT_INT(p); break;
7336 case ATTEMPT_LONG_opcode: label_ATTEMPT_LONG(p); break;
7337 case CALL_opcode: label_CALL(p); break;
7338 case SYSCALL_opcode: label_SYSCALL(p); break;
7339 case YIELDPOINT_PROLOGUE_opcode: label_YIELDPOINT_PROLOGUE(p); break;
7340 case YIELDPOINT_EPILOGUE_opcode: label_YIELDPOINT_EPILOGUE(p); break;
7341 case YIELDPOINT_BACKEDGE_opcode: label_YIELDPOINT_BACKEDGE(p); break;
7342 case YIELDPOINT_OSR_opcode: label_YIELDPOINT_OSR(p); break;
7343 case IR_PROLOGUE_opcode: label_IR_PROLOGUE(p); break;
7344 case RESOLVE_opcode: label_RESOLVE(p); break;
7345 case GET_TIME_BASE_opcode: label_GET_TIME_BASE(p); break;
7346 case TRAP_IF_opcode: label_TRAP_IF(p); break;
7347 case TRAP_opcode: label_TRAP(p); break;
7348 case FLOAT_AS_INT_BITS_opcode: label_FLOAT_AS_INT_BITS(p); break;
7349 case INT_BITS_AS_FLOAT_opcode: label_INT_BITS_AS_FLOAT(p); break;
7350 case DOUBLE_AS_LONG_BITS_opcode: label_DOUBLE_AS_LONG_BITS(p); break;
7351 case LONG_BITS_AS_DOUBLE_opcode: label_LONG_BITS_AS_DOUBLE(p); break;
7352 case LOWTABLESWITCH_opcode: label_LOWTABLESWITCH(p); break;
7353 case ADDRESS_CONSTANT_opcode: label_ADDRESS_CONSTANT(p); break;
7354 case INT_CONSTANT_opcode: label_INT_CONSTANT(p); break;
7355 case LONG_CONSTANT_opcode: label_LONG_CONSTANT(p); break;
7356 case REGISTER_opcode: label_REGISTER(p); break;
7357 case OTHER_OPERAND_opcode: label_OTHER_OPERAND(p); break;
7358 case NULL_opcode: label_NULL(p); break;
7359 case BRANCH_TARGET_opcode: label_BRANCH_TARGET(p); break;
7360 case MATERIALIZE_FP_CONSTANT_opcode: label_MATERIALIZE_FP_CONSTANT(p); break;
7361 case GET_CURRENT_PROCESSOR_opcode: label_GET_CURRENT_PROCESSOR(p); break;
7362 case CLEAR_FLOATING_POINT_STATE_opcode: label_CLEAR_FLOATING_POINT_STATE(p); break;
7363 case PREFETCH_opcode: label_PREFETCH(p); break;
7364 case PAUSE_opcode: label_PAUSE(p); break;
7365 case CMP_CMOV_opcode: label_CMP_CMOV(p); break;
7366 case FCMP_CMOV_opcode: label_FCMP_CMOV(p); break;
7367 case LCMP_CMOV_opcode: label_LCMP_CMOV(p); break;
7368 case FCMP_FCMOV_opcode: label_FCMP_FCMOV(p); break;
7369 default:
7370 throw new OptimizingCompilerException("BURS","terminal not in grammar:",OperatorNames.operatorName[p.getOpcode()]); }
7371 }
7372
7373 static BURS_TreeNode kids(BURS_TreeNode p, int eruleno, int kidnumber) {
7374 if (BURS.DEBUG) {
7375 switch (eruleno) {
7376 case 37: // address: address1scaledreg
7377 case 36: // address1scaledreg: address1reg
7378 case 33: // load8_16_32: load8
7379 case 32: // load8_16_32: load16_32
7380 case 31: // load16_32: load32
7381 case 30: // load16_32: load16
7382 case 27: // load16: uload16
7383 case 26: // load16: sload16
7384 case 21: // load8: uload8
7385 case 20: // load8: sload8
7386 case 12: // any: riv
7387 case 9: // rlv: r
7388 case 7: // riv: r
7389 case 6: // szp: szpr
7390 case 5: // r: szpr
7391 case 4: // cz: czr
7392 case 3: // r: czr
7393 case 1: // stm: r
7394 if (kidnumber == 0) return p;
7395 break;
7396 case 456: // stm: CLEAR_FLOATING_POINT_STATE
7397 case 455: // double_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
7398 case 454: // float_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
7399 case 453: // r: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
7400 case 379: // r: GET_TIME_BASE
7401 case 371: // stm: RETURN(LONG_CONSTANT)
7402 case 369: // stm: RETURN(INT_CONSTANT)
7403 case 368: // stm: RETURN(NULL)
7404 case 367: // stm: PAUSE
7405 case 366: // stm: READ_CEILING
7406 case 365: // stm: WRITE_FLOOR
7407 case 363: // stm: GOTO
7408 case 270: // r: GET_CURRENT_PROCESSOR
7409 case 269: // r: LONG_MOVE(LONG_CONSTANT)
7410 case 70: // stm: TRAP
7411 case 68: // r: GET_CAUGHT_EXCEPTION
7412 case 67: // stm: IR_PROLOGUE
7413 case 65: // r: GUARD_COMBINE
7414 case 64: // r: GUARD_MOVE
7415 case 63: // stm: NOP
7416 case 62: // stm: RESOLVE
7417 case 60: // stm: YIELDPOINT_BACKEDGE
7418 case 59: // stm: YIELDPOINT_EPILOGUE
7419 case 58: // stm: YIELDPOINT_PROLOGUE
7420 case 57: // stm: UNINT_END
7421 case 56: // stm: UNINT_BEGIN
7422 case 55: // stm: IG_PATCH_POINT
7423 case 14: // any: LONG_CONSTANT
7424 case 13: // any: ADDRESS_CONSTANT
7425 case 11: // any: NULL
7426 case 10: // rlv: LONG_CONSTANT
7427 case 8: // riv: INT_CONSTANT
7428 case 2: // r: REGISTER
7429 break;
7430 case 462: // stm: DOUBLE_IFCMP(double_load,r)
7431 case 461: // stm: DOUBLE_IFCMP(r,double_load)
7432 case 460: // stm: DOUBLE_IFCMP(r,r)
7433 case 459: // stm: FLOAT_IFCMP(float_load,r)
7434 case 458: // stm: FLOAT_IFCMP(r,float_load)
7435 case 457: // stm: FLOAT_IFCMP(r,r)
7436 case 428: // float_load: FLOAT_ALOAD(riv,riv)
7437 case 427: // r: FLOAT_ALOAD(riv,riv)
7438 case 426: // float_load: FLOAT_LOAD(riv,riv)
7439 case 425: // r: FLOAT_LOAD(riv,riv)
7440 case 424: // double_load: DOUBLE_ALOAD(riv,riv)
7441 case 423: // r: DOUBLE_ALOAD(riv,riv)
7442 case 422: // double_load: DOUBLE_LOAD(riv,riv)
7443 case 421: // r: DOUBLE_LOAD(riv,riv)
7444 case 416: // r: DOUBLE_REM(r,r)
7445 case 415: // r: FLOAT_REM(r,r)
7446 case 410: // r: DOUBLE_DIV(r,double_load)
7447 case 409: // r: DOUBLE_DIV(r,r)
7448 case 408: // r: FLOAT_DIV(r,float_load)
7449 case 407: // r: FLOAT_DIV(r,r)
7450 case 406: // r: DOUBLE_MUL(double_load,r)
7451 case 405: // r: DOUBLE_MUL(r,double_load)
7452 case 404: // r: DOUBLE_MUL(r,r)
7453 case 403: // r: FLOAT_MUL(float_load,r)
7454 case 402: // r: FLOAT_MUL(r,float_load)
7455 case 401: // r: FLOAT_MUL(r,r)
7456 case 400: // r: DOUBLE_SUB(r,double_load)
7457 case 399: // r: DOUBLE_SUB(r,r)
7458 case 398: // r: FLOAT_SUB(r,float_load)
7459 case 397: // r: FLOAT_SUB(r,r)
7460 case 396: // r: DOUBLE_ADD(double_load,r)
7461 case 395: // r: DOUBLE_ADD(r,double_load)
7462 case 394: // r: DOUBLE_ADD(r,r)
7463 case 393: // r: FLOAT_ADD(float_load,r)
7464 case 392: // r: FLOAT_ADD(r,float_load)
7465 case 391: // r: FLOAT_ADD(r,r)
7466 case 380: // stm: YIELDPOINT_OSR(any,any)
7467 case 376: // r: SYSCALL(r,any)
7468 case 372: // r: CALL(r,any)
7469 case 362: // r: LONG_CMP(rlv,rlv)
7470 case 361: // stm: LONG_IFCMP(rlv,rlv)
7471 case 360: // stm: INT_IFCMP2(riv,load32)
7472 case 359: // stm: INT_IFCMP2(load32,riv)
7473 case 358: // stm: INT_IFCMP2(r,riv)
7474 case 352: // stm: INT_IFCMP(r,load32)
7475 case 351: // stm: INT_IFCMP(load32,riv)
7476 case 349: // stm: INT_IFCMP(r,uload8)
7477 case 348: // stm: INT_IFCMP(uload8,r)
7478 case 345: // stm: INT_IFCMP(r,riv)
7479 case 303: // r: PREPARE_LONG(riv,riv)
7480 case 300: // r: PREPARE_INT(address1reg,address1scaledreg)
7481 case 299: // r: PREPARE_INT(address1scaledreg,address1reg)
7482 case 298: // r: PREPARE_INT(address1scaledreg,r)
7483 case 297: // r: PREPARE_INT(r,address1scaledreg)
7484 case 296: // r: PREPARE_INT(riv,riv)
7485 case 295: // r: LONG_ALOAD(riv,riv)
7486 case 294: // r: LONG_LOAD(riv,riv)
7487 case 293: // r: INT_ALOAD(riv,riv)
7488 case 291: // r: INT_LOAD(address1reg,address1scaledreg)
7489 case 290: // r: INT_LOAD(address1scaledreg,address1reg)
7490 case 289: // r: INT_LOAD(address1scaledreg,riv)
7491 case 288: // r: INT_LOAD(riv,address1scaledreg)
7492 case 287: // r: INT_LOAD(riv,riv)
7493 case 282: // r: USHORT_ALOAD(riv,riv)
7494 case 281: // r: USHORT_LOAD(riv,riv)
7495 case 280: // r: SHORT_ALOAD(riv,riv)
7496 case 279: // r: SHORT_LOAD(riv,riv)
7497 case 274: // r: UBYTE_ALOAD(riv,riv)
7498 case 273: // r: UBYTE_LOAD(riv,riv)
7499 case 272: // r: BYTE_ALOAD(riv,riv)
7500 case 271: // r: BYTE_LOAD(riv,riv)
7501 case 220: // r: LONG_XOR(r,rlv)
7502 case 219: // r: LONG_OR(rlv,rlv)
7503 case 218: // r: LONG_AND(rlv,rlv)
7504 case 216: // r: LONG_USHR(rlv,riv)
7505 case 214: // r: LONG_SHR(rlv,riv)
7506 case 212: // r: LONG_SHL(rlv,riv)
7507 case 210: // r: LONG_MUL(rlv,rlv)
7508 case 209: // r: LONG_SUB(rlv,rlv)
7509 case 208: // r: LONG_ADD(r,rlv)
7510 case 200: // szpr: INT_XOR(load32,riv)
7511 case 199: // szpr: INT_XOR(riv,load32)
7512 case 198: // szpr: INT_XOR(riv,riv)
7513 case 193: // szpr: INT_OR(load32,riv)
7514 case 192: // szpr: INT_OR(riv,load32)
7515 case 191: // szpr: INT_OR(riv,riv)
7516 case 186: // szp: INT_AND(riv,load8_16_32)
7517 case 185: // szp: INT_AND(load8_16_32,riv)
7518 case 184: // szpr: INT_AND(load32,riv)
7519 case 183: // szpr: INT_AND(riv,load32)
7520 case 182: // szp: INT_AND(r,riv)
7521 case 181: // szpr: INT_AND(riv,riv)
7522 case 167: // szpr: INT_USHR(riv,riv)
7523 case 160: // szpr: INT_SHR(riv,riv)
7524 case 151: // szpr: INT_SHL(riv,riv)
7525 case 146: // r: INT_REM(riv,load32)
7526 case 145: // r: INT_REM(riv,riv)
7527 case 144: // r: INT_DIV(riv,load32)
7528 case 143: // r: INT_DIV(riv,riv)
7529 case 142: // r: INT_MUL(load32,riv)
7530 case 141: // r: INT_MUL(riv,load32)
7531 case 140: // r: INT_MUL(riv,riv)
7532 case 135: // czr: INT_SUB(load32,riv)
7533 case 134: // czr: INT_SUB(riv,load32)
7534 case 133: // r: INT_SUB(load32,r)
7535 case 132: // r: INT_SUB(riv,r)
7536 case 131: // czr: INT_SUB(riv,r)
7537 case 126: // czr: INT_ADD(load32,riv)
7538 case 125: // czr: INT_ADD(riv,load32)
7539 case 124: // r: INT_ADD(r,riv)
7540 case 123: // czr: INT_ADD(r,riv)
7541 case 104: // boolcmp: BOOLEAN_CMP_LONG(rlv,rlv)
7542 case 103: // r: BOOLEAN_CMP_LONG(rlv,rlv)
7543 case 100: // boolcmp: BOOLEAN_CMP_INT(riv,load32)
7544 case 99: // r: BOOLEAN_CMP_INT(r,load32)
7545 case 98: // boolcmp: BOOLEAN_CMP_INT(load32,riv)
7546 case 97: // r: BOOLEAN_CMP_INT(load32,riv)
7547 case 80: // boolcmp: BOOLEAN_CMP_INT(r,riv)
7548 case 79: // r: BOOLEAN_CMP_INT(r,riv)
7549 case 75: // stm: TRAP_IF(riv,load32)
7550 case 74: // stm: TRAP_IF(load32,riv)
7551 case 73: // stm: TRAP_IF(r,r)
7552 case 52: // r: INT_ADD(address1reg,address1scaledreg)
7553 case 51: // r: INT_ADD(address1scaledreg,address1reg)
7554 case 50: // r: INT_ADD(r,address1scaledreg)
7555 case 49: // r: INT_ADD(address1scaledreg,r)
7556 case 48: // address: INT_ADD(address1reg,address1scaledreg)
7557 case 47: // address: INT_ADD(address1scaledreg,address1reg)
7558 case 45: // address: INT_ADD(address1scaledreg,r)
7559 case 44: // address: INT_ADD(r,address1scaledreg)
7560 case 41: // address: INT_ADD(r,r)
7561 case 35: // load64: LONG_ALOAD(riv,riv)
7562 case 34: // load64: LONG_LOAD(riv,riv)
7563 case 29: // load32: INT_ALOAD(riv,riv)
7564 case 28: // load32: INT_LOAD(riv,riv)
7565 case 25: // uload16: USHORT_ALOAD(riv,riv)
7566 case 24: // uload16: USHORT_LOAD(riv,riv)
7567 case 23: // sload16: SHORT_ALOAD(riv,riv)
7568 case 22: // sload16: SHORT_LOAD(riv,riv)
7569 case 19: // uload8: UBYTE_ALOAD(riv,riv)
7570 case 18: // uload8: UBYTE_LOAD(riv,riv)
7571 case 17: // sload8: BYTE_ALOAD(riv,riv)
7572 case 16: // sload8: BYTE_LOAD(riv,riv)
7573 case 15: // any: OTHER_OPERAND(any,any)
7574 if (kidnumber == 0) return p.child1;
7575 if (kidnumber == 1) return p.child2;
7576 break;
7577 case 452: // double_load: LONG_BITS_AS_DOUBLE(load64)
7578 case 451: // r: LONG_BITS_AS_DOUBLE(rlv)
7579 case 450: // float_load: INT_BITS_AS_FLOAT(load32)
7580 case 449: // r: INT_BITS_AS_FLOAT(riv)
7581 case 448: // load64: DOUBLE_AS_LONG_BITS(double_load)
7582 case 447: // r: DOUBLE_AS_LONG_BITS(r)
7583 case 446: // load32: FLOAT_AS_INT_BITS(float_load)
7584 case 445: // r: FLOAT_AS_INT_BITS(r)
7585 case 444: // r: DOUBLE_2LONG(r)
7586 case 443: // r: DOUBLE_2INT(r)
7587 case 442: // r: FLOAT_2LONG(r)
7588 case 441: // r: FLOAT_2INT(r)
7589 case 440: // r: DOUBLE_2FLOAT(double_load)
7590 case 439: // r: DOUBLE_2FLOAT(r)
7591 case 438: // r: FLOAT_2DOUBLE(float_load)
7592 case 437: // r: FLOAT_2DOUBLE(r)
7593 case 436: // r: INT_2DOUBLE(load32)
7594 case 435: // r: INT_2DOUBLE(riv)
7595 case 434: // r: INT_2FLOAT(load32)
7596 case 433: // r: INT_2FLOAT(riv)
7597 case 420: // r: DOUBLE_MOVE(r)
7598 case 419: // r: FLOAT_MOVE(r)
7599 case 418: // r: LONG_2DOUBLE(r)
7600 case 417: // r: LONG_2FLOAT(r)
7601 case 414: // r: DOUBLE_SQRT(r)
7602 case 413: // r: FLOAT_SQRT(r)
7603 case 412: // r: DOUBLE_NEG(r)
7604 case 411: // r: FLOAT_NEG(r)
7605 case 370: // stm: RETURN(r)
7606 case 364: // stm: PREFETCH(r)
7607 case 357: // stm: INT_IFCMP(bittest,INT_CONSTANT)
7608 case 356: // stm: INT_IFCMP(szp,INT_CONSTANT)
7609 case 355: // stm: INT_IFCMP(cz,INT_CONSTANT)
7610 case 354: // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
7611 case 353: // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
7612 case 350: // stm: INT_IFCMP(sload16,INT_CONSTANT)
7613 case 347: // stm: INT_IFCMP(load8,INT_CONSTANT)
7614 case 346: // stm: INT_IFCMP(r,INT_CONSTANT)
7615 case 301: // r: PREPARE_INT(address,INT_CONSTANT)
7616 case 292: // r: INT_LOAD(address,INT_CONSTANT)
7617 case 285: // r: INT_2USHORT(load16_32)
7618 case 284: // r: INT_2USHORT(load16_32)
7619 case 283: // r: INT_AND(load16_32,INT_CONSTANT)
7620 case 277: // r: INT_2BYTE(load8_16_32)
7621 case 276: // r: INT_AND(load8_16_32,INT_CONSTANT)
7622 case 275: // uload8: INT_AND(load8_16_32,INT_CONSTANT)
7623 case 268: // r: LONG_MOVE(r)
7624 case 267: // load64: LONG_MOVE(load64)
7625 case 266: // load32: INT_MOVE(load32)
7626 case 265: // load16: INT_MOVE(load16)
7627 case 264: // uload16: INT_MOVE(uload16)
7628 case 263: // sload16: INT_MOVE(sload16)
7629 case 262: // load8: INT_MOVE(load8)
7630 case 261: // uload8: INT_MOVE(uload8)
7631 case 260: // sload8: INT_MOVE(sload8)
7632 case 259: // address: INT_MOVE(address)
7633 case 258: // address1scaledreg: INT_MOVE(address1scaledreg)
7634 case 257: // address1reg: INT_MOVE(address1reg)
7635 case 256: // szp: INT_MOVE(szp)
7636 case 255: // szpr: INT_MOVE(szpr)
7637 case 254: // cz: INT_MOVE(cz)
7638 case 253: // czr: INT_MOVE(czr)
7639 case 252: // r: INT_MOVE(riv)
7640 case 245: // r: LONG_2INT(load64)
7641 case 242: // r: LONG_2INT(r)
7642 case 241: // r: ADDR_2LONG(load32)
7643 case 240: // r: ADDR_2LONG(r)
7644 case 235: // r: INT_2LONG(load32)
7645 case 234: // r: INT_2LONG(r)
7646 case 231: // r: INT_2SHORT(load16_32)
7647 case 230: // r: INT_2SHORT(r)
7648 case 227: // r: INT_2USHORT(load16_32)
7649 case 226: // szpr: INT_2USHORT(r)
7650 case 223: // r: INT_2BYTE(load8_16_32)
7651 case 222: // r: INT_2BYTE(r)
7652 case 221: // r: LONG_NOT(r)
7653 case 211: // r: LONG_NEG(r)
7654 case 205: // r: INT_NOT(r)
7655 case 168: // szpr: INT_USHR(riv,INT_CONSTANT)
7656 case 161: // szpr: INT_SHR(riv,INT_CONSTANT)
7657 case 153: // r: INT_SHL(r,INT_CONSTANT)
7658 case 152: // szpr: INT_SHL(r,INT_CONSTANT)
7659 case 147: // szpr: INT_NEG(r)
7660 case 110: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
7661 case 109: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
7662 case 108: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
7663 case 107: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
7664 case 96: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
7665 case 95: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
7666 case 94: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
7667 case 93: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
7668 case 92: // boolcmp: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
7669 case 91: // r: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
7670 case 90: // boolcmp: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
7671 case 89: // r: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
7672 case 88: // boolcmp: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
7673 case 87: // r: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
7674 case 86: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
7675 case 85: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
7676 case 84: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
7677 case 83: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
7678 case 82: // boolcmp: BOOLEAN_CMP_INT(r,INT_CONSTANT)
7679 case 81: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
7680 case 76: // r: BOOLEAN_NOT(r)
7681 case 72: // stm: TRAP_IF(r,LONG_CONSTANT)
7682 case 71: // stm: TRAP_IF(r,INT_CONSTANT)
7683 case 69: // stm: SET_CAUGHT_EXCEPTION(r)
7684 case 66: // stm: NULL_CHECK(riv)
7685 case 61: // stm: LOWTABLESWITCH(r)
7686 case 54: // r: INT_MOVE(address)
7687 case 53: // r: INT_ADD(address,INT_CONSTANT)
7688 case 46: // address: INT_ADD(address1scaledreg,INT_CONSTANT)
7689 case 43: // address1scaledreg: INT_ADD(address1scaledreg,INT_CONSTANT)
7690 case 42: // address1reg: INT_ADD(address1reg,INT_CONSTANT)
7691 case 40: // address1reg: INT_MOVE(r)
7692 case 39: // address1reg: INT_ADD(r,INT_CONSTANT)
7693 case 38: // address1scaledreg: INT_SHL(r,INT_CONSTANT)
7694 if (kidnumber == 0) return p.child1;
7695 break;
7696 case 207: // stm: INT_ASTORE(INT_NOT(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7697 case 206: // stm: INT_STORE(INT_NOT(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7698 case 172: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
7699 case 170: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
7700 case 165: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
7701 case 163: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
7702 case 158: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
7703 case 156: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
7704 case 149: // stm: INT_ASTORE(INT_NEG(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7705 case 148: // stm: INT_STORE(INT_NEG(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7706 case 78: // stm: BYTE_ASTORE(BOOLEAN_NOT(UBYTE_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7707 case 77: // stm: BYTE_STORE(BOOLEAN_NOT(UBYTE_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7708 if (kidnumber == 0) return p.child1.child1.child1;
7709 if (kidnumber == 1) return p.child1.child1.child2;
7710 if (kidnumber == 2) return p.child2.child1;
7711 if (kidnumber == 3) return p.child2.child2;
7712 break;
7713 case 484: // stm: LONG_STORE(load64,OTHER_OPERAND(riv,riv))
7714 case 483: // stm: LONG_ASTORE(load64,OTHER_OPERAND(riv,riv))
7715 case 474: // r: FCMP_FCMOV(r,OTHER_OPERAND(double_load,any))
7716 case 473: // r: FCMP_FCMOV(r,OTHER_OPERAND(float_load,any))
7717 case 468: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,any))
7718 case 467: // r: FCMP_CMOV(double_load,OTHER_OPERAND(r,any))
7719 case 466: // r: FCMP_CMOV(float_load,OTHER_OPERAND(r,any))
7720 case 465: // r: FCMP_CMOV(r,OTHER_OPERAND(double_load,any))
7721 case 464: // r: FCMP_CMOV(r,OTHER_OPERAND(float_load,any))
7722 case 463: // r: FCMP_CMOV(r,OTHER_OPERAND(r,any))
7723 case 432: // stm: FLOAT_ASTORE(r,OTHER_OPERAND(riv,riv))
7724 case 431: // stm: FLOAT_STORE(r,OTHER_OPERAND(riv,riv))
7725 case 430: // stm: DOUBLE_ASTORE(r,OTHER_OPERAND(riv,riv))
7726 case 429: // stm: DOUBLE_STORE(r,OTHER_OPERAND(riv,riv))
7727 case 343: // stm: LONG_ASTORE(r,OTHER_OPERAND(riv,riv))
7728 case 341: // stm: LONG_STORE(r,OTHER_OPERAND(riv,riv))
7729 case 340: // stm: INT_ASTORE(riv,OTHER_OPERAND(riv,riv))
7730 case 338: // stm: INT_STORE(riv,OTHER_OPERAND(address1reg,address1scaledreg))
7731 case 337: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,address1reg))
7732 case 336: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,riv))
7733 case 335: // stm: INT_STORE(riv,OTHER_OPERAND(riv,address1scaledreg))
7734 case 334: // stm: INT_STORE(riv,OTHER_OPERAND(riv,riv))
7735 case 333: // stm: SHORT_ASTORE(load16,OTHER_OPERAND(riv,riv))
7736 case 332: // stm: SHORT_ASTORE(riv,OTHER_OPERAND(riv,riv))
7737 case 331: // stm: SHORT_STORE(load16,OTHER_OPERAND(riv,riv))
7738 case 330: // stm: SHORT_STORE(riv,OTHER_OPERAND(riv,riv))
7739 case 329: // stm: BYTE_ASTORE(load8,OTHER_OPERAND(riv,riv))
7740 case 328: // stm: BYTE_ASTORE(riv,OTHER_OPERAND(riv,riv))
7741 case 327: // stm: BYTE_STORE(load8,OTHER_OPERAND(riv,riv))
7742 case 326: // stm: BYTE_STORE(riv,OTHER_OPERAND(riv,riv))
7743 case 122: // r: LCMP_CMOV(r,OTHER_OPERAND(rlv,any))
7744 case 116: // r: CMP_CMOV(riv,OTHER_OPERAND(load32,any))
7745 case 115: // r: CMP_CMOV(load32,OTHER_OPERAND(riv,any))
7746 case 113: // r: CMP_CMOV(riv,OTHER_OPERAND(uload8,any))
7747 case 112: // r: CMP_CMOV(uload8,OTHER_OPERAND(riv,any))
7748 case 105: // r: CMP_CMOV(r,OTHER_OPERAND(riv,any))
7749 case 102: // stm: BYTE_ASTORE(boolcmp,OTHER_OPERAND(riv,riv))
7750 case 101: // stm: BYTE_STORE(boolcmp,OTHER_OPERAND(riv,riv))
7751 if (kidnumber == 0) return p.child1;
7752 if (kidnumber == 1) return p.child2.child1;
7753 if (kidnumber == 2) return p.child2.child2;
7754 break;
7755 case 121: // r: CMP_CMOV(szp,OTHER_OPERAND(INT_CONSTANT,any))
7756 case 120: // r: CMP_CMOV(cz,OTHER_OPERAND(INT_CONSTANT,any))
7757 case 119: // r: CMP_CMOV(bittest,OTHER_OPERAND(INT_CONSTANT,any))
7758 case 118: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
7759 case 117: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
7760 case 114: // r: CMP_CMOV(sload16,OTHER_OPERAND(INT_CONSTANT,any))
7761 case 111: // r: CMP_CMOV(load8,OTHER_OPERAND(INT_CONSTANT,any))
7762 case 106: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,any))
7763 if (kidnumber == 0) return p.child1;
7764 if (kidnumber == 1) return p.child2.child2;
7765 break;
7766 case 203: // stm: INT_ASTORE(INT_XOR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
7767 case 201: // stm: INT_STORE(INT_XOR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
7768 case 196: // stm: INT_ASTORE(INT_OR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
7769 case 194: // stm: INT_STORE(INT_OR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
7770 case 189: // stm: INT_ASTORE(INT_AND(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
7771 case 187: // stm: INT_STORE(INT_AND(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
7772 case 138: // stm: INT_ASTORE(INT_SUB(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
7773 case 136: // stm: INT_STORE(INT_SUB(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
7774 case 129: // stm: INT_ASTORE(INT_ADD(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
7775 case 127: // stm: INT_STORE(INT_ADD(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
7776 if (kidnumber == 0) return p.child1.child1.child1;
7777 if (kidnumber == 1) return p.child1.child1.child2;
7778 if (kidnumber == 2) return p.child1.child2;
7779 if (kidnumber == 3) return p.child2.child1;
7780 if (kidnumber == 4) return p.child2.child2;
7781 break;
7782 case 204: // stm: INT_ASTORE(INT_XOR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7783 case 202: // stm: INT_STORE(INT_XOR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7784 case 197: // stm: INT_ASTORE(INT_OR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7785 case 195: // stm: INT_STORE(INT_OR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7786 case 190: // stm: INT_ASTORE(INT_AND(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7787 case 188: // stm: INT_STORE(INT_AND(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7788 case 139: // stm: INT_ASTORE(INT_SUB(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7789 case 137: // stm: INT_STORE(INT_SUB(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7790 case 130: // stm: INT_ASTORE(INT_ADD(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7791 case 128: // stm: INT_STORE(INT_ADD(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
7792 if (kidnumber == 0) return p.child1.child1;
7793 if (kidnumber == 1) return p.child1.child2.child1;
7794 if (kidnumber == 2) return p.child1.child2.child2;
7795 if (kidnumber == 3) return p.child2.child1;
7796 if (kidnumber == 4) return p.child2.child2;
7797 break;
7798 case 339: // stm: INT_STORE(riv,OTHER_OPERAND(address,INT_CONSTANT))
7799 case 217: // r: LONG_USHR(rlv,INT_AND(riv,INT_CONSTANT))
7800 case 215: // r: LONG_SHR(rlv,INT_AND(riv,INT_CONSTANT))
7801 case 213: // r: LONG_SHL(rlv,INT_AND(riv,INT_CONSTANT))
7802 case 166: // szpr: INT_USHR(riv,INT_AND(r,INT_CONSTANT))
7803 case 159: // szpr: INT_SHR(riv,INT_AND(r,INT_CONSTANT))
7804 case 150: // szpr: INT_SHL(riv,INT_AND(r,INT_CONSTANT))
7805 if (kidnumber == 0) return p.child1;
7806 if (kidnumber == 1) return p.child2.child1;
7807 break;
7808 case 386: // bittest: INT_AND(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
7809 case 383: // bittest: INT_AND(INT_USHR(r,INT_CONSTANT),INT_CONSTANT)
7810 case 286: // r: INT_USHR(INT_SHL(load16_32,INT_CONSTANT),INT_CONSTANT)
7811 case 278: // r: INT_USHR(INT_SHL(load8_16_32,INT_CONSTANT),INT_CONSTANT)
7812 case 251: // load32: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
7813 case 250: // load32: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
7814 case 249: // r: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
7815 case 248: // r: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
7816 case 247: // r: LONG_2INT(LONG_SHR(r,INT_CONSTANT))
7817 case 246: // r: LONG_2INT(LONG_USHR(r,INT_CONSTANT))
7818 case 239: // r: LONG_SHL(INT_2LONG(load64),INT_CONSTANT)
7819 case 238: // r: LONG_SHL(INT_2LONG(r),INT_CONSTANT)
7820 case 237: // r: LONG_AND(INT_2LONG(load32),LONG_CONSTANT)
7821 case 236: // r: LONG_AND(INT_2LONG(r),LONG_CONSTANT)
7822 case 154: // szpr: INT_SHL(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
7823 if (kidnumber == 0) return p.child1.child1;
7824 break;
7825 case 171: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
7826 case 169: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
7827 case 164: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
7828 case 162: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
7829 case 157: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
7830 case 155: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
7831 if (kidnumber == 0) return p.child1.child1.child1;
7832 if (kidnumber == 1) return p.child1.child1.child2;
7833 if (kidnumber == 2) return p.child1.child2.child1;
7834 if (kidnumber == 3) return p.child2.child1;
7835 if (kidnumber == 4) return p.child2.child2;
7836 break;
7837 case 176: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
7838 case 175: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
7839 case 174: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
7840 case 173: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
7841 if (kidnumber == 0) return p.child1.child1;
7842 if (kidnumber == 1) return p.child2.child1;
7843 break;
7844 case 180: // r: INT_OR(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
7845 case 177: // r: INT_OR(INT_SHL(r,INT_AND(r,INT_CONSTANT)),INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
7846 if (kidnumber == 0) return p.child1.child1;
7847 if (kidnumber == 1) return p.child1.child2.child1;
7848 if (kidnumber == 2) return p.child2.child1;
7849 if (kidnumber == 3) return p.child2.child2.child1.child1;
7850 break;
7851 case 179: // r: INT_OR(INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_USHR(r,INT_AND(r,INT_CONSTANT)))
7852 case 178: // r: INT_OR(INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_SHL(r,INT_AND(r,INT_CONSTANT)))
7853 if (kidnumber == 0) return p.child1.child1;
7854 if (kidnumber == 1) return p.child1.child2.child1.child1;
7855 if (kidnumber == 2) return p.child2.child1;
7856 if (kidnumber == 3) return p.child2.child2.child1;
7857 break;
7858 case 244: // stm: INT_ASTORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
7859 case 243: // stm: INT_STORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
7860 case 233: // stm: SHORT_ASTORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
7861 case 232: // stm: SHORT_STORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
7862 case 229: // stm: SHORT_ASTORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
7863 case 228: // stm: SHORT_STORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
7864 case 225: // stm: BYTE_ASTORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
7865 case 224: // stm: BYTE_STORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
7866 if (kidnumber == 0) return p.child1.child1;
7867 if (kidnumber == 1) return p.child2.child1;
7868 if (kidnumber == 2) return p.child2.child2;
7869 break;
7870 case 378: // r: SYSCALL(INT_CONSTANT,any)
7871 case 375: // r: CALL(INT_CONSTANT,any)
7872 case 373: // r: CALL(BRANCH_TARGET,any)
7873 case 302: // r: PREPARE_INT(INT_CONSTANT,address)
7874 if (kidnumber == 0) return p.child2;
7875 break;
7876 case 472: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(double_load,r)))
7877 case 471: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(float_load,r)))
7878 case 470: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,double_load)))
7879 case 469: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,float_load)))
7880 case 325: // r: ATTEMPT_LONG(riv,OTHER_OPERAND(riv,OTHER_OPERAND(rlv,rlv)))
7881 case 308: // r: ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
7882 case 307: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv)))
7883 case 306: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv)))
7884 case 305: // r: ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
7885 case 304: // r: ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv)))
7886 if (kidnumber == 0) return p.child1;
7887 if (kidnumber == 1) return p.child2.child1;
7888 if (kidnumber == 2) return p.child2.child2.child1;
7889 if (kidnumber == 3) return p.child2.child2.child2;
7890 break;
7891 case 309: // r: ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv)))
7892 if (kidnumber == 0) return p.child1;
7893 if (kidnumber == 1) return p.child2.child2.child1;
7894 if (kidnumber == 2) return p.child2.child2.child2;
7895 break;
7896 case 310: // r: ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv)))
7897 if (kidnumber == 0) return p.child2.child1;
7898 if (kidnumber == 1) return p.child2.child2.child1;
7899 if (kidnumber == 2) return p.child2.child2.child2;
7900 break;
7901 case 322: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7902 case 321: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7903 case 320: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7904 case 319: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7905 case 318: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7906 case 315: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7907 case 314: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7908 case 313: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7909 case 312: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7910 case 311: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7911 if (kidnumber == 0) return p.child1.child1;
7912 if (kidnumber == 1) return p.child1.child2.child1;
7913 if (kidnumber == 2) return p.child1.child2.child2.child1;
7914 if (kidnumber == 3) return p.child1.child2.child2.child2;
7915 break;
7916 case 323: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7917 case 316: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7918 if (kidnumber == 0) return p.child1.child1;
7919 if (kidnumber == 1) return p.child1.child2.child2.child1;
7920 if (kidnumber == 2) return p.child1.child2.child2.child2;
7921 break;
7922 case 324: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7923 case 317: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
7924 if (kidnumber == 0) return p.child1.child2.child1;
7925 if (kidnumber == 1) return p.child1.child2.child2.child1;
7926 if (kidnumber == 2) return p.child1.child2.child2.child2;
7927 break;
7928 case 344: // stm: LONG_ASTORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
7929 case 342: // stm: LONG_STORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
7930 if (kidnumber == 0) return p.child2.child1;
7931 if (kidnumber == 1) return p.child2.child2;
7932 break;
7933 case 377: // r: SYSCALL(INT_LOAD(riv,riv),any)
7934 case 374: // r: CALL(INT_LOAD(riv,riv),any)
7935 if (kidnumber == 0) return p.child1.child1;
7936 if (kidnumber == 1) return p.child1.child2;
7937 if (kidnumber == 2) return p.child2;
7938 break;
7939 case 385: // bittest: INT_AND(INT_SHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
7940 case 384: // bittest: INT_AND(INT_SHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
7941 case 382: // bittest: INT_AND(INT_USHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
7942 case 381: // bittest: INT_AND(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
7943 if (kidnumber == 0) return p.child1.child1;
7944 if (kidnumber == 1) return p.child1.child2.child1;
7945 break;
7946 case 388: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)),load32)
7947 case 387: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(riv,INT_CONSTANT)),r)
7948 if (kidnumber == 0) return p.child1.child2.child1;
7949 if (kidnumber == 1) return p.child2;
7950 break;
7951 case 390: // bittest: INT_AND(load32,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
7952 case 389: // bittest: INT_AND(r,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
7953 if (kidnumber == 0) return p.child1;
7954 if (kidnumber == 1) return p.child2.child2.child1;
7955 break;
7956 case 479: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,DOUBLE_NEG(r))))
7957 case 475: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,FLOAT_NEG(r))))
7958 if (kidnumber == 0) return p.child1;
7959 if (kidnumber == 1) return p.child2.child2.child1;
7960 if (kidnumber == 2) return p.child2.child2.child2.child1;
7961 break;
7962 case 480: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(DOUBLE_NEG(r),r)))
7963 case 476: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(FLOAT_NEG(r),r)))
7964 if (kidnumber == 0) return p.child1;
7965 if (kidnumber == 1) return p.child2.child2.child1.child1;
7966 if (kidnumber == 2) return p.child2.child2.child2;
7967 break;
7968 case 481: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(DOUBLE_NEG(r),r)))
7969 case 477: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(FLOAT_NEG(r),r)))
7970 if (kidnumber == 0) return p.child2.child1;
7971 if (kidnumber == 1) return p.child2.child2.child1.child1;
7972 if (kidnumber == 2) return p.child2.child2.child2;
7973 break;
7974 case 482: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,DOUBLE_NEG(r))))
7975 case 478: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,FLOAT_NEG(r))))
7976 if (kidnumber == 0) return p.child2.child1;
7977 if (kidnumber == 1) return p.child2.child2.child1;
7978 if (kidnumber == 2) return p.child2.child2.child2.child1;
7979 break;
7980 }
7981 throw new OptimizingCompilerException("BURS","Bad rule number ",Integer.toString(eruleno));
7982 } else return null;
7983 }
7984
7985 static void mark_kids(BURS_TreeNode p, int eruleno)
7986 {
7987 byte[] ntsrule = nts[eruleno];
7988 switch (eruleno) {
7989 case 37: // address: address1scaledreg
7990 case 36: // address1scaledreg: address1reg
7991 case 33: // load8_16_32: load8
7992 case 32: // load8_16_32: load16_32
7993 case 31: // load16_32: load32
7994 case 30: // load16_32: load16
7995 case 27: // load16: uload16
7996 case 26: // load16: sload16
7997 case 21: // load8: uload8
7998 case 20: // load8: sload8
7999 case 12: // any: riv
8000 case 9: // rlv: r
8001 case 7: // riv: r
8002 case 6: // szp: szpr
8003 case 5: // r: szpr
8004 case 4: // cz: czr
8005 case 3: // r: czr
8006 case 1: // stm: r
8007 mark(p, ntsrule[0]);
8008 break;
8009 case 456: // stm: CLEAR_FLOATING_POINT_STATE
8010 case 455: // double_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
8011 case 454: // float_load: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
8012 case 453: // r: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
8013 case 379: // r: GET_TIME_BASE
8014 case 371: // stm: RETURN(LONG_CONSTANT)
8015 case 369: // stm: RETURN(INT_CONSTANT)
8016 case 368: // stm: RETURN(NULL)
8017 case 367: // stm: PAUSE
8018 case 366: // stm: READ_CEILING
8019 case 365: // stm: WRITE_FLOOR
8020 case 363: // stm: GOTO
8021 case 270: // r: GET_CURRENT_PROCESSOR
8022 case 269: // r: LONG_MOVE(LONG_CONSTANT)
8023 case 70: // stm: TRAP
8024 case 68: // r: GET_CAUGHT_EXCEPTION
8025 case 67: // stm: IR_PROLOGUE
8026 case 65: // r: GUARD_COMBINE
8027 case 64: // r: GUARD_MOVE
8028 case 63: // stm: NOP
8029 case 62: // stm: RESOLVE
8030 case 60: // stm: YIELDPOINT_BACKEDGE
8031 case 59: // stm: YIELDPOINT_EPILOGUE
8032 case 58: // stm: YIELDPOINT_PROLOGUE
8033 case 57: // stm: UNINT_END
8034 case 56: // stm: UNINT_BEGIN
8035 case 55: // stm: IG_PATCH_POINT
8036 case 14: // any: LONG_CONSTANT
8037 case 13: // any: ADDRESS_CONSTANT
8038 case 11: // any: NULL
8039 case 10: // rlv: LONG_CONSTANT
8040 case 8: // riv: INT_CONSTANT
8041 case 2: // r: REGISTER
8042 break;
8043 case 462: // stm: DOUBLE_IFCMP(double_load,r)
8044 case 461: // stm: DOUBLE_IFCMP(r,double_load)
8045 case 460: // stm: DOUBLE_IFCMP(r,r)
8046 case 459: // stm: FLOAT_IFCMP(float_load,r)
8047 case 458: // stm: FLOAT_IFCMP(r,float_load)
8048 case 457: // stm: FLOAT_IFCMP(r,r)
8049 case 428: // float_load: FLOAT_ALOAD(riv,riv)
8050 case 427: // r: FLOAT_ALOAD(riv,riv)
8051 case 426: // float_load: FLOAT_LOAD(riv,riv)
8052 case 425: // r: FLOAT_LOAD(riv,riv)
8053 case 424: // double_load: DOUBLE_ALOAD(riv,riv)
8054 case 423: // r: DOUBLE_ALOAD(riv,riv)
8055 case 422: // double_load: DOUBLE_LOAD(riv,riv)
8056 case 421: // r: DOUBLE_LOAD(riv,riv)
8057 case 416: // r: DOUBLE_REM(r,r)
8058 case 415: // r: FLOAT_REM(r,r)
8059 case 410: // r: DOUBLE_DIV(r,double_load)
8060 case 409: // r: DOUBLE_DIV(r,r)
8061 case 408: // r: FLOAT_DIV(r,float_load)
8062 case 407: // r: FLOAT_DIV(r,r)
8063 case 406: // r: DOUBLE_MUL(double_load,r)
8064 case 405: // r: DOUBLE_MUL(r,double_load)
8065 case 404: // r: DOUBLE_MUL(r,r)
8066 case 403: // r: FLOAT_MUL(float_load,r)
8067 case 402: // r: FLOAT_MUL(r,float_load)
8068 case 401: // r: FLOAT_MUL(r,r)
8069 case 400: // r: DOUBLE_SUB(r,double_load)
8070 case 399: // r: DOUBLE_SUB(r,r)
8071 case 398: // r: FLOAT_SUB(r,float_load)
8072 case 397: // r: FLOAT_SUB(r,r)
8073 case 396: // r: DOUBLE_ADD(double_load,r)
8074 case 395: // r: DOUBLE_ADD(r,double_load)
8075 case 394: // r: DOUBLE_ADD(r,r)
8076 case 393: // r: FLOAT_ADD(float_load,r)
8077 case 392: // r: FLOAT_ADD(r,float_load)
8078 case 391: // r: FLOAT_ADD(r,r)
8079 case 380: // stm: YIELDPOINT_OSR(any,any)
8080 case 376: // r: SYSCALL(r,any)
8081 case 372: // r: CALL(r,any)
8082 case 362: // r: LONG_CMP(rlv,rlv)
8083 case 361: // stm: LONG_IFCMP(rlv,rlv)
8084 case 360: // stm: INT_IFCMP2(riv,load32)
8085 case 359: // stm: INT_IFCMP2(load32,riv)
8086 case 358: // stm: INT_IFCMP2(r,riv)
8087 case 352: // stm: INT_IFCMP(r,load32)
8088 case 351: // stm: INT_IFCMP(load32,riv)
8089 case 349: // stm: INT_IFCMP(r,uload8)
8090 case 348: // stm: INT_IFCMP(uload8,r)
8091 case 345: // stm: INT_IFCMP(r,riv)
8092 case 303: // r: PREPARE_LONG(riv,riv)
8093 case 300: // r: PREPARE_INT(address1reg,address1scaledreg)
8094 case 299: // r: PREPARE_INT(address1scaledreg,address1reg)
8095 case 298: // r: PREPARE_INT(address1scaledreg,r)
8096 case 297: // r: PREPARE_INT(r,address1scaledreg)
8097 case 296: // r: PREPARE_INT(riv,riv)
8098 case 295: // r: LONG_ALOAD(riv,riv)
8099 case 294: // r: LONG_LOAD(riv,riv)
8100 case 293: // r: INT_ALOAD(riv,riv)
8101 case 291: // r: INT_LOAD(address1reg,address1scaledreg)
8102 case 290: // r: INT_LOAD(address1scaledreg,address1reg)
8103 case 289: // r: INT_LOAD(address1scaledreg,riv)
8104 case 288: // r: INT_LOAD(riv,address1scaledreg)
8105 case 287: // r: INT_LOAD(riv,riv)
8106 case 282: // r: USHORT_ALOAD(riv,riv)
8107 case 281: // r: USHORT_LOAD(riv,riv)
8108 case 280: // r: SHORT_ALOAD(riv,riv)
8109 case 279: // r: SHORT_LOAD(riv,riv)
8110 case 274: // r: UBYTE_ALOAD(riv,riv)
8111 case 273: // r: UBYTE_LOAD(riv,riv)
8112 case 272: // r: BYTE_ALOAD(riv,riv)
8113 case 271: // r: BYTE_LOAD(riv,riv)
8114 case 220: // r: LONG_XOR(r,rlv)
8115 case 219: // r: LONG_OR(rlv,rlv)
8116 case 218: // r: LONG_AND(rlv,rlv)
8117 case 216: // r: LONG_USHR(rlv,riv)
8118 case 214: // r: LONG_SHR(rlv,riv)
8119 case 212: // r: LONG_SHL(rlv,riv)
8120 case 210: // r: LONG_MUL(rlv,rlv)
8121 case 209: // r: LONG_SUB(rlv,rlv)
8122 case 208: // r: LONG_ADD(r,rlv)
8123 case 200: // szpr: INT_XOR(load32,riv)
8124 case 199: // szpr: INT_XOR(riv,load32)
8125 case 198: // szpr: INT_XOR(riv,riv)
8126 case 193: // szpr: INT_OR(load32,riv)
8127 case 192: // szpr: INT_OR(riv,load32)
8128 case 191: // szpr: INT_OR(riv,riv)
8129 case 186: // szp: INT_AND(riv,load8_16_32)
8130 case 185: // szp: INT_AND(load8_16_32,riv)
8131 case 184: // szpr: INT_AND(load32,riv)
8132 case 183: // szpr: INT_AND(riv,load32)
8133 case 182: // szp: INT_AND(r,riv)
8134 case 181: // szpr: INT_AND(riv,riv)
8135 case 167: // szpr: INT_USHR(riv,riv)
8136 case 160: // szpr: INT_SHR(riv,riv)
8137 case 151: // szpr: INT_SHL(riv,riv)
8138 case 146: // r: INT_REM(riv,load32)
8139 case 145: // r: INT_REM(riv,riv)
8140 case 144: // r: INT_DIV(riv,load32)
8141 case 143: // r: INT_DIV(riv,riv)
8142 case 142: // r: INT_MUL(load32,riv)
8143 case 141: // r: INT_MUL(riv,load32)
8144 case 140: // r: INT_MUL(riv,riv)
8145 case 135: // czr: INT_SUB(load32,riv)
8146 case 134: // czr: INT_SUB(riv,load32)
8147 case 133: // r: INT_SUB(load32,r)
8148 case 132: // r: INT_SUB(riv,r)
8149 case 131: // czr: INT_SUB(riv,r)
8150 case 126: // czr: INT_ADD(load32,riv)
8151 case 125: // czr: INT_ADD(riv,load32)
8152 case 124: // r: INT_ADD(r,riv)
8153 case 123: // czr: INT_ADD(r,riv)
8154 case 104: // boolcmp: BOOLEAN_CMP_LONG(rlv,rlv)
8155 case 103: // r: BOOLEAN_CMP_LONG(rlv,rlv)
8156 case 100: // boolcmp: BOOLEAN_CMP_INT(riv,load32)
8157 case 99: // r: BOOLEAN_CMP_INT(r,load32)
8158 case 98: // boolcmp: BOOLEAN_CMP_INT(load32,riv)
8159 case 97: // r: BOOLEAN_CMP_INT(load32,riv)
8160 case 80: // boolcmp: BOOLEAN_CMP_INT(r,riv)
8161 case 79: // r: BOOLEAN_CMP_INT(r,riv)
8162 case 75: // stm: TRAP_IF(riv,load32)
8163 case 74: // stm: TRAP_IF(load32,riv)
8164 case 73: // stm: TRAP_IF(r,r)
8165 case 52: // r: INT_ADD(address1reg,address1scaledreg)
8166 case 51: // r: INT_ADD(address1scaledreg,address1reg)
8167 case 50: // r: INT_ADD(r,address1scaledreg)
8168 case 49: // r: INT_ADD(address1scaledreg,r)
8169 case 48: // address: INT_ADD(address1reg,address1scaledreg)
8170 case 47: // address: INT_ADD(address1scaledreg,address1reg)
8171 case 45: // address: INT_ADD(address1scaledreg,r)
8172 case 44: // address: INT_ADD(r,address1scaledreg)
8173 case 41: // address: INT_ADD(r,r)
8174 case 35: // load64: LONG_ALOAD(riv,riv)
8175 case 34: // load64: LONG_LOAD(riv,riv)
8176 case 29: // load32: INT_ALOAD(riv,riv)
8177 case 28: // load32: INT_LOAD(riv,riv)
8178 case 25: // uload16: USHORT_ALOAD(riv,riv)
8179 case 24: // uload16: USHORT_LOAD(riv,riv)
8180 case 23: // sload16: SHORT_ALOAD(riv,riv)
8181 case 22: // sload16: SHORT_LOAD(riv,riv)
8182 case 19: // uload8: UBYTE_ALOAD(riv,riv)
8183 case 18: // uload8: UBYTE_LOAD(riv,riv)
8184 case 17: // sload8: BYTE_ALOAD(riv,riv)
8185 case 16: // sload8: BYTE_LOAD(riv,riv)
8186 case 15: // any: OTHER_OPERAND(any,any)
8187 mark(p.child1, ntsrule[0]);
8188 mark(p.child2, ntsrule[1]);
8189 break;
8190 case 452: // double_load: LONG_BITS_AS_DOUBLE(load64)
8191 case 451: // r: LONG_BITS_AS_DOUBLE(rlv)
8192 case 450: // float_load: INT_BITS_AS_FLOAT(load32)
8193 case 449: // r: INT_BITS_AS_FLOAT(riv)
8194 case 448: // load64: DOUBLE_AS_LONG_BITS(double_load)
8195 case 447: // r: DOUBLE_AS_LONG_BITS(r)
8196 case 446: // load32: FLOAT_AS_INT_BITS(float_load)
8197 case 445: // r: FLOAT_AS_INT_BITS(r)
8198 case 444: // r: DOUBLE_2LONG(r)
8199 case 443: // r: DOUBLE_2INT(r)
8200 case 442: // r: FLOAT_2LONG(r)
8201 case 441: // r: FLOAT_2INT(r)
8202 case 440: // r: DOUBLE_2FLOAT(double_load)
8203 case 439: // r: DOUBLE_2FLOAT(r)
8204 case 438: // r: FLOAT_2DOUBLE(float_load)
8205 case 437: // r: FLOAT_2DOUBLE(r)
8206 case 436: // r: INT_2DOUBLE(load32)
8207 case 435: // r: INT_2DOUBLE(riv)
8208 case 434: // r: INT_2FLOAT(load32)
8209 case 433: // r: INT_2FLOAT(riv)
8210 case 420: // r: DOUBLE_MOVE(r)
8211 case 419: // r: FLOAT_MOVE(r)
8212 case 418: // r: LONG_2DOUBLE(r)
8213 case 417: // r: LONG_2FLOAT(r)
8214 case 414: // r: DOUBLE_SQRT(r)
8215 case 413: // r: FLOAT_SQRT(r)
8216 case 412: // r: DOUBLE_NEG(r)
8217 case 411: // r: FLOAT_NEG(r)
8218 case 370: // stm: RETURN(r)
8219 case 364: // stm: PREFETCH(r)
8220 case 357: // stm: INT_IFCMP(bittest,INT_CONSTANT)
8221 case 356: // stm: INT_IFCMP(szp,INT_CONSTANT)
8222 case 355: // stm: INT_IFCMP(cz,INT_CONSTANT)
8223 case 354: // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
8224 case 353: // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
8225 case 350: // stm: INT_IFCMP(sload16,INT_CONSTANT)
8226 case 347: // stm: INT_IFCMP(load8,INT_CONSTANT)
8227 case 346: // stm: INT_IFCMP(r,INT_CONSTANT)
8228 case 301: // r: PREPARE_INT(address,INT_CONSTANT)
8229 case 292: // r: INT_LOAD(address,INT_CONSTANT)
8230 case 285: // r: INT_2USHORT(load16_32)
8231 case 284: // r: INT_2USHORT(load16_32)
8232 case 283: // r: INT_AND(load16_32,INT_CONSTANT)
8233 case 277: // r: INT_2BYTE(load8_16_32)
8234 case 276: // r: INT_AND(load8_16_32,INT_CONSTANT)
8235 case 275: // uload8: INT_AND(load8_16_32,INT_CONSTANT)
8236 case 268: // r: LONG_MOVE(r)
8237 case 267: // load64: LONG_MOVE(load64)
8238 case 266: // load32: INT_MOVE(load32)
8239 case 265: // load16: INT_MOVE(load16)
8240 case 264: // uload16: INT_MOVE(uload16)
8241 case 263: // sload16: INT_MOVE(sload16)
8242 case 262: // load8: INT_MOVE(load8)
8243 case 261: // uload8: INT_MOVE(uload8)
8244 case 260: // sload8: INT_MOVE(sload8)
8245 case 259: // address: INT_MOVE(address)
8246 case 258: // address1scaledreg: INT_MOVE(address1scaledreg)
8247 case 257: // address1reg: INT_MOVE(address1reg)
8248 case 256: // szp: INT_MOVE(szp)
8249 case 255: // szpr: INT_MOVE(szpr)
8250 case 254: // cz: INT_MOVE(cz)
8251 case 253: // czr: INT_MOVE(czr)
8252 case 252: // r: INT_MOVE(riv)
8253 case 245: // r: LONG_2INT(load64)
8254 case 242: // r: LONG_2INT(r)
8255 case 241: // r: ADDR_2LONG(load32)
8256 case 240: // r: ADDR_2LONG(r)
8257 case 235: // r: INT_2LONG(load32)
8258 case 234: // r: INT_2LONG(r)
8259 case 231: // r: INT_2SHORT(load16_32)
8260 case 230: // r: INT_2SHORT(r)
8261 case 227: // r: INT_2USHORT(load16_32)
8262 case 226: // szpr: INT_2USHORT(r)
8263 case 223: // r: INT_2BYTE(load8_16_32)
8264 case 222: // r: INT_2BYTE(r)
8265 case 221: // r: LONG_NOT(r)
8266 case 211: // r: LONG_NEG(r)
8267 case 205: // r: INT_NOT(r)
8268 case 168: // szpr: INT_USHR(riv,INT_CONSTANT)
8269 case 161: // szpr: INT_SHR(riv,INT_CONSTANT)
8270 case 153: // r: INT_SHL(r,INT_CONSTANT)
8271 case 152: // szpr: INT_SHL(r,INT_CONSTANT)
8272 case 147: // szpr: INT_NEG(r)
8273 case 110: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
8274 case 109: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
8275 case 108: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
8276 case 107: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
8277 case 96: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
8278 case 95: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
8279 case 94: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
8280 case 93: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
8281 case 92: // boolcmp: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
8282 case 91: // r: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
8283 case 90: // boolcmp: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
8284 case 89: // r: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
8285 case 88: // boolcmp: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
8286 case 87: // r: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
8287 case 86: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
8288 case 85: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
8289 case 84: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
8290 case 83: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
8291 case 82: // boolcmp: BOOLEAN_CMP_INT(r,INT_CONSTANT)
8292 case 81: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
8293 case 76: // r: BOOLEAN_NOT(r)
8294 case 72: // stm: TRAP_IF(r,LONG_CONSTANT)
8295 case 71: // stm: TRAP_IF(r,INT_CONSTANT)
8296 case 69: // stm: SET_CAUGHT_EXCEPTION(r)
8297 case 66: // stm: NULL_CHECK(riv)
8298 case 61: // stm: LOWTABLESWITCH(r)
8299 case 54: // r: INT_MOVE(address)
8300 case 53: // r: INT_ADD(address,INT_CONSTANT)
8301 case 46: // address: INT_ADD(address1scaledreg,INT_CONSTANT)
8302 case 43: // address1scaledreg: INT_ADD(address1scaledreg,INT_CONSTANT)
8303 case 42: // address1reg: INT_ADD(address1reg,INT_CONSTANT)
8304 case 40: // address1reg: INT_MOVE(r)
8305 case 39: // address1reg: INT_ADD(r,INT_CONSTANT)
8306 case 38: // address1scaledreg: INT_SHL(r,INT_CONSTANT)
8307 mark(p.child1, ntsrule[0]);
8308 break;
8309 case 207: // stm: INT_ASTORE(INT_NOT(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8310 case 206: // stm: INT_STORE(INT_NOT(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8311 case 172: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
8312 case 170: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
8313 case 165: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
8314 case 163: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
8315 case 158: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
8316 case 156: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
8317 case 149: // stm: INT_ASTORE(INT_NEG(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8318 case 148: // stm: INT_STORE(INT_NEG(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8319 case 78: // stm: BYTE_ASTORE(BOOLEAN_NOT(UBYTE_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8320 case 77: // stm: BYTE_STORE(BOOLEAN_NOT(UBYTE_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8321 mark(p.child1.child1.child1, ntsrule[0]);
8322 mark(p.child1.child1.child2, ntsrule[1]);
8323 mark(p.child2.child1, ntsrule[2]);
8324 mark(p.child2.child2, ntsrule[3]);
8325 break;
8326 case 484: // stm: LONG_STORE(load64,OTHER_OPERAND(riv,riv))
8327 case 483: // stm: LONG_ASTORE(load64,OTHER_OPERAND(riv,riv))
8328 case 474: // r: FCMP_FCMOV(r,OTHER_OPERAND(double_load,any))
8329 case 473: // r: FCMP_FCMOV(r,OTHER_OPERAND(float_load,any))
8330 case 468: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,any))
8331 case 467: // r: FCMP_CMOV(double_load,OTHER_OPERAND(r,any))
8332 case 466: // r: FCMP_CMOV(float_load,OTHER_OPERAND(r,any))
8333 case 465: // r: FCMP_CMOV(r,OTHER_OPERAND(double_load,any))
8334 case 464: // r: FCMP_CMOV(r,OTHER_OPERAND(float_load,any))
8335 case 463: // r: FCMP_CMOV(r,OTHER_OPERAND(r,any))
8336 case 432: // stm: FLOAT_ASTORE(r,OTHER_OPERAND(riv,riv))
8337 case 431: // stm: FLOAT_STORE(r,OTHER_OPERAND(riv,riv))
8338 case 430: // stm: DOUBLE_ASTORE(r,OTHER_OPERAND(riv,riv))
8339 case 429: // stm: DOUBLE_STORE(r,OTHER_OPERAND(riv,riv))
8340 case 343: // stm: LONG_ASTORE(r,OTHER_OPERAND(riv,riv))
8341 case 341: // stm: LONG_STORE(r,OTHER_OPERAND(riv,riv))
8342 case 340: // stm: INT_ASTORE(riv,OTHER_OPERAND(riv,riv))
8343 case 338: // stm: INT_STORE(riv,OTHER_OPERAND(address1reg,address1scaledreg))
8344 case 337: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,address1reg))
8345 case 336: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,riv))
8346 case 335: // stm: INT_STORE(riv,OTHER_OPERAND(riv,address1scaledreg))
8347 case 334: // stm: INT_STORE(riv,OTHER_OPERAND(riv,riv))
8348 case 333: // stm: SHORT_ASTORE(load16,OTHER_OPERAND(riv,riv))
8349 case 332: // stm: SHORT_ASTORE(riv,OTHER_OPERAND(riv,riv))
8350 case 331: // stm: SHORT_STORE(load16,OTHER_OPERAND(riv,riv))
8351 case 330: // stm: SHORT_STORE(riv,OTHER_OPERAND(riv,riv))
8352 case 329: // stm: BYTE_ASTORE(load8,OTHER_OPERAND(riv,riv))
8353 case 328: // stm: BYTE_ASTORE(riv,OTHER_OPERAND(riv,riv))
8354 case 327: // stm: BYTE_STORE(load8,OTHER_OPERAND(riv,riv))
8355 case 326: // stm: BYTE_STORE(riv,OTHER_OPERAND(riv,riv))
8356 case 122: // r: LCMP_CMOV(r,OTHER_OPERAND(rlv,any))
8357 case 116: // r: CMP_CMOV(riv,OTHER_OPERAND(load32,any))
8358 case 115: // r: CMP_CMOV(load32,OTHER_OPERAND(riv,any))
8359 case 113: // r: CMP_CMOV(riv,OTHER_OPERAND(uload8,any))
8360 case 112: // r: CMP_CMOV(uload8,OTHER_OPERAND(riv,any))
8361 case 105: // r: CMP_CMOV(r,OTHER_OPERAND(riv,any))
8362 case 102: // stm: BYTE_ASTORE(boolcmp,OTHER_OPERAND(riv,riv))
8363 case 101: // stm: BYTE_STORE(boolcmp,OTHER_OPERAND(riv,riv))
8364 mark(p.child1, ntsrule[0]);
8365 mark(p.child2.child1, ntsrule[1]);
8366 mark(p.child2.child2, ntsrule[2]);
8367 break;
8368 case 121: // r: CMP_CMOV(szp,OTHER_OPERAND(INT_CONSTANT,any))
8369 case 120: // r: CMP_CMOV(cz,OTHER_OPERAND(INT_CONSTANT,any))
8370 case 119: // r: CMP_CMOV(bittest,OTHER_OPERAND(INT_CONSTANT,any))
8371 case 118: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
8372 case 117: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
8373 case 114: // r: CMP_CMOV(sload16,OTHER_OPERAND(INT_CONSTANT,any))
8374 case 111: // r: CMP_CMOV(load8,OTHER_OPERAND(INT_CONSTANT,any))
8375 case 106: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,any))
8376 mark(p.child1, ntsrule[0]);
8377 mark(p.child2.child2, ntsrule[1]);
8378 break;
8379 case 203: // stm: INT_ASTORE(INT_XOR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
8380 case 201: // stm: INT_STORE(INT_XOR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
8381 case 196: // stm: INT_ASTORE(INT_OR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
8382 case 194: // stm: INT_STORE(INT_OR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
8383 case 189: // stm: INT_ASTORE(INT_AND(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
8384 case 187: // stm: INT_STORE(INT_AND(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
8385 case 138: // stm: INT_ASTORE(INT_SUB(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
8386 case 136: // stm: INT_STORE(INT_SUB(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
8387 case 129: // stm: INT_ASTORE(INT_ADD(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
8388 case 127: // stm: INT_STORE(INT_ADD(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
8389 mark(p.child1.child1.child1, ntsrule[0]);
8390 mark(p.child1.child1.child2, ntsrule[1]);
8391 mark(p.child1.child2, ntsrule[2]);
8392 mark(p.child2.child1, ntsrule[3]);
8393 mark(p.child2.child2, ntsrule[4]);
8394 break;
8395 case 204: // stm: INT_ASTORE(INT_XOR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8396 case 202: // stm: INT_STORE(INT_XOR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8397 case 197: // stm: INT_ASTORE(INT_OR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8398 case 195: // stm: INT_STORE(INT_OR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8399 case 190: // stm: INT_ASTORE(INT_AND(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8400 case 188: // stm: INT_STORE(INT_AND(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8401 case 139: // stm: INT_ASTORE(INT_SUB(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8402 case 137: // stm: INT_STORE(INT_SUB(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8403 case 130: // stm: INT_ASTORE(INT_ADD(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8404 case 128: // stm: INT_STORE(INT_ADD(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
8405 mark(p.child1.child1, ntsrule[0]);
8406 mark(p.child1.child2.child1, ntsrule[1]);
8407 mark(p.child1.child2.child2, ntsrule[2]);
8408 mark(p.child2.child1, ntsrule[3]);
8409 mark(p.child2.child2, ntsrule[4]);
8410 break;
8411 case 339: // stm: INT_STORE(riv,OTHER_OPERAND(address,INT_CONSTANT))
8412 case 217: // r: LONG_USHR(rlv,INT_AND(riv,INT_CONSTANT))
8413 case 215: // r: LONG_SHR(rlv,INT_AND(riv,INT_CONSTANT))
8414 case 213: // r: LONG_SHL(rlv,INT_AND(riv,INT_CONSTANT))
8415 case 166: // szpr: INT_USHR(riv,INT_AND(r,INT_CONSTANT))
8416 case 159: // szpr: INT_SHR(riv,INT_AND(r,INT_CONSTANT))
8417 case 150: // szpr: INT_SHL(riv,INT_AND(r,INT_CONSTANT))
8418 mark(p.child1, ntsrule[0]);
8419 mark(p.child2.child1, ntsrule[1]);
8420 break;
8421 case 386: // bittest: INT_AND(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
8422 case 383: // bittest: INT_AND(INT_USHR(r,INT_CONSTANT),INT_CONSTANT)
8423 case 286: // r: INT_USHR(INT_SHL(load16_32,INT_CONSTANT),INT_CONSTANT)
8424 case 278: // r: INT_USHR(INT_SHL(load8_16_32,INT_CONSTANT),INT_CONSTANT)
8425 case 251: // load32: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
8426 case 250: // load32: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
8427 case 249: // r: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
8428 case 248: // r: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
8429 case 247: // r: LONG_2INT(LONG_SHR(r,INT_CONSTANT))
8430 case 246: // r: LONG_2INT(LONG_USHR(r,INT_CONSTANT))
8431 case 239: // r: LONG_SHL(INT_2LONG(load64),INT_CONSTANT)
8432 case 238: // r: LONG_SHL(INT_2LONG(r),INT_CONSTANT)
8433 case 237: // r: LONG_AND(INT_2LONG(load32),LONG_CONSTANT)
8434 case 236: // r: LONG_AND(INT_2LONG(r),LONG_CONSTANT)
8435 case 154: // szpr: INT_SHL(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
8436 mark(p.child1.child1, ntsrule[0]);
8437 break;
8438 case 171: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
8439 case 169: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
8440 case 164: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
8441 case 162: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
8442 case 157: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
8443 case 155: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
8444 mark(p.child1.child1.child1, ntsrule[0]);
8445 mark(p.child1.child1.child2, ntsrule[1]);
8446 mark(p.child1.child2.child1, ntsrule[2]);
8447 mark(p.child2.child1, ntsrule[3]);
8448 mark(p.child2.child2, ntsrule[4]);
8449 break;
8450 case 176: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
8451 case 175: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
8452 case 174: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
8453 case 173: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
8454 mark(p.child1.child1, ntsrule[0]);
8455 mark(p.child2.child1, ntsrule[1]);
8456 break;
8457 case 180: // r: INT_OR(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
8458 case 177: // r: INT_OR(INT_SHL(r,INT_AND(r,INT_CONSTANT)),INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
8459 mark(p.child1.child1, ntsrule[0]);
8460 mark(p.child1.child2.child1, ntsrule[1]);
8461 mark(p.child2.child1, ntsrule[2]);
8462 mark(p.child2.child2.child1.child1, ntsrule[3]);
8463 break;
8464 case 179: // r: INT_OR(INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_USHR(r,INT_AND(r,INT_CONSTANT)))
8465 case 178: // r: INT_OR(INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_SHL(r,INT_AND(r,INT_CONSTANT)))
8466 mark(p.child1.child1, ntsrule[0]);
8467 mark(p.child1.child2.child1.child1, ntsrule[1]);
8468 mark(p.child2.child1, ntsrule[2]);
8469 mark(p.child2.child2.child1, ntsrule[3]);
8470 break;
8471 case 244: // stm: INT_ASTORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
8472 case 243: // stm: INT_STORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
8473 case 233: // stm: SHORT_ASTORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
8474 case 232: // stm: SHORT_STORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
8475 case 229: // stm: SHORT_ASTORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
8476 case 228: // stm: SHORT_STORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
8477 case 225: // stm: BYTE_ASTORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
8478 case 224: // stm: BYTE_STORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
8479 mark(p.child1.child1, ntsrule[0]);
8480 mark(p.child2.child1, ntsrule[1]);
8481 mark(p.child2.child2, ntsrule[2]);
8482 break;
8483 case 378: // r: SYSCALL(INT_CONSTANT,any)
8484 case 375: // r: CALL(INT_CONSTANT,any)
8485 case 373: // r: CALL(BRANCH_TARGET,any)
8486 case 302: // r: PREPARE_INT(INT_CONSTANT,address)
8487 mark(p.child2, ntsrule[0]);
8488 break;
8489 case 472: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(double_load,r)))
8490 case 471: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(float_load,r)))
8491 case 470: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,double_load)))
8492 case 469: // r: FCMP_FCMOV(r,OTHER_OPERAND(r,OTHER_OPERAND(r,float_load)))
8493 case 325: // r: ATTEMPT_LONG(riv,OTHER_OPERAND(riv,OTHER_OPERAND(rlv,rlv)))
8494 case 308: // r: ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
8495 case 307: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv)))
8496 case 306: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv)))
8497 case 305: // r: ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
8498 case 304: // r: ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv)))
8499 mark(p.child1, ntsrule[0]);
8500 mark(p.child2.child1, ntsrule[1]);
8501 mark(p.child2.child2.child1, ntsrule[2]);
8502 mark(p.child2.child2.child2, ntsrule[3]);
8503 break;
8504 case 309: // r: ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv)))
8505 mark(p.child1, ntsrule[0]);
8506 mark(p.child2.child2.child1, ntsrule[1]);
8507 mark(p.child2.child2.child2, ntsrule[2]);
8508 break;
8509 case 310: // r: ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv)))
8510 mark(p.child2.child1, ntsrule[0]);
8511 mark(p.child2.child2.child1, ntsrule[1]);
8512 mark(p.child2.child2.child2, ntsrule[2]);
8513 break;
8514 case 322: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8515 case 321: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8516 case 320: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8517 case 319: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8518 case 318: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8519 case 315: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8520 case 314: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8521 case 313: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8522 case 312: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8523 case 311: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8524 mark(p.child1.child1, ntsrule[0]);
8525 mark(p.child1.child2.child1, ntsrule[1]);
8526 mark(p.child1.child2.child2.child1, ntsrule[2]);
8527 mark(p.child1.child2.child2.child2, ntsrule[3]);
8528 break;
8529 case 323: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8530 case 316: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8531 mark(p.child1.child1, ntsrule[0]);
8532 mark(p.child1.child2.child2.child1, ntsrule[1]);
8533 mark(p.child1.child2.child2.child2, ntsrule[2]);
8534 break;
8535 case 324: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8536 case 317: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
8537 mark(p.child1.child2.child1, ntsrule[0]);
8538 mark(p.child1.child2.child2.child1, ntsrule[1]);
8539 mark(p.child1.child2.child2.child2, ntsrule[2]);
8540 break;
8541 case 344: // stm: LONG_ASTORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
8542 case 342: // stm: LONG_STORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
8543 mark(p.child2.child1, ntsrule[0]);
8544 mark(p.child2.child2, ntsrule[1]);
8545 break;
8546 case 377: // r: SYSCALL(INT_LOAD(riv,riv),any)
8547 case 374: // r: CALL(INT_LOAD(riv,riv),any)
8548 mark(p.child1.child1, ntsrule[0]);
8549 mark(p.child1.child2, ntsrule[1]);
8550 mark(p.child2, ntsrule[2]);
8551 break;
8552 case 385: // bittest: INT_AND(INT_SHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
8553 case 384: // bittest: INT_AND(INT_SHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
8554 case 382: // bittest: INT_AND(INT_USHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
8555 case 381: // bittest: INT_AND(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
8556 mark(p.child1.child1, ntsrule[0]);
8557 mark(p.child1.child2.child1, ntsrule[1]);
8558 break;
8559 case 388: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)),load32)
8560 case 387: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(riv,INT_CONSTANT)),r)
8561 mark(p.child1.child2.child1, ntsrule[0]);
8562 mark(p.child2, ntsrule[1]);
8563 break;
8564 case 390: // bittest: INT_AND(load32,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
8565 case 389: // bittest: INT_AND(r,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
8566 mark(p.child1, ntsrule[0]);
8567 mark(p.child2.child2.child1, ntsrule[1]);
8568 break;
8569 case 479: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,DOUBLE_NEG(r))))
8570 case 475: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,FLOAT_NEG(r))))
8571 mark(p.child1, ntsrule[0]);
8572 mark(p.child2.child2.child1, ntsrule[1]);
8573 mark(p.child2.child2.child2.child1, ntsrule[2]);
8574 break;
8575 case 480: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(DOUBLE_NEG(r),r)))
8576 case 476: // r: FCMP_FCMOV(r,OTHER_OPERAND(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(FLOAT_NEG(r),r)))
8577 mark(p.child1, ntsrule[0]);
8578 mark(p.child2.child2.child1.child1, ntsrule[1]);
8579 mark(p.child2.child2.child2, ntsrule[2]);
8580 break;
8581 case 481: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(DOUBLE_NEG(r),r)))
8582 case 477: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(FLOAT_NEG(r),r)))
8583 mark(p.child2.child1, ntsrule[0]);
8584 mark(p.child2.child2.child1.child1, ntsrule[1]);
8585 mark(p.child2.child2.child2, ntsrule[2]);
8586 break;
8587 case 482: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,DOUBLE_NEG(r))))
8588 case 478: // r: FCMP_FCMOV(MATERIALIZE_FP_CONSTANT(INT_CONSTANT),OTHER_OPERAND(r,OTHER_OPERAND(r,FLOAT_NEG(r))))
8589 mark(p.child2.child1, ntsrule[0]);
8590 mark(p.child2.child2.child1, ntsrule[1]);
8591 mark(p.child2.child2.child2.child1, ntsrule[2]);
8592 break;
8593 }
8594 }
8595
8596 public static final byte[] action={0
8597 ,NOFLAGS
8598 ,NOFLAGS
8599 ,NOFLAGS
8600 ,NOFLAGS
8601 ,NOFLAGS
8602 ,NOFLAGS
8603 ,NOFLAGS
8604 ,NOFLAGS
8605 ,NOFLAGS
8606 ,NOFLAGS
8607 ,NOFLAGS
8608 ,NOFLAGS
8609 ,NOFLAGS
8610 ,NOFLAGS
8611 ,NOFLAGS
8612 ,EMIT_INSTRUCTION
8613 ,EMIT_INSTRUCTION
8614 ,EMIT_INSTRUCTION
8615 ,EMIT_INSTRUCTION
8616 ,NOFLAGS
8617 ,NOFLAGS
8618 ,EMIT_INSTRUCTION
8619 ,EMIT_INSTRUCTION
8620 ,EMIT_INSTRUCTION
8621 ,EMIT_INSTRUCTION
8622 ,NOFLAGS
8623 ,NOFLAGS
8624 ,EMIT_INSTRUCTION
8625 ,EMIT_INSTRUCTION
8626 ,NOFLAGS
8627 ,NOFLAGS
8628 ,NOFLAGS
8629 ,NOFLAGS
8630 ,EMIT_INSTRUCTION
8631 ,EMIT_INSTRUCTION
8632 ,NOFLAGS
8633 ,NOFLAGS
8634 ,EMIT_INSTRUCTION
8635 ,EMIT_INSTRUCTION
8636 ,EMIT_INSTRUCTION
8637 ,EMIT_INSTRUCTION
8638 ,EMIT_INSTRUCTION
8639 ,EMIT_INSTRUCTION
8640 ,EMIT_INSTRUCTION
8641 ,EMIT_INSTRUCTION
8642 ,EMIT_INSTRUCTION
8643 ,EMIT_INSTRUCTION
8644 ,EMIT_INSTRUCTION
8645 ,EMIT_INSTRUCTION
8646 ,EMIT_INSTRUCTION
8647 ,EMIT_INSTRUCTION
8648 ,EMIT_INSTRUCTION
8649 ,EMIT_INSTRUCTION
8650 ,EMIT_INSTRUCTION
8651 ,EMIT_INSTRUCTION
8652 ,EMIT_INSTRUCTION
8653 ,EMIT_INSTRUCTION
8654 ,EMIT_INSTRUCTION
8655 ,EMIT_INSTRUCTION
8656 ,EMIT_INSTRUCTION
8657 ,EMIT_INSTRUCTION
8658 ,EMIT_INSTRUCTION
8659 ,NOFLAGS
8660 ,EMIT_INSTRUCTION
8661 ,EMIT_INSTRUCTION
8662 ,EMIT_INSTRUCTION
8663 ,EMIT_INSTRUCTION
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 ,EMIT_INSTRUCTION
8690 ,NOFLAGS
8691 ,EMIT_INSTRUCTION
8692 ,EMIT_INSTRUCTION
8693 ,EMIT_INSTRUCTION
8694 ,EMIT_INSTRUCTION
8695 ,EMIT_INSTRUCTION
8696 ,EMIT_INSTRUCTION
8697 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
8698 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
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 | RIGHT_CHILD_FIRST
8714 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
8715 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
8716 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
8717 ,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
8718 ,EMIT_INSTRUCTION
8719 ,EMIT_INSTRUCTION
8720 ,EMIT_INSTRUCTION
8721 ,EMIT_INSTRUCTION
8722 ,EMIT_INSTRUCTION
8723 ,EMIT_INSTRUCTION
8724 ,EMIT_INSTRUCTION
8725 ,EMIT_INSTRUCTION
8726 ,EMIT_INSTRUCTION
8727 ,EMIT_INSTRUCTION
8728 ,EMIT_INSTRUCTION
8729 ,EMIT_INSTRUCTION
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
8745 ,EMIT_INSTRUCTION
8746 ,EMIT_INSTRUCTION
8747 ,EMIT_INSTRUCTION
8748 ,EMIT_INSTRUCTION
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 ,NOFLAGS
8851 ,EMIT_INSTRUCTION
8852 ,NOFLAGS
8853 ,NOFLAGS
8854 ,NOFLAGS
8855 ,NOFLAGS
8856 ,NOFLAGS
8857 ,NOFLAGS
8858 ,NOFLAGS
8859 ,NOFLAGS
8860 ,NOFLAGS
8861 ,NOFLAGS
8862 ,NOFLAGS
8863 ,NOFLAGS
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 ,EMIT_INSTRUCTION
8882 ,EMIT_INSTRUCTION
8883 ,EMIT_INSTRUCTION
8884 ,EMIT_INSTRUCTION
8885 ,EMIT_INSTRUCTION
8886 ,EMIT_INSTRUCTION
8887 ,EMIT_INSTRUCTION
8888 ,EMIT_INSTRUCTION
8889 ,EMIT_INSTRUCTION
8890 ,EMIT_INSTRUCTION
8891 ,EMIT_INSTRUCTION
8892 ,EMIT_INSTRUCTION
8893 ,EMIT_INSTRUCTION
8894 ,EMIT_INSTRUCTION
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 ,NOFLAGS
9043 ,EMIT_INSTRUCTION
9044 ,NOFLAGS
9045 ,EMIT_INSTRUCTION
9046 ,NOFLAGS
9047 ,EMIT_INSTRUCTION
9048 ,NOFLAGS
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 ,EMIT_INSTRUCTION
9075 ,EMIT_INSTRUCTION
9076 ,EMIT_INSTRUCTION
9077 ,EMIT_INSTRUCTION
9078 ,EMIT_INSTRUCTION
9079 ,EMIT_INSTRUCTION
9080 ,EMIT_INSTRUCTION
9081 };
9082
9083 void code16(BURS_TreeNode p) {
9084 pushMO(MO_L(P(p), B));
9085 }
9086 void code17(BURS_TreeNode p) {
9087 pushMO(MO_AL(P(p), B_S, B));
9088 }
9089 void code18(BURS_TreeNode p) {
9090 pushMO(MO_L(P(p), B));
9091 }
9092 void code19(BURS_TreeNode p) {
9093 pushMO(MO_AL(P(p), B_S, B));
9094 }
9095 void code22(BURS_TreeNode p) {
9096 pushMO(MO_L(P(p), W));
9097 }
9098 void code23(BURS_TreeNode p) {
9099 pushMO(MO_AL(P(p), W_S, W));
9100 }
9101 void code24(BURS_TreeNode p) {
9102 pushMO(MO_L(P(p), W));
9103 }
9104 void code25(BURS_TreeNode p) {
9105 pushMO(MO_AL(P(p), W_S, W));
9106 }
9107 void code28(BURS_TreeNode p) {
9108 pushMO(MO_L(P(p), DW));
9109 }
9110 void code29(BURS_TreeNode p) {
9111 pushMO(MO_AL(P(p), DW_S, DW));
9112 }
9113 void code34(BURS_TreeNode p) {
9114 pushMO(MO_L(P(p), QW));
9115 }
9116 void code35(BURS_TreeNode p) {
9117 pushMO(MO_AL(P(p), QW_S, QW));
9118 }
9119 void code38(BURS_TreeNode p) {
9120 pushAddress(null, Binary.getVal1(P(p)).asRegister(), LEA_SHIFT(Binary.getVal2(P(p))), Offset.zero());
9121 }
9122 void code39(BURS_TreeNode p) {
9123 pushAddress(R(Binary.getVal1(P(p))), null, B_S, Offset.fromIntSignExtend(VR(p)));
9124 }
9125 void code40(BURS_TreeNode p) {
9126 pushAddress(R(Move.getVal(P(p))), null, B_S, Offset.zero());
9127 }
9128 void code41(BURS_TreeNode p) {
9129 pushAddress(R(Binary.getVal1(P(p))), R(Binary.getVal2(P(p))), B_S, Offset.zero());
9130 }
9131 void code42(BURS_TreeNode p) {
9132 augmentAddress(Binary.getVal2(P(p)));
9133 }
9134 void code43(BURS_TreeNode p) {
9135 augmentAddress(Binary.getVal2(P(p)));
9136 }
9137 void code44(BURS_TreeNode p) {
9138 augmentAddress(Binary.getVal1(P(p)));
9139 }
9140 void code45(BURS_TreeNode p) {
9141 augmentAddress(Binary.getVal2(P(p)));
9142 }
9143 void code46(BURS_TreeNode p) {
9144 augmentAddress(Binary.getVal2(P(p)));
9145 }
9146 void code47(BURS_TreeNode p) {
9147 combineAddresses();
9148 }
9149 void code48(BURS_TreeNode p) {
9150 combineAddresses();
9151 }
9152 void code49(BURS_TreeNode p) {
9153 augmentAddress(Binary.getVal2(P(p)));
9154 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
9155 }
9156 void code50(BURS_TreeNode p) {
9157 augmentAddress(Binary.getVal1(P(p)));
9158 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
9159 }
9160 void code51(BURS_TreeNode p) {
9161 combineAddresses();
9162 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
9163 }
9164 void code52(BURS_TreeNode p) {
9165 combineAddresses();
9166 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
9167 }
9168 void code53(BURS_TreeNode p) {
9169 augmentAddress(Binary.getVal2(P(p)));
9170 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
9171 }
9172 void code54(BURS_TreeNode p) {
9173 EMIT_Lea(P(p), Move.getResult(P(p)), consumeAddress(DW, null, null));
9174 }
9175 void code55(BURS_TreeNode p) {
9176 EMIT(InlineGuard.mutate(P(p), IG_PATCH_POINT, null, null, null, InlineGuard.getTarget(P(p)), InlineGuard.getBranchProfile(P(p))));
9177 }
9178 void code56(BURS_TreeNode p) {
9179 EMIT(P(p));
9180 }
9181 void code57(BURS_TreeNode p) {
9182 EMIT(P(p));
9183 }
9184 void code58(BURS_TreeNode p) {
9185 EMIT(P(p));
9186 }
9187 void code59(BURS_TreeNode p) {
9188 EMIT(P(p));
9189 }
9190 void code60(BURS_TreeNode p) {
9191 EMIT(P(p));
9192 }
9193 void code61(BURS_TreeNode p) {
9194 LOWTABLESWITCH(P(p));
9195 }
9196 void code62(BURS_TreeNode p) {
9197 RESOLVE(P(p));
9198 }
9199 void code64(BURS_TreeNode p) {
9200 EMIT(P(p));
9201 }
9202 void code65(BURS_TreeNode p) {
9203 EMIT(P(p));
9204 }
9205 void code66(BURS_TreeNode p) {
9206 EMIT(P(p));
9207 }
9208 void code67(BURS_TreeNode p) {
9209 PROLOGUE(P(p));
9210 }
9211 void code68(BURS_TreeNode p) {
9212 GET_EXCEPTION_OBJECT(P(p));
9213 }
9214 void code69(BURS_TreeNode p) {
9215 SET_EXCEPTION_OBJECT(P(p));
9216 }
9217 void code70(BURS_TreeNode p) {
9218 EMIT(MIR_Trap.mutate(P(p), IA32_INT, Trap.getGuardResult(P(p)), Trap.getTCode(P(p))));
9219 }
9220 void code71(BURS_TreeNode p) {
9221 TRAP_IF_IMM(P(p), false);
9222 }
9223 void code72(BURS_TreeNode p) {
9224 TRAP_IF_IMM(P(p), true);
9225 }
9226 void code73(BURS_TreeNode p) {
9227 EMIT(MIR_TrapIf.mutate(P(p), IA32_TRAPIF,
9228 TrapIf.getGuardResult(P(p)),
9229 TrapIf.getVal1(P(p)),
9230 TrapIf.getVal2(P(p)),
9231 COND(TrapIf.getCond(P(p))),
9232 TrapIf.getTCode(P(p))));
9233 }
9234 void code74(BURS_TreeNode p) {
9235 EMIT(MIR_TrapIf.mutate(P(p), IA32_TRAPIF,
9236 TrapIf.getGuardResult(P(p)),
9237 consumeMO(),
9238 TrapIf.getVal2(P(p)),
9239 COND(TrapIf.getCond(P(p))),
9240 TrapIf.getTCode(P(p))));
9241 }
9242 void code75(BURS_TreeNode p) {
9243 EMIT(MIR_TrapIf.mutate(P(p), IA32_TRAPIF,
9244 TrapIf.getGuardResult(P(p)),
9245 TrapIf.getVal1(P(p)),
9246 consumeMO(),
9247 COND(TrapIf.getCond(P(p))),
9248 TrapIf.getTCode(P(p))));
9249 }
9250 void code76(BURS_TreeNode p) {
9251 EMIT_Commutative(IA32_XOR, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)), IC(1));
9252 }
9253 void code77(BURS_TreeNode p) {
9254 EMIT_Commutative(IA32_XOR, P(p), MO_S(P(p), B), MO_S(P(p), B), IC(1));
9255 }
9256 void code78(BURS_TreeNode p) {
9257 EMIT_Commutative(IA32_XOR, P(p), MO_AS(P(p), B_S, B), MO_AS(P(p), B_S, B), IC(1));
9258 }
9259 void code79(BURS_TreeNode p) {
9260 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)),
9261 BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p)),
9262 BooleanCmp.getCond(P(p)));
9263 }
9264 void code80(BURS_TreeNode p) {
9265 pushCOND(BooleanCmp.getCond(P(p)));
9266 EMIT(MIR_Compare.mutate(P(p), IA32_CMP, BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p))));
9267 }
9268 void code81(BURS_TreeNode p) {
9269 EMIT(CPOS(P(p),MIR_Test.create(IA32_TEST, BooleanCmp.getVal1(P(p)), BooleanCmp.getVal1(P(p)).copy())));
9270 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getCond(P(p)));
9271 }
9272 void code82(BURS_TreeNode p) {
9273 pushCOND(BooleanCmp.getCond(P(p)));
9274 EMIT(CPOS(P(p),MIR_Test.create(IA32_TEST, BooleanCmp.getVal1(P(p)), BooleanCmp.getVal1(P(p)).copy())));
9275 }
9276 void code83(BURS_TreeNode p) {
9277 EMIT_Commutative(IA32_SHR, P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getVal1(P(p)), IC(31));
9278 }
9279 void code84(BURS_TreeNode p) {
9280 EMIT_Commutative(IA32_SHR, P(p), BooleanCmp.getResult(P(p)), consumeMO(), IC(31));
9281 }
9282 void code85(BURS_TreeNode p) {
9283 RegisterOperand result = BooleanCmp.getResult(P(p));
9284 EMIT_Commutative(IA32_SHR, P(p), result, BooleanCmp.getVal1(P(p)), IC(31));
9285 EMIT(CPOS(P(p),MIR_BinaryAcc.create(IA32_XOR, result.copyRO(), IC(1))));
9286 }
9287 void code86(BURS_TreeNode p) {
9288 RegisterOperand result = BooleanCmp.getResult(P(p));
9289 EMIT_Commutative(IA32_SHR, P(p), result, consumeMO(), IC(31));
9290 EMIT(CPOS(P(p),MIR_BinaryAcc.create(IA32_XOR, result.copyRO(), IC(1))));
9291 }
9292 void code87(BURS_TreeNode p) {
9293 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getCond(P(p)));
9294 }
9295 void code88(BURS_TreeNode p) {
9296 pushCOND(BooleanCmp.getCond(P(p)));
9297 }
9298 void code89(BURS_TreeNode p) {
9299 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getCond(P(p)));
9300 }
9301 void code90(BURS_TreeNode p) {
9302 pushCOND(BooleanCmp.getCond(P(p)));
9303 }
9304 void code91(BURS_TreeNode p) {
9305 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BIT_TEST(VR(p),BooleanCmp.getCond(P(p))));
9306 }
9307 void code92(BURS_TreeNode p) {
9308 pushCOND(BIT_TEST(VR(p),BooleanCmp.getCond(P(p))));
9309 }
9310 void code93(BURS_TreeNode p) {
9311 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), consumeCOND());
9312 }
9313 void code95(BURS_TreeNode p) {
9314 BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), consumeCOND().flipCode());
9315 }
9316 void code96(BURS_TreeNode p) {
9317 pushCOND(consumeCOND().flipCode()); // invert already pushed condition
9318 }
9319 void code97(BURS_TreeNode p) {
9320 BOOLEAN_CMP_INT(PL(p), BooleanCmp.getResult(P(p)),
9321 consumeMO(), BooleanCmp.getVal2(P(p)),
9322 BooleanCmp.getCond(P(p)));
9323 }
9324 void code98(BURS_TreeNode p) {
9325 pushCOND(BooleanCmp.getCond(P(p)));
9326 EMIT(MIR_Compare.mutate(PL(p), IA32_CMP, consumeMO(), BooleanCmp.getVal2(P(p))));
9327 }
9328 void code99(BURS_TreeNode p) {
9329 BOOLEAN_CMP_INT(PR(p), BooleanCmp.getResult(P(p)),
9330 BooleanCmp.getVal1(P(p)), consumeMO(),
9331 BooleanCmp.getCond(P(p)));
9332 }
9333 void code100(BURS_TreeNode p) {
9334 pushCOND(BooleanCmp.getCond(P(p)).flipOperands());
9335 EMIT(MIR_Compare.mutate(PR(p), IA32_CMP, consumeMO(), BooleanCmp.getVal1(P(p))));
9336 }
9337 void code101(BURS_TreeNode p) {
9338 EMIT(MIR_Set.mutate(P(p), IA32_SET__B, MO_S(P(p),B), COND(consumeCOND())));
9339 }
9340 void code102(BURS_TreeNode p) {
9341 EMIT(MIR_Set.mutate(P(p), IA32_SET__B, MO_AS(P(p),B_S,B), COND(consumeCOND())));
9342 }
9343 void code103(BURS_TreeNode p) {
9344 BOOLEAN_CMP_LONG(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p)), BooleanCmp.getCond(P(p)));
9345 }
9346 void code104(BURS_TreeNode p) {
9347 pushCOND(BooleanCmp.getCond(P(p)));
9348 LONG_CMP(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p)));
9349 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, BooleanCmp.getResult(P(p)), IC(0))));
9350 }
9351 void code105(BURS_TreeNode p) {
9352 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, CondMove.getVal1(P(p)), CondMove.getVal2(P(p)))));
9353 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
9354 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9355 }
9356 void code106(BURS_TreeNode p) {
9357 EMIT(CPOS(P(p), MIR_Test.create(IA32_TEST, CondMove.getVal1(P(p)), CondMove.getVal1(P(p)).copy())));
9358 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
9359 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9360 }
9361 void code107(BURS_TreeNode p) {
9362 EMIT_Commutative(IA32_SAR, P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), IC(31));
9363 }
9364 void code108(BURS_TreeNode p) {
9365 EMIT_Commutative(IA32_SAR, P(p), CondMove.getResult(P(p)), consumeMO(), IC(31));
9366 }
9367 void code109(BURS_TreeNode p) {
9368 RegisterOperand result = CondMove.getResult(P(p));
9369 EMIT_Commutative(IA32_SAR, P(p), result, CondMove.getVal1(P(p)), IC(31));
9370 EMIT(CPOS(P(p),MIR_UnaryAcc.create(IA32_NOT, result.copyRO())));
9371 }
9372 void code110(BURS_TreeNode p) {
9373 RegisterOperand result = CondMove.getResult(P(p));
9374 EMIT_Commutative(IA32_SAR, P(p), result, consumeMO(), IC(31));
9375 EMIT(CPOS(P(p),MIR_UnaryAcc.create(IA32_NOT, result.copyRO())));
9376 }
9377 void code111(BURS_TreeNode p) {
9378 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p)))));
9379 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
9380 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9381 }
9382 void code112(BURS_TreeNode p) {
9383 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p)))));
9384 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
9385 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9386 }
9387 void code113(BURS_TreeNode p) {
9388 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p)))));
9389 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
9390 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9391 }
9392 void code114(BURS_TreeNode p) {
9393 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p)))));
9394 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
9395 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9396 }
9397 void code115(BURS_TreeNode p) {
9398 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p)))));
9399 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
9400 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9401 }
9402 void code116(BURS_TreeNode p) {
9403 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal1(P(p)))));
9404 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).flipOperands(),
9405 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9406 }
9407 void code117(BURS_TreeNode p) {
9408 CMOV_MOV(P(p), CondMove.getResult(P(p)), consumeCOND(),
9409 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9410 }
9411 void code118(BURS_TreeNode p) {
9412 CMOV_MOV(P(p), CondMove.getResult(P(p)), consumeCOND().flipCode(),
9413 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9414 }
9415 void code119(BURS_TreeNode p) {
9416 CMOV_MOV(P(p), CondMove.getResult(P(p)), BIT_TEST(VRL(p), CondMove.getCond(P(p))),
9417 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9418 }
9419 void code120(BURS_TreeNode p) {
9420 CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
9421 CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9422 }
9423 void code121(BURS_TreeNode 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 code122(BURS_TreeNode p) {
9428 LCMP_CMOV(P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), CondMove.getVal2(P(p)),
9429 CondMove.getCond(P(p)), CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
9430 }
9431 void code123(BURS_TreeNode p) {
9432 EMIT_Commutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9433 }
9434 void code124(BURS_TreeNode p) {
9435 if (Binary.getVal2(P(p)).isIntConstant()) {
9436 pushAddress(R(Binary.getVal1(P(p))), null, B_S, Offset.fromIntSignExtend(VR(p)));
9437 } else {
9438 pushAddress(R(Binary.getVal1(P(p))), R(Binary.getVal2(P(p))), B_S, Offset.zero());
9439 }
9440 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
9441 }
9442 void code125(BURS_TreeNode p) {
9443 EMIT_Commutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
9444 }
9445 void code126(BURS_TreeNode p) {
9446 EMIT_Commutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO());
9447 }
9448 void code127(BURS_TreeNode p) {
9449 EMIT_Commutative(IA32_ADD, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p)));
9450 }
9451 void code128(BURS_TreeNode p) {
9452 EMIT_Commutative(IA32_ADD, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p)));
9453 }
9454 void code129(BURS_TreeNode p) {
9455 EMIT_Commutative(IA32_ADD, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)));
9456 }
9457 void code130(BURS_TreeNode p) {
9458 EMIT_Commutative(IA32_ADD, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p)));
9459 }
9460 void code131(BURS_TreeNode p) {
9461 EMIT_NonCommutative(IA32_SUB, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9462 }
9463 void code132(BURS_TreeNode p) {
9464 EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, Binary.getResult(P(p)))));
9465 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, Binary.getResult(P(p)), Binary.getVal1(P(p))));
9466 }
9467 void code133(BURS_TreeNode p) {
9468 EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, Binary.getResult(P(p)))));
9469 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, Binary.getResult(P(p)), consumeMO()));
9470 }
9471 void code134(BURS_TreeNode p) {
9472 EMIT_NonCommutative(IA32_SUB, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
9473 }
9474 void code135(BURS_TreeNode p) {
9475 EMIT_NonCommutative(IA32_SUB, P(p), Binary.getResult(P(p)), consumeMO(), Binary.getVal2(P(p)));
9476 }
9477 void code136(BURS_TreeNode p) {
9478 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SUB, MO_S(P(p), DW), Binary.getVal2(PL(p))));
9479 }
9480 void code137(BURS_TreeNode p) {
9481 MemoryOperand result = MO_S(P(p), DW);
9482 EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, result)));
9483 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, result.copy(), Binary.getVal1(PL(p))));
9484 }
9485 void code138(BURS_TreeNode p) {
9486 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SUB, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p))));
9487 }
9488 void code139(BURS_TreeNode p) {
9489 MemoryOperand result = MO_AS(P(p), DW_S, DW);
9490 EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, result)));
9491 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, result.copy(), Binary.getVal1(PL(p))));
9492 }
9493 void code140(BURS_TreeNode p) {
9494 EMIT_Commutative(IA32_IMUL2, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9495 }
9496 void code141(BURS_TreeNode p) {
9497 EMIT_Commutative(IA32_IMUL2, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
9498 }
9499 void code142(BURS_TreeNode p) {
9500 EMIT_Commutative(IA32_IMUL2, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO());
9501 }
9502 void code143(BURS_TreeNode p) {
9503 INT_DIVIDES(P(p), GuardedBinary.getResult(P(p)), GuardedBinary.getVal1(P(p)),
9504 GuardedBinary.getVal2(P(p)), true);
9505 }
9506 void code144(BURS_TreeNode p) {
9507 INT_DIVIDES(P(p), GuardedBinary.getResult(P(p)), GuardedBinary.getVal1(P(p)),
9508 consumeMO(), true);
9509 }
9510 void code145(BURS_TreeNode p) {
9511 INT_DIVIDES(P(p), GuardedBinary.getResult(P(p)), GuardedBinary.getVal1(P(p)),
9512 GuardedBinary.getVal2(P(p)), false);
9513 }
9514 void code146(BURS_TreeNode p) {
9515 INT_DIVIDES(P(p), GuardedBinary.getResult(P(p)), GuardedBinary.getVal1(P(p)),
9516 consumeMO(), false);
9517 }
9518 void code147(BURS_TreeNode p) {
9519 EMIT_Unary(IA32_NEG, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
9520 }
9521 void code148(BURS_TreeNode p) {
9522 EMIT_Unary(IA32_NEG, P(p), MO_S(P(p), DW), MO_S(P(p), DW));
9523 }
9524 void code149(BURS_TreeNode p) {
9525 EMIT_Unary(IA32_NEG, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW));
9526 }
9527 void code150(BURS_TreeNode p) {
9528 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PR(p)))));
9529 EMIT_NonCommutative(IA32_SHL, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int));
9530 }
9531 void code151(BURS_TreeNode p) {
9532 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal2(P(p)))));
9533 EMIT_NonCommutative(IA32_SHL, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int));
9534 }
9535 void code152(BURS_TreeNode p) {
9536 if (VM.VerifyAssertions) VM._assert((VR(p) & 0x7FFFFFFF) <= 31); if(Binary.getVal2(P(p)).asIntConstant().value == 1) {
9537 EMIT_NonCommutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(P(p)).copy());
9538 } else {
9539 EMIT_NonCommutative(IA32_SHL, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9540 }
9541 }
9542 void code153(BURS_TreeNode p) {
9543 pushAddress(null, Binary.getVal1(P(p)).asRegister(), LEA_SHIFT(Binary.getVal2(P(p))), Offset.zero());
9544 EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
9545 }
9546 void code154(BURS_TreeNode p) {
9547 EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)), IC(0xffffffff << VR(p)));
9548 }
9549 void code155(BURS_TreeNode p) {
9550 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p)))));
9551 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_S(P(p), DW), new RegisterOperand(getECX(), TypeReference.Int)));
9552 }
9553 void code156(BURS_TreeNode p) {
9554 if (VM.VerifyAssertions) VM._assert((VLR(p) & 0x7FFFFFFF) <= 31);
9555 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_S(P(p), DW), Binary.getVal2(PL(p))));
9556 }
9557 void code157(BURS_TreeNode p) {
9558 EMIT(MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p))));
9559 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_AS(P(p), DW_S, DW), new RegisterOperand(getECX(), TypeReference.Int)));
9560 }
9561 void code158(BURS_TreeNode p) {
9562 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p))));
9563 }
9564 void code159(BURS_TreeNode p) {
9565 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PR(p)))));
9566 EMIT_NonCommutative(IA32_SAR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int));
9567 }
9568 void code160(BURS_TreeNode p) {
9569 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal2(P(p)))));
9570 EMIT_NonCommutative(IA32_SAR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int));
9571 }
9572 void code161(BURS_TreeNode p) {
9573 if (VM.VerifyAssertions) VM._assert((VR(p) & 0x7FFFFFFF) <= 31);
9574 EMIT_NonCommutative(IA32_SAR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9575 }
9576 void code162(BURS_TreeNode p) {
9577 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p)))));
9578 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_S(P(p), DW), new RegisterOperand(getECX(), TypeReference.Int)));
9579 }
9580 void code163(BURS_TreeNode p) {
9581 if (VM.VerifyAssertions) VM._assert((VLR(p) & 0x7FFFFFFF) <= 31);
9582 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_S(P(p), DW), Binary.getVal2(PL(p))));
9583 }
9584 void code164(BURS_TreeNode p) {
9585 EMIT(MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p))));
9586 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_AS(P(p), DW_S, DW), new RegisterOperand(getECX(), TypeReference.Int)));
9587 }
9588 void code165(BURS_TreeNode p) {
9589 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p))));
9590 }
9591 void code166(BURS_TreeNode p) {
9592 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PR(p)))));
9593 EMIT_NonCommutative(IA32_SHR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int));
9594 }
9595 void code167(BURS_TreeNode p) {
9596 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal2(P(p)))));
9597 EMIT_NonCommutative(IA32_SHR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new RegisterOperand(getECX(), TypeReference.Int));
9598 }
9599 void code168(BURS_TreeNode p) {
9600 if (VM.VerifyAssertions) VM._assert((VR(p) & 0x7FFFFFFF) <= 31);
9601 EMIT_NonCommutative(IA32_SHR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9602 }
9603 void code169(BURS_TreeNode p) {
9604 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p)))));
9605 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_S(P(p), DW), new RegisterOperand(getECX(), TypeReference.Int)));
9606 }
9607 void code170(BURS_TreeNode p) {
9608 if (VM.VerifyAssertions) VM._assert((VLR(p) & 0x7FFFFFFF) <= 31);
9609 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_S(P(p), DW), Binary.getVal2(PL(p))));
9610 }
9611 void code171(BURS_TreeNode p) {
9612 EMIT(MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p))));
9613 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_AS(P(p), DW_S, DW), new RegisterOperand(getECX(), TypeReference.Int)));
9614 }
9615 void code172(BURS_TreeNode p) {
9616 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p))));
9617 }
9618 void code173(BURS_TreeNode p) {
9619 EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(VLR(p)&0x1f));
9620 }
9621 void code174(BURS_TreeNode p) {
9622 EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(VRR(p)&0x1f));
9623 }
9624 void code175(BURS_TreeNode p) {
9625 EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(1));
9626 }
9627 void code176(BURS_TreeNode p) {
9628 EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(1));
9629 }
9630 void code177(BURS_TreeNode p) {
9631 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p)))));
9632 EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new RegisterOperand(getECX(), TypeReference.Int));
9633 }
9634 void code178(BURS_TreeNode p) {
9635 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PRR(p)))));
9636 EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new RegisterOperand(getECX(), TypeReference.Int));
9637 }
9638 void code179(BURS_TreeNode p) {
9639 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PRR(p)))));
9640 EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new RegisterOperand(getECX(), TypeReference.Int));
9641 }
9642 void code180(BURS_TreeNode p) {
9643 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(getECX(), TypeReference.Int), Binary.getVal1(PLR(p)))));
9644 EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new RegisterOperand(getECX(), TypeReference.Int));
9645 }
9646 void code181(BURS_TreeNode p) {
9647 EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9648 }
9649 void code182(BURS_TreeNode p) {
9650 EMIT(MIR_Test.mutate(P(p), IA32_TEST, Binary.getVal1(P(p)), Binary.getVal2(P(p))));
9651 }
9652 void code183(BURS_TreeNode p) {
9653 EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
9654 }
9655 void code184(BURS_TreeNode p) {
9656 EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO());
9657 }
9658 void code185(BURS_TreeNode p) {
9659 EMIT(MIR_Test.mutate(P(p), IA32_TEST, consumeMO(), Binary.getVal2(P(p))));
9660 }
9661 void code186(BURS_TreeNode p) {
9662 EMIT(MIR_Test.mutate(P(p), IA32_TEST, consumeMO(), Binary.getVal1(P(p))));
9663 }
9664 void code187(BURS_TreeNode p) {
9665 EMIT_Commutative(IA32_AND, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p)) );
9666 }
9667 void code188(BURS_TreeNode p) {
9668 EMIT_Commutative(IA32_AND, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p)) );
9669 }
9670 void code189(BURS_TreeNode p) {
9671 EMIT_Commutative(IA32_AND, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)) );
9672 }
9673 void code190(BURS_TreeNode p) {
9674 EMIT_Commutative(IA32_AND, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p)) );
9675 }
9676 void code191(BURS_TreeNode p) {
9677 EMIT_Commutative(IA32_OR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9678 }
9679 void code192(BURS_TreeNode p) {
9680 EMIT_Commutative(IA32_OR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO() );
9681 }
9682 void code193(BURS_TreeNode p) {
9683 EMIT_Commutative(IA32_OR, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO() );
9684 }
9685 void code194(BURS_TreeNode p) {
9686 EMIT_Commutative(IA32_OR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p)) );
9687 }
9688 void code195(BURS_TreeNode p) {
9689 EMIT_Commutative(IA32_OR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p)) );
9690 }
9691 void code196(BURS_TreeNode p) {
9692 EMIT_Commutative(IA32_OR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)) );
9693 }
9694 void code197(BURS_TreeNode p) {
9695 EMIT_Commutative(IA32_OR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p)) );
9696 }
9697 void code198(BURS_TreeNode p) {
9698 EMIT_Commutative(IA32_XOR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9699 }
9700 void code199(BURS_TreeNode p) {
9701 EMIT_Commutative(IA32_XOR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO() );
9702 }
9703 void code200(BURS_TreeNode p) {
9704 EMIT_Commutative(IA32_XOR, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO() );
9705 }
9706 void code201(BURS_TreeNode p) {
9707 EMIT_Commutative(IA32_XOR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p)) );
9708 }
9709 void code202(BURS_TreeNode p) {
9710 EMIT_Commutative(IA32_XOR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p)) );
9711 }
9712 void code203(BURS_TreeNode p) {
9713 EMIT_Commutative(IA32_XOR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)) );
9714 }
9715 void code204(BURS_TreeNode p) {
9716 EMIT_Commutative(IA32_XOR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p)) );
9717 }
9718 void code205(BURS_TreeNode p) {
9719 EMIT_Unary(IA32_NOT, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
9720 }
9721 void code206(BURS_TreeNode p) {
9722 EMIT_Unary(IA32_NOT, P(p), MO_S(P(p), DW), MO_S(P(p), DW));
9723 }
9724 void code207(BURS_TreeNode p) {
9725 EMIT_Unary(IA32_NOT, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW));
9726 }
9727 void code208(BURS_TreeNode p) {
9728 LONG_ADD(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9729 }
9730 void code209(BURS_TreeNode p) {
9731 LONG_SUB(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9732 }
9733 void code210(BURS_TreeNode p) {
9734 LONG_MUL(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9735 }
9736 void code211(BURS_TreeNode p) {
9737 LONG_NEG(P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
9738 }
9739 void code212(BURS_TreeNode p) {
9740 LONG_SHL(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)), false);
9741 }
9742 void code213(BURS_TreeNode p) {
9743 if (VM.VerifyAssertions) VM._assert((VRR(p) & 0x7FFFFFFF) <= 63);
9744 LONG_SHL(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(PR(p)), true);
9745 }
9746 void code214(BURS_TreeNode p) {
9747 LONG_SHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)), false);
9748 }
9749 void code215(BURS_TreeNode p) {
9750 if (VM.VerifyAssertions) VM._assert((VRR(p) & 0x7FFFFFFF) <= 63);
9751 LONG_SHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(PR(p)), true);
9752 }
9753 void code216(BURS_TreeNode p) {
9754 LONG_USHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)), false);
9755 }
9756 void code217(BURS_TreeNode p) {
9757 if (VM.VerifyAssertions) VM._assert((VRR(p) & 0x7FFFFFFF) <= 63);
9758 LONG_USHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(PR(p)), true);
9759 }
9760 void code218(BURS_TreeNode p) {
9761 LONG_AND(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9762 }
9763 void code219(BURS_TreeNode p) {
9764 LONG_OR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9765 }
9766 void code220(BURS_TreeNode p) {
9767 LONG_XOR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
9768 }
9769 void code221(BURS_TreeNode p) {
9770 LONG_NOT(P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
9771 }
9772 void code222(BURS_TreeNode p) {
9773 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Unary.getResult(P(p)), Unary.getVal(P(p))));
9774 }
9775 void code223(BURS_TreeNode p) {
9776 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Unary.getResult(P(p)), consumeMO()));
9777 }
9778 void code224(BURS_TreeNode p) {
9779 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), B), Unary.getVal(PL(p))));
9780 }
9781 void code225(BURS_TreeNode p) {
9782 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), B_S, B), Unary.getVal(PL(p))));
9783 }
9784 void code226(BURS_TreeNode p) {
9785 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, Unary.getResult(P(p)), Unary.getVal(P(p)))));
9786 EMIT(MIR_BinaryAcc.mutate(P(p), IA32_AND, Unary.getResult(P(p)).copyRO(), IC(0xFFFF)));
9787 }
9788 void code227(BURS_TreeNode p) {
9789 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Unary.getResult(P(p)), setSize(consumeMO(),2)));
9790 }
9791 void code228(BURS_TreeNode p) {
9792 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), Unary.getVal(PL(p))));
9793 }
9794 void code229(BURS_TreeNode p) {
9795 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), Unary.getVal(PL(p))));
9796 }
9797 void code230(BURS_TreeNode p) {
9798 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Unary.getResult(P(p)), Unary.getVal(P(p))));
9799 }
9800 void code231(BURS_TreeNode p) {
9801 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Unary.getResult(P(p)), consumeMO()));
9802 }
9803 void code232(BURS_TreeNode p) {
9804 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), Unary.getVal(PL(p))));
9805 }
9806 void code233(BURS_TreeNode p) {
9807 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), Unary.getVal(PL(p))));
9808 }
9809 void code234(BURS_TreeNode p) {
9810 INT_2LONG(P(p), Unary.getResult(P(p)), Unary.getVal(P(p)), true);
9811 }
9812 void code235(BURS_TreeNode p) {
9813 INT_2LONG(P(p), Unary.getResult(P(p)), consumeMO(), true);
9814 }
9815 void code236(BURS_TreeNode p) {
9816 INT_2LONG(P(p), Binary.getResult(P(p)), Unary.getVal(PL(p)), false);
9817 }
9818 void code237(BURS_TreeNode p) {
9819 INT_2LONG(P(p), Binary.getResult(P(p)), consumeMO(), false);
9820 }
9821 void code238(BURS_TreeNode p) {
9822 Register hr = Binary.getResult(P(p)).getRegister();
9823 Register lr = regpool.getSecondReg(hr);
9824 EMIT(MIR_Move.mutate(P(p), IA32_MOV, new RegisterOperand(hr, TypeReference.Int), Unary.getVal(PL(p)).copy()));
9825 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(lr, TypeReference.Int), IC(0))));
9826 }
9827 void code239(BURS_TreeNode p) {
9828 Register hr = Binary.getResult(P(p)).getRegister();
9829 Register lr = regpool.getSecondReg(hr);
9830 EMIT(MIR_Move.mutate(P(p), IA32_MOV, new RegisterOperand(hr, TypeReference.Int), setSize(consumeMO(),4)));
9831 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(lr, TypeReference.Int), IC(0))));
9832 }
9833 void code240(BURS_TreeNode p) {
9834 INT_2LONG(P(p), Unary.getResult(P(p)), Unary.getVal(P(p)), false);
9835 }
9836 void code241(BURS_TreeNode p) {
9837 INT_2LONG(P(p), Unary.getResult(P(p)), consumeMO(), false);
9838 }
9839 void code242(BURS_TreeNode p) {
9840 Register lh = regpool.getSecondReg(R(Unary.getVal(P(p))).getRegister());
9841 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), new RegisterOperand(lh, TypeReference.Int)));
9842 }
9843 void code243(BURS_TreeNode p) {
9844 Register lh = regpool.getSecondReg(R(Unary.getVal(PL(p))).getRegister());
9845 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), new RegisterOperand(lh, TypeReference.Int)));
9846 }
9847 void code244(BURS_TreeNode p) {
9848 Register lh = regpool.getSecondReg(R(Unary.getVal(PL(p))).getRegister());
9849 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), DW_S, DW), new RegisterOperand(lh, TypeReference.Int)));
9850 }
9851 void code245(BURS_TreeNode p) {
9852 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), setSize(consumeMO(),4)));
9853 }
9854 void code246(BURS_TreeNode p) {
9855 Register uh = Binary.getVal1(PL(p)).asRegister().getRegister();
9856 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), new RegisterOperand(uh, TypeReference.Int)));
9857 }
9858 void code247(BURS_TreeNode p) {
9859 Register uh = Binary.getVal1(PL(p)).asRegister().getRegister();
9860 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), new RegisterOperand(uh, TypeReference.Int)));
9861 }
9862 void code248(BURS_TreeNode p) {
9863 MemoryOperand mo = consumeMO();
9864 mo.disp = mo.disp.plus(4);
9865 mo = setSize(mo,4);
9866 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), mo));
9867 }
9868 void code249(BURS_TreeNode p) {
9869 MemoryOperand mo = consumeMO();
9870 mo.disp = mo.disp.plus(4);
9871 mo = setSize(mo,4);
9872 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), mo));
9873 }
9874 void code250(BURS_TreeNode p) {
9875 MemoryOperand mo = consumeMO();
9876 mo.disp = mo.disp.plus(4);
9877 mo = setSize(mo,4);
9878 pushMO(mo);
9879 }
9880 void code251(BURS_TreeNode p) {
9881 MemoryOperand mo = consumeMO();
9882 mo.disp = mo.disp.plus(4);
9883 mo = setSize(mo,4);
9884 pushMO(mo);
9885 }
9886 void code252(BURS_TreeNode p) {
9887 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Move.getResult(P(p)), Move.getVal(P(p))));
9888 }
9889 void code253(BURS_TreeNode p) {
9890 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Move.getResult(P(p)), Move.getVal(P(p))));
9891 }
9892 void code255(BURS_TreeNode p) {
9893 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Move.getResult(P(p)), Move.getVal(P(p))));
9894 }
9895 void code268(BURS_TreeNode p) {
9896 Register res1 = Move.getResult(P(p)).getRegister();
9897 Register res2 = regpool.getSecondReg(res1);
9898 Register val1 = Move.getVal(P(p)).asRegister().getRegister();
9899 Register val2 = regpool.getSecondReg(val1);
9900 EMIT(MIR_Move.mutate(P(p), IA32_MOV, new RegisterOperand(res1, TypeReference.Int),
9901 new RegisterOperand(val1, TypeReference.Int)));
9902 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(res2, TypeReference.Int),
9903 new RegisterOperand(val2, TypeReference.Int))));
9904 }
9905 void code269(BURS_TreeNode p) {
9906 Register res1 = Move.getResult(P(p)).getRegister();
9907 Register res2 = regpool.getSecondReg(res1);
9908 LongConstantOperand val = LC(Move.getVal(P(p)));
9909 EMIT(MIR_Move.mutate(P(p), IA32_MOV, new RegisterOperand(res1, TypeReference.Int), IC(val.upper32())));
9910 EMIT(CPOS(P(p),MIR_Move.create(IA32_MOV, new RegisterOperand(res2, TypeReference.Int), IC(val.lower32()))));
9911 }
9912 void code270(BURS_TreeNode p) {
9913 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Nullary.getResult(P(p)), new RegisterOperand(getESI(), TypeReference.Int)));
9914 }
9915 void code271(BURS_TreeNode p) {
9916 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Load.getResult(P(p)), MO_L(P(p), B)));
9917 }
9918 void code272(BURS_TreeNode p) {
9919 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, ALoad.getResult(P(p)), MO_AL(P(p), B_S, B)));
9920 }
9921 void code273(BURS_TreeNode p) {
9922 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, Load.getResult(P(p)), MO_L(P(p), B)));
9923 }
9924 void code274(BURS_TreeNode p) {
9925 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, ALoad.getResult(P(p)), MO_AL(P(p), B_S, B)));
9926 }
9927 void code275(BURS_TreeNode p) {
9928 pushMO(setSize(consumeMO(),1));
9929 }
9930 void code276(BURS_TreeNode p) {
9931 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, Binary.getResult(P(p)), setSize(consumeMO(),1)));
9932 }
9933 void code277(BURS_TreeNode p) {
9934 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Unary.getResult(P(p)), setSize(consumeMO(),1)));
9935 }
9936 void code278(BURS_TreeNode p) {
9937 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, Binary.getResult(P(p)), setSize(consumeMO(),1)));
9938 }
9939 void code279(BURS_TreeNode p) {
9940 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Load.getResult(P(p)), MO_L(P(p), W)));
9941 }
9942 void code280(BURS_TreeNode p) {
9943 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, ALoad.getResult(P(p)), MO_AL(P(p), W_S, W)));
9944 }
9945 void code281(BURS_TreeNode p) {
9946 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Load.getResult(P(p)), MO_L(P(p), W)));
9947 }
9948 void code282(BURS_TreeNode p) {
9949 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, ALoad.getResult(P(p)), MO_AL(P(p), W_S, W)));
9950 }
9951 void code283(BURS_TreeNode p) {
9952 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Binary.getResult(P(p)), setSize(consumeMO(),2)));
9953 }
9954 void code284(BURS_TreeNode p) {
9955 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Unary.getResult(P(p)), setSize(consumeMO(),2)));
9956 }
9957 void code285(BURS_TreeNode p) {
9958 EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Unary.getResult(P(p)), setSize(consumeMO(),2)));
9959 }
9960 void code286(BURS_TreeNode p) {
9961 EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Binary.getResult(P(p)), setSize(consumeMO(),2)));
9962 }
9963 void code287(BURS_TreeNode p) {
9964 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)), MO_L(P(p), DW)));
9965 }
9966 void code288(BURS_TreeNode p) {
9967 augmentAddress(Load.getAddress(P(p)));
9968 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)),
9969 consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p)))));
9970 }
9971 void code289(BURS_TreeNode p) {
9972 augmentAddress(Load.getOffset(P(p)));
9973 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)),
9974 consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p)))));
9975 }
9976 void code290(BURS_TreeNode p) {
9977 combineAddresses();
9978 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)),
9979 consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p)))));
9980 }
9981 void code291(BURS_TreeNode p) {
9982 combineAddresses();
9983 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)),
9984 consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p)))));
9985 }
9986 void code292(BURS_TreeNode p) {
9987 augmentAddress(Load.getOffset(P(p)));
9988 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)),
9989 consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p)))));
9990 }
9991 void code293(BURS_TreeNode p) {
9992 EMIT(MIR_Move.mutate(P(p), IA32_MOV, ALoad.getResult(P(p)), MO_AL(P(p), DW_S, DW)));
9993 }
9994 void code294(BURS_TreeNode p) {
9995 RegisterOperand hres = Load.getResult(P(p));
9996 RegisterOperand lres = new RegisterOperand(regpool.getSecondReg(hres.getRegister()), TypeReference.Int);
9997 hres.setType(TypeReference.Int);
9998 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, hres, MO_L(P(p), DW, DW).copy())));
9999 EMIT(MIR_Move.mutate(P(p), IA32_MOV, lres, MO_L(P(p), DW)));
10000 }
10001 void code295(BURS_TreeNode p) {
10002 RegisterOperand hres = ALoad.getResult(P(p));
10003 RegisterOperand lres = new RegisterOperand(regpool.getSecondReg(hres.getRegister()), TypeReference.Int);
10004 hres.setType(TypeReference.Int);
10005 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, hres, MO_AL(P(p), QW_S, DW, DW).copy())));
10006 EMIT(MIR_Move.mutate(P(p), IA32_MOV, lres, MO_AL(P(p), QW_S, DW)));
10007 }
10008 void code296(BURS_TreeNode p) {
10009 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
10010 MO(Prepare.getAddress(P(p)), Prepare.getOffset(P(p)), DW,
10011 Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
10012 }
10013 void code297(BURS_TreeNode p) {
10014 augmentAddress(Prepare.getAddress(P(p)));
10015 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
10016 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
10017 }
10018 void code298(BURS_TreeNode p) {
10019 augmentAddress(Prepare.getOffset(P(p)));
10020 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
10021 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
10022 }
10023 void code299(BURS_TreeNode p) {
10024 combineAddresses();
10025 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
10026 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
10027 }
10028 void code300(BURS_TreeNode p) {
10029 combineAddresses();
10030 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
10031 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
10032 }
10033 void code301(BURS_TreeNode p) {
10034 augmentAddress(Prepare.getOffset(P(p)));
10035 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
10036 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
10037 }
10038 void code302(BURS_TreeNode p) {
10039 augmentAddress(Prepare.getAddress(P(p)));
10040 EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
10041 consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
10042 }
10043 void code303(BURS_TreeNode p) {
10044 RegisterOperand hres = Prepare.getResult(P(p));
10045 hres.setType(TypeReference.Int);
10046 MemoryOperand hmo = MO(Prepare.getAddress(P(p)), Prepare.getOffset(P(p)), DW,
10047 Prepare.getLocation(P(p)), Prepare.getGuard(P(p)), DW);
10048 RegisterOperand lres = new RegisterOperand(regpool.getSecondReg(hres.getRegister()), TypeReference.Int);
10049 MemoryOperand lmo = MO(Prepare.getAddress(P(p)) != null ? Prepare.getAddress(P(p)).copy() : null,
10050 Prepare.getOffset(P(p)) != null ? Prepare.getOffset(P(p)).copy() : null,
10051 DW,
10052 Prepare.getLocation(P(p)) != null ? (LocationOperand)Prepare.getLocation(P(p)).copy() : null,
10053 Prepare.getGuard(P(p)) != null ? Prepare.getGuard(P(p)).copy() : null);
10054 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, hres, hmo)));
10055 EMIT(MIR_Move.mutate(P(p), IA32_MOV, lres, lmo));
10056 }
10057 void code304(BURS_TreeNode p) {
10058 ATTEMPT(Attempt.getResult(P(p)),
10059 MO(Attempt.getAddress(P(p)), Attempt.getOffset(P(p)), DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
10060 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
10061 }
10062 void code305(BURS_TreeNode p) {
10063 augmentAddress(Attempt.getAddress(P(p)));
10064 ATTEMPT(Attempt.getResult(P(p)),
10065 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
10066 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
10067 }
10068 void code306(BURS_TreeNode p) {
10069 augmentAddress(Attempt.getOffset(P(p)));
10070 ATTEMPT(Attempt.getResult(P(p)),
10071 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
10072 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
10073 }
10074 void code307(BURS_TreeNode p) {
10075 combineAddresses();
10076 ATTEMPT(Attempt.getResult(P(p)),
10077 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
10078 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
10079 }
10080 void code308(BURS_TreeNode p) {
10081 combineAddresses();
10082 ATTEMPT(Attempt.getResult(P(p)),
10083 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
10084 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
10085 }
10086 void code309(BURS_TreeNode p) {
10087 augmentAddress(Attempt.getOffset(P(p)));
10088 ATTEMPT(Attempt.getResult(P(p)),
10089 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
10090 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
10091 }
10092 void code310(BURS_TreeNode p) {
10093 augmentAddress(Attempt.getAddress(P(p)));
10094 ATTEMPT(Attempt.getResult(P(p)),
10095 consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
10096 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
10097 }
10098 void code311(BURS_TreeNode p) {
10099 ATTEMPT_IFCMP(MO(Attempt.getAddress(PL(p)), Attempt.getOffset(PL(p)), DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
10100 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
10101 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10102 }
10103 void code312(BURS_TreeNode p) {
10104 augmentAddress(Attempt.getAddress(PL(p)));
10105 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
10106 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
10107 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10108 }
10109 void code313(BURS_TreeNode p) {
10110 augmentAddress(Attempt.getOffset(PL(p)));
10111 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
10112 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
10113 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10114 }
10115 void code314(BURS_TreeNode p) {
10116 combineAddresses();
10117 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
10118 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
10119 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10120 }
10121 void code315(BURS_TreeNode p) {
10122 combineAddresses();
10123 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
10124 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
10125 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10126 }
10127 void code316(BURS_TreeNode p) {
10128 augmentAddress(Attempt.getOffset(PL(p)));
10129 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
10130 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
10131 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10132 }
10133 void code317(BURS_TreeNode p) {
10134 augmentAddress(Attempt.getAddress(PL(p)));
10135 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
10136 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
10137 IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10138 }
10139 void code318(BURS_TreeNode p) {
10140 ATTEMPT_IFCMP(MO(Attempt.getAddress(PL(p)), Attempt.getOffset(PL(p)), DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
10141 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
10142 IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10143 }
10144 void code319(BURS_TreeNode p) {
10145 augmentAddress(Attempt.getAddress(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)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10149 }
10150 void code320(BURS_TreeNode p) {
10151 augmentAddress(Attempt.getOffset(PL(p)));
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)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10155 }
10156 void code321(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)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10161 }
10162 void code322(BURS_TreeNode p) {
10163 combineAddresses();
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)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10167 }
10168 void code323(BURS_TreeNode p) {
10169 augmentAddress(Attempt.getOffset(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)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10173 }
10174 void code324(BURS_TreeNode p) {
10175 augmentAddress(Attempt.getAddress(PL(p)));
10176 ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
10177 Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
10178 IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
10179 }
10180 void code325(BURS_TreeNode p) {
10181 ATTEMPT_LONG(Attempt.getResult(P(p)),
10182 MO(Attempt.getAddress(P(p)), Attempt.getOffset(P(p)), DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
10183 Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
10184 }
10185 void code326(BURS_TreeNode p) {
10186 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), B), Store.getValue(P(p))));
10187 }
10188 void code327(BURS_TreeNode p) {
10189 Register tmp = regpool.getInteger();
10190 EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), consumeMO())));
10191 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), B), new RegisterOperand(tmp, TypeReference.Int)));
10192 }
10193 void code328(BURS_TreeNode p) {
10194 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), B_S, B), AStore.getValue(P(p))));
10195 }
10196 void code329(BURS_TreeNode p) {
10197 Register tmp = regpool.getInteger();
10198 EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), consumeMO())));
10199 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), B_S, B), new RegisterOperand(tmp, TypeReference.Int)));
10200 }
10201 void code330(BURS_TreeNode p) {
10202 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), Store.getValue(P(p))));
10203 }
10204 void code331(BURS_TreeNode p) {
10205 Register tmp = regpool.getInteger();
10206 EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), consumeMO())));
10207 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), new RegisterOperand(tmp, TypeReference.Int)));
10208 }
10209 void code332(BURS_TreeNode p) {
10210 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), AStore.getValue(P(p))));
10211 }
10212 void code333(BURS_TreeNode p) {
10213 Register tmp = regpool.getInteger();
10214 EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), consumeMO())));
10215 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), new RegisterOperand(tmp, TypeReference.Int)));
10216 }
10217 void code334(BURS_TreeNode p) {
10218 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), Store.getValue(P(p))));
10219 }
10220 void code335(BURS_TreeNode p) {
10221 augmentAddress(Store.getAddress(P(p)));
10222 EMIT(MIR_Move.mutate(P(p), IA32_MOV,
10223 consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))),
10224 Store.getValue(P(p))));
10225 }
10226 void code336(BURS_TreeNode p) {
10227 augmentAddress(Store.getOffset(P(p)));
10228 EMIT(MIR_Move.mutate(P(p), IA32_MOV,
10229 consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))),
10230 Store.getValue(P(p))));
10231 }
10232 void code337(BURS_TreeNode p) {
10233 combineAddresses();
10234 EMIT(MIR_Move.mutate(P(p), IA32_MOV,
10235 consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))),
10236 Store.getValue(P(p))));
10237 }
10238 void code338(BURS_TreeNode p) {
10239 combineAddresses();
10240 EMIT(MIR_Move.mutate(P(p), IA32_MOV,
10241 consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))),
10242 Store.getValue(P(p))));
10243 }
10244 void code339(BURS_TreeNode p) {
10245 augmentAddress(Store.getOffset(P(p)));
10246 EMIT(MIR_Move.mutate(P(p), IA32_MOV,
10247 consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))),
10248 Store.getValue(P(p))));
10249 }
10250 void code340(BURS_TreeNode p) {
10251 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), DW_S, DW), AStore.getValue(P(p))));
10252 }
10253 void code341(BURS_TreeNode p) {
10254 RegisterOperand hval = (RegisterOperand)Store.getValue(P(p));
10255 hval.setType(TypeReference.Int);
10256 RegisterOperand lval = new RegisterOperand(regpool.getSecondReg(hval.getRegister()), TypeReference.Int);
10257 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_S(P(p), DW, DW).copy(), hval)));
10258 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), lval));
10259 }
10260 void code342(BURS_TreeNode p) {
10261 LongConstantOperand val = LC(Store.getValue(P(p)));
10262 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_S(P(p), DW, DW).copy(), IC(val.upper32()))));
10263 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), IC(val.lower32())));
10264 }
10265 void code343(BURS_TreeNode p) {
10266 RegisterOperand hval = (RegisterOperand)AStore.getValue(P(p));
10267 hval.setType(TypeReference.Int);
10268 RegisterOperand lval = new RegisterOperand(regpool.getSecondReg(hval.getRegister()), TypeReference.Int);
10269 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_AS(P(p), QW_S, DW, DW).copy(), hval)));
10270 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), QW_S, DW), lval));
10271 }
10272 void code344(BURS_TreeNode p) {
10273 LongConstantOperand val = LC(AStore.getValue(P(p)));
10274 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_AS(P(p), QW_S, DW, DW).copy(), IC(val.upper32()))));
10275 EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), QW_S, DW), IC(val.lower32())));
10276 }
10277 void code345(BURS_TreeNode p) {
10278 IFCMP(P(p), IfCmp.getGuardResult(P(p)), IfCmp.getVal1(P(p)), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p)));
10279 }
10280 void code346(BURS_TreeNode p) {
10281 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand())));
10282 EMIT(CPOS(P(p), MIR_Test.create(IA32_TEST, IfCmp.getVal1(P(p)), IfCmp.getVal1(P(p)).copy())));
10283 EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(IfCmp.getCond(P(p))), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))));
10284 }
10285 void code347(BURS_TreeNode p) {
10286 IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p)));
10287 }
10288 void code348(BURS_TreeNode p) {
10289 IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p)));
10290 }
10291 void code349(BURS_TreeNode p) {
10292 IFCMP(P(p), IfCmp.getGuardResult(P(p)), IfCmp.getVal1(P(p)), consumeMO(), IfCmp.getCond(P(p)));
10293 }
10294 void code350(BURS_TreeNode p) {
10295 IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p)));
10296 }
10297 void code351(BURS_TreeNode p) {
10298 IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p)));
10299 }
10300 void code352(BURS_TreeNode p) {
10301 IFCMP(P(p), IfCmp.getGuardResult(P(p)), IfCmp.getVal1(P(p)), consumeMO(), IfCmp.getCond(P(p)));
10302 }
10303 void code353(BURS_TreeNode p) {
10304 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand())));
10305 EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(consumeCOND()), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))));
10306 }
10307 void code354(BURS_TreeNode p) {
10308 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand())));
10309 EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(consumeCOND().flipCode()), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))));
10310 }
10311 void code355(BURS_TreeNode p) {
10312 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand())));
10313 EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(IfCmp.getCond(P(p))), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))));
10314 }
10315 void code356(BURS_TreeNode p) {
10316 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand())));
10317 EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(IfCmp.getCond(P(p))), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))));
10318 }
10319 void code357(BURS_TreeNode p) {
10320 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new TrueGuardOperand())));
10321 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))));
10322 }
10323 void code358(BURS_TreeNode p) {
10324 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp2.getGuardResult(P(p)), new TrueGuardOperand())));
10325 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, IfCmp2.getVal1(P(p)), IfCmp2.getVal2(P(p)))));
10326 EMIT(MIR_CondBranch2.mutate(P(p), IA32_JCC2,
10327 COND(IfCmp2.getCond1(P(p))), IfCmp2.getTarget1(P(p)),IfCmp2.getBranchProfile1(P(p)),
10328 COND(IfCmp2.getCond2(P(p))), IfCmp2.getTarget2(P(p)), IfCmp2.getBranchProfile2(P(p))));
10329 }
10330 void code359(BURS_TreeNode p) {
10331 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp2.getGuardResult(P(p)), new TrueGuardOperand())));
10332 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), IfCmp2.getVal2(P(p)))));
10333 EMIT(MIR_CondBranch2.mutate(P(p), IA32_JCC2,
10334 COND(IfCmp2.getCond1(P(p))), IfCmp2.getTarget1(P(p)),IfCmp2.getBranchProfile1(P(p)),
10335 COND(IfCmp2.getCond2(P(p))), IfCmp2.getTarget2(P(p)), IfCmp2.getBranchProfile2(P(p))));
10336 }
10337 void code360(BURS_TreeNode p) {
10338 EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp2.getGuardResult(P(p)), new TrueGuardOperand())));
10339 EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), IfCmp2.getVal1(P(p)))));
10340 EMIT(MIR_CondBranch2.mutate(P(p), IA32_JCC2,
10341 COND(IfCmp2.getCond1(P(p)).flipOperands()), IfCmp2.getTarget1(P(p)),IfCmp2.getBranchProfile1(P(p)),
10342 COND(IfCmp2.getCond2(P(p)).flipOperands()), IfCmp2.getTarget2(P(p)), IfCmp2.getBranchProfile2(P(p))));
10343 }
10344 void code361(BURS_TreeNode p) {
10345 EMIT(P(p)); // Leave for ComplexLIR2MIRExpansion
10346 }
10347 void code362(BURS_TreeNode p) {
10348 LONG_CMP(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
10349 }
10350 void code363(BURS_TreeNode p) {
10351 EMIT(MIR_Branch.mutate(P(p), IA32_JMP, Goto.getTarget(P(p))));
10352 }
10353 void code364(BURS_TreeNode p) {
10354 EMIT(MIR_CacheOp.mutate(P(p), IA32_PREFETCHNTA, R(CacheOp.getRef(P(p)))));
10355 }
10356 void code365(BURS_TreeNode p) {
10357 EMIT(P(p)); // Pass through to maintain barrier semantics for code motion
10358 }
10359 void code366(BURS_TreeNode p) {
10360 EMIT(P(p)); // Pass through to maintain barrier semantics for code motion
10361 }
10362 void code367(BURS_TreeNode p) {
10363 EMIT(MIR_Empty.mutate(P(p), IA32_PAUSE));
10364 }
10365 void code368(BURS_TreeNode p) {
10366 EMIT(MIR_Return.mutate(P(p), IA32_RET, null, null, null));
10367 }
10368 void code369(BURS_TreeNode p) {
10369 EMIT(MIR_Return.mutate(P(p), IA32_RET, null, Return.getVal(P(p)), null));
10370 }
10371 void code370(BURS_TreeNode p) {
10372 RegisterOperand ret = R(Return.getVal(P(p)));
10373 RegisterOperand ret2 = null;
10374 if (ret.getType().isLongType()) {
10375 ret.setType(TypeReference.Int);
10376 ret2 = new RegisterOperand(regpool.getSecondReg(ret.getRegister()), TypeReference.Int);
10377 }
10378 EMIT(MIR_Return.mutate(P(p), IA32_RET, null, ret, ret2));
10379 }
10380 void code371(BURS_TreeNode p) {
10381 LongConstantOperand val = LC(Return.getVal(P(p)));
10382 EMIT(MIR_Return.mutate(P(p), IA32_RET, null, IC(val.upper32()), IC(val.lower32())));
10383 }
10384 void code372(BURS_TreeNode p) {
10385 CALL(P(p), Call.getAddress(P(p)));
10386 }
10387 void code373(BURS_TreeNode p) {
10388 CALL(P(p), Call.getAddress(P(p)));
10389 }
10390 void code374(BURS_TreeNode p) {
10391 CALL(P(p), MO_L(PL(p), DW));
10392 }
10393 void code375(BURS_TreeNode p) {
10394 RegisterOperand temp = regpool.makeTemp(TypeReference.Int);
10395 EMIT(MIR_Move.create(IA32_MOV, temp, Call.getAddress(P(p))));
10396 CALL(P(p), temp.copyRO());
10397 }
10398 void code376(BURS_TreeNode p) {
10399 SYSCALL(P(p), Call.getAddress(P(p)));
10400 }
10401 void code377(BURS_TreeNode p) {
10402 SYSCALL(P(p), MO_L(PL(p), DW));
10403 }
10404 void code378(BURS_TreeNode p) {
10405 RegisterOperand temp = regpool.makeTemp(TypeReference.Int);
10406 EMIT(MIR_Move.create(IA32_MOV, temp, Call.getAddress(P(p))));
10407 SYSCALL(P(p), temp.copyRO());
10408 }
10409 void code379(BURS_TreeNode p) {
10410 GET_TIME_BASE(P(p), Nullary.getResult(P(p)));
10411 }
10412 void code380(BURS_TreeNode p) {
10413 OSR(burs, P(p));
10414 }
10415 void code381(BURS_TreeNode p) {
10416 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), Binary.getVal1(PLR(p)).copy()));
10417 }
10418 void code382(BURS_TreeNode p) {
10419 Register tmp = regpool.getInteger();
10420 if (VM.VerifyAssertions) VM._assert((VLRR(p) & 0x7FFFFFFF) <= 31);
10421 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), Binary.getVal1(PLR(p)))));
10422 EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new RegisterOperand(tmp, TypeReference.Int), IC(VLRR(p)))));
10423 EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new RegisterOperand(tmp, TypeReference.Int)));
10424 }
10425 void code383(BURS_TreeNode p) {
10426 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), IC(VLR(p))));
10427 }
10428 void code384(BURS_TreeNode p) {
10429 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), Binary.getVal1(PLR(p)).copy()));
10430 }
10431 void code385(BURS_TreeNode p) {
10432 Register tmp = regpool.getInteger();
10433 if (VM.VerifyAssertions) VM._assert((VLRR(p) & 0x7FFFFFFF) <= 31);
10434 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), Binary.getVal1(PLR(p)))));
10435 EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new RegisterOperand(tmp, TypeReference.Int), IC(VLRR(p)))));
10436 EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new RegisterOperand(tmp, TypeReference.Int)));
10437 }
10438 void code386(BURS_TreeNode p) {
10439 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), IC(VLR(p))));
10440 }
10441 void code387(BURS_TreeNode p) {
10442 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal2(P(p)), Binary.getVal1(PLR(p)).copy()));
10443 }
10444 void code388(BURS_TreeNode p) {
10445 Register tmp = regpool.getInteger();
10446 if (VM.VerifyAssertions) VM._assert((VLRR(p) & 0x7FFFFFFF) <= 31);
10447 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), Binary.getVal1(PLR(p)))));
10448 EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new RegisterOperand(tmp, TypeReference.Int), IC(VLRR(p)))));
10449 EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new RegisterOperand(tmp, TypeReference.Int)));
10450 }
10451 void code389(BURS_TreeNode p) {
10452 EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(P(p)), Binary.getVal1(PRR(p)).copy()));
10453 }
10454 void code390(BURS_TreeNode p) {
10455 Register tmp = regpool.getInteger();
10456 if (VM.VerifyAssertions) VM._assert((VRRR(p) & 0x7FFFFFFF) <= 31);
10457 EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new RegisterOperand(tmp, TypeReference.Int), Binary.getVal1(PRR(p)))));
10458 EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new RegisterOperand(tmp, TypeReference.Int), IC(VRRR(p)))));
10459 EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new RegisterOperand(tmp, TypeReference.Int)));
10460 }
10461 void code391(BURS_TreeNode p) {
10462 SSE2_COP(IA32_ADDSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
10463 }
10464 void code392(BURS_TreeNode p) {
10465 SSE2_COP(IA32_ADDSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
10466 }
10467 void code393(BURS_TreeNode p) {
10468 SSE2_COP(IA32_ADDSS, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO());
10469 }
10470 void code394(BURS_TreeNode p) {
10471 SSE2_COP(IA32_ADDSD, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), Binary.getVal1(P(p)));
10472 }
10473 void code395(BURS_TreeNode p) {
10474 SSE2_COP(IA32_ADDSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
10475 }
10476 void code396(BURS_TreeNode p) {
10477 SSE2_COP(IA32_ADDSD, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO());
10478 }
10479 void code397(BURS_TreeNode p) {
10480 SSE2_NCOP(IA32_SUBSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
10481 }
10482 void code398(BURS_TreeNode p) {
10483 SSE2_NCOP(IA32_SUBSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
10484 }
10485 void code399(BURS_TreeNode p) {
10486 SSE2_NCOP(IA32_SUBSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
10487 }
10488 void code400(BURS_TreeNode p) {
10489 SSE2_NCOP(IA32_SUBSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
10490 }
10491 void code401(BURS_TreeNode p) {
10492 SSE2_COP(IA32_MULSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
10493 }
10494 void code402(BURS_TreeNode p) {
10495 SSE2_COP(IA32_MULSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
10496 }
10497 void code403(BURS_TreeNode p) {
10498 SSE2_COP(IA32_MULSS, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO());
10499 }
10500 void code404(BURS_TreeNode p) {
10501 SSE2_COP(IA32_MULSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
10502 }
10503 void code405(BURS_TreeNode p) {
10504 SSE2_COP(IA32_MULSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
10505 }
10506 void code406(BURS_TreeNode p) {
10507 SSE2_COP(IA32_MULSD, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO());
10508 }
10509 void code407(BURS_TreeNode p) {
10510 SSE2_NCOP(IA32_DIVSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
10511 }
10512 void code408(BURS_TreeNode p) {
10513 SSE2_NCOP(IA32_DIVSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
10514 }
10515 void code409(BURS_TreeNode p) {
10516 SSE2_NCOP(IA32_DIVSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
10517 }
10518 void code410(BURS_TreeNode p) {
10519 SSE2_NCOP(IA32_DIVSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
10520 }
10521 void code411(BURS_TreeNode p) {
10522 SSE2_NEG(true, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
10523 }
10524 void code412(BURS_TreeNode p) {
10525 SSE2_NEG(false, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
10526 }
10527 void code413(BURS_TreeNode p) {
10528 EMIT(MIR_Unary.mutate(P(p), IA32_SQRTSS, Unary.getResult(P(p)), Unary.getVal(P(p))));
10529 }
10530 void code414(BURS_TreeNode p) {
10531 EMIT(MIR_Unary.mutate(P(p), IA32_SQRTSD, Unary.getResult(P(p)), Unary.getVal(P(p))));
10532 }
10533 void code415(BURS_TreeNode p) {
10534 SSE2_X87_REM(P(p));
10535 }
10536 void code416(BURS_TreeNode p) {
10537 SSE2_X87_REM(P(p));
10538 }
10539 void code417(BURS_TreeNode p) {
10540 SSE2_X87_FROMLONG(P(p));
10541 }
10542 void code418(BURS_TreeNode p) {
10543 SSE2_X87_FROMLONG(P(p));
10544 }
10545 void code419(BURS_TreeNode p) {
10546 EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, Move.getResult(P(p)), Move.getVal(P(p))));
10547 }
10548 void code420(BURS_TreeNode p) {
10549 EMIT(MIR_Move.mutate(P(p), IA32_MOVSD, Move.getResult(P(p)), Move.getVal(P(p))));
10550 }
10551 void code421(BURS_TreeNode p) {
10552 EMIT(MIR_Move.mutate(P(p), IA32_MOVLPD, Load.getResult(P(p)), MO_L(P(p), QW)));
10553 }
10554 void code422(BURS_TreeNode p) {
10555 pushMO(MO_L(P(p), QW));
10556 }
10557 void code423(BURS_TreeNode p) {
10558 EMIT(MIR_Move.mutate(P(p), IA32_MOVLPD, ALoad.getResult(P(p)), MO_AL(P(p), QW_S, QW)));
10559 }
10560 void code424(BURS_TreeNode p) {
10561 pushMO(MO_AL(P(p), QW_S, QW));
10562 }
10563 void code425(BURS_TreeNode p) {
10564 EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, Load.getResult(P(p)), MO_L(P(p), DW)));
10565 }
10566 void code426(BURS_TreeNode p) {
10567 pushMO(MO_L(P(p), DW));
10568 }
10569 void code427(BURS_TreeNode p) {
10570 EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, ALoad.getResult(P(p)), MO_AL(P(p), DW_S, DW)));
10571 }
10572 void code428(BURS_TreeNode p) {
10573 pushMO(MO_AL(P(p), DW_S, DW));
10574 }
10575 void code429(BURS_TreeNode p) {
10576 EMIT(MIR_Move.mutate(P(p), IA32_MOVLPD, MO_S(P(p), QW), Store.getValue(P(p))));
10577 }
10578 void code430(BURS_TreeNode p) {
10579 EMIT(MIR_Move.mutate(P(p), IA32_MOVLPD, MO_AS(P(p), QW_S, QW), AStore.getValue(P(p))));
10580 }
10581 void code431(BURS_TreeNode p) {
10582 EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, MO_S(P(p), DW), Store.getValue(P(p))));
10583 }
10584 void code432(BURS_TreeNode p) {
10585 EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, MO_AS(P(p), DW_S, DW), AStore.getValue(P(p))));
10586 }
10587 void code433(BURS_TreeNode p) {
10588 SSE2_CONV(IA32_CVTSI2SS, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
10589 }
10590 void code434(BURS_TreeNode p) {
10591 SSE2_CONV(IA32_CVTSI2SS, P(p), Unary.getResult(P(p)), consumeMO());
10592 }
10593 void code435(BURS_TreeNode p) {
10594 SSE2_CONV(IA32_CVTSI2SD, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
10595 }
10596 void code436(BURS_TreeNode p) {
10597 SSE2_CONV(IA32_CVTSI2SD, P(p), Unary.getResult(P(p)), consumeMO());
10598 }
10599 void code437(BURS_TreeNode p) {
10600 SSE2_CONV(IA32_CVTSS2SD, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
10601 }
10602 void code438(BURS_TreeNode p) {
10603 SSE2_CONV(IA32_CVTSS2SD, P(p), Unary.getResult(P(p)), consumeMO());
10604 }
10605 void code439(BURS_TreeNode p) {
10606 SSE2_CONV(IA32_CVTSD2SS, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
10607 }
10608 void code440(BURS_TreeNode p) {
10609 SSE2_CONV(IA32_CVTSD2SS, P(p), Unary.getResult(P(p)), consumeMO());
10610 }
10611 void code441(BURS_TreeNode p) {
10612 EMIT(P(p)); /* leave for complex operators */
10613 }
10614 void code442(BURS_TreeNode p) {
10615 EMIT(P(p)); /* leave for complex operators */
10616 }
10617 void code443(BURS_TreeNode p) {
10618 EMIT(P(p)); /* leave for complex operators */
10619 }
10620 void code444(BURS_TreeNode p) {
10621 EMIT(P(p)); /* leave for complex operators */
10622 }
10623 void code445(BURS_TreeNode p) {
10624 SSE2_FPR2GPR_32(P(p));
10625 }
10626 void code447(BURS_TreeNode p) {
10627 SSE2_FPR2GPR_64(P(p));
10628 }
10629 void code449(BURS_TreeNode p) {
10630 SSE2_GPR2FPR_32(P(p));
10631 }
10632 void code451(BURS_TreeNode p) {
10633 SSE2_GPR2FPR_64(P(p));
10634 }
10635 void code453(BURS_TreeNode p) {
10636 SSE2_FPCONSTANT(P(p));
10637 }
10638 void code454(BURS_TreeNode p) {
10639 pushMO(MO_MC(P(p)));
10640 }
10641 void code455(BURS_TreeNode p) {
10642 pushMO(MO_MC(P(p)));
10643 }
10644 void code456(BURS_TreeNode p) {
10645 EMIT(MIR_Empty.mutate(P(p), IA32_FNINIT));
10646 }
10647 void code457(BURS_TreeNode p) {
10648 SSE2_IFCMP(IA32_UCOMISS, P(p), IfCmp.getClearVal1(P(p)), IfCmp.getClearVal2(P(p)));
10649 }
10650 void code458(BURS_TreeNode p) {
10651 SSE2_IFCMP(IA32_UCOMISS, P(p), IfCmp.getClearVal1(P(p)), consumeMO());
10652 }
10653 void code459(BURS_TreeNode p) {
10654 IfCmp.getCond(P(p)).flipOperands(); SSE2_IFCMP(IA32_UCOMISS, P(p), IfCmp.getClearVal2(P(p)), consumeMO());
10655 }
10656 void code460(BURS_TreeNode p) {
10657 SSE2_IFCMP(IA32_UCOMISD, P(p), IfCmp.getClearVal1(P(p)), IfCmp.getClearVal2(P(p)));
10658 }
10659 void code461(BURS_TreeNode p) {
10660 SSE2_IFCMP(IA32_UCOMISD, P(p), IfCmp.getClearVal1(P(p)), consumeMO());
10661 }
10662 void code462(BURS_TreeNode p) {
10663 IfCmp.getCond(P(p)).flipOperands(); SSE2_IFCMP(IA32_UCOMISD, P(p), IfCmp.getClearVal2(P(p)), consumeMO());
10664 }
10665 void code463(BURS_TreeNode p) {
10666 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)));
10667 }
10668 void code464(BURS_TreeNode p) {
10669 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)));
10670 }
10671 void code465(BURS_TreeNode p) {
10672 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)));
10673 }
10674 void code466(BURS_TreeNode p) {
10675 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)));
10676 }
10677 void code467(BURS_TreeNode p) {
10678 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)));
10679 }
10680 void code468(BURS_TreeNode p) {
10681 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)));
10682 }
10683 void code469(BURS_TreeNode p) {
10684 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());
10685 }
10686 void code470(BURS_TreeNode p) {
10687 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());
10688 }
10689 void code471(BURS_TreeNode p) {
10690 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)));
10691 }
10692 void code472(BURS_TreeNode p) {
10693 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)));
10694 }
10695 void code473(BURS_TreeNode p) {
10696 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)));
10697 }
10698 void code474(BURS_TreeNode p) {
10699 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)));
10700 }
10701 void code475(BURS_TreeNode p) {
10702 SSE2_ABS(true, P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)));
10703 }
10704 void code476(BURS_TreeNode p) {
10705 SSE2_ABS(true, P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)));
10706 }
10707 void code477(BURS_TreeNode p) {
10708 SSE2_ABS(true, P(p), CondMove.getResult(P(p)), CondMove.getVal2(P(p)));
10709 }
10710 void code478(BURS_TreeNode p) {
10711 SSE2_ABS(true, P(p), CondMove.getResult(P(p)), CondMove.getVal2(P(p)));
10712 }
10713 void code479(BURS_TreeNode p) {
10714 SSE2_ABS(false, P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)));
10715 }
10716 void code480(BURS_TreeNode p) {
10717 SSE2_ABS(false, P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)));
10718 }
10719 void code481(BURS_TreeNode p) {
10720 SSE2_ABS(false, P(p), CondMove.getResult(P(p)), CondMove.getVal2(P(p)));
10721 }
10722 void code482(BURS_TreeNode p) {
10723 SSE2_ABS(false, P(p), CondMove.getResult(P(p)), CondMove.getVal2(P(p)));
10724 }
10725 void code483(BURS_TreeNode p) {
10726 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()));
10727 }
10728 void code484(BURS_TreeNode p) {
10729 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()));
10730 }
10731
10732 public void code(BURS_TreeNode p, int n, int ruleno) {
10733 switch(ruleno) {
10734 case 16: code16(p); break;
10735 case 17: code17(p); break;
10736 case 18: code18(p); break;
10737 case 19: code19(p); break;
10738 case 22: code22(p); break;
10739 case 23: code23(p); break;
10740 case 24: code24(p); break;
10741 case 25: code25(p); break;
10742 case 28: code28(p); break;
10743 case 29: code29(p); break;
10744 case 34: code34(p); break;
10745 case 35: code35(p); break;
10746 case 38: code38(p); break;
10747 case 39: code39(p); break;
10748 case 40: code40(p); break;
10749 case 41: code41(p); break;
10750 case 42: code42(p); break;
10751 case 43: code43(p); break;
10752 case 44: code44(p); break;
10753 case 45: code45(p); break;
10754 case 46: code46(p); break;
10755 case 47: code47(p); break;
10756 case 48: code48(p); break;
10757 case 49: code49(p); break;
10758 case 50: code50(p); break;
10759 case 51: code51(p); break;
10760 case 52: code52(p); break;
10761 case 53: code53(p); break;
10762 case 54: code54(p); break;
10763 case 55: code55(p); break;
10764 case 56: code56(p); break;
10765 case 57: code57(p); break;
10766 case 58: code58(p); break;
10767 case 59: code59(p); break;
10768 case 60: code60(p); break;
10769 case 61: code61(p); break;
10770 case 62: code62(p); break;
10771 case 64: code64(p); break;
10772 case 65: code65(p); break;
10773 case 66: code66(p); break;
10774 case 67: code67(p); break;
10775 case 68: code68(p); break;
10776 case 69: code69(p); break;
10777 case 70: code70(p); break;
10778 case 71: code71(p); break;
10779 case 72: code72(p); break;
10780 case 73: code73(p); break;
10781 case 74: code74(p); break;
10782 case 75: code75(p); break;
10783 case 76: code76(p); break;
10784 case 77: code77(p); break;
10785 case 78: code78(p); break;
10786 case 79: code79(p); break;
10787 case 80: code80(p); break;
10788 case 81: code81(p); break;
10789 case 82: code82(p); break;
10790 case 83: code83(p); break;
10791 case 84: code84(p); break;
10792 case 85: code85(p); break;
10793 case 86: code86(p); break;
10794 case 87: code87(p); break;
10795 case 88: code88(p); break;
10796 case 89: code89(p); break;
10797 case 90: code90(p); break;
10798 case 91: code91(p); break;
10799 case 92: code92(p); break;
10800 case 93: code93(p); break;
10801 case 95: code95(p); break;
10802 case 96: code96(p); break;
10803 case 97: code97(p); break;
10804 case 98: code98(p); break;
10805 case 99: code99(p); break;
10806 case 100: code100(p); break;
10807 case 101: code101(p); break;
10808 case 102: code102(p); break;
10809 case 103: code103(p); break;
10810 case 104: code104(p); break;
10811 case 105: code105(p); break;
10812 case 106: code106(p); break;
10813 case 107: code107(p); break;
10814 case 108: code108(p); break;
10815 case 109: code109(p); break;
10816 case 110: code110(p); break;
10817 case 111: code111(p); break;
10818 case 112: code112(p); break;
10819 case 113: code113(p); break;
10820 case 114: code114(p); break;
10821 case 115: code115(p); break;
10822 case 116: code116(p); break;
10823 case 117: code117(p); break;
10824 case 118: code118(p); break;
10825 case 119: code119(p); break;
10826 case 120: code120(p); break;
10827 case 121: code121(p); break;
10828 case 122: code122(p); break;
10829 case 123: code123(p); break;
10830 case 124: code124(p); break;
10831 case 125: code125(p); break;
10832 case 126: code126(p); break;
10833 case 127: code127(p); break;
10834 case 128: code128(p); break;
10835 case 129: code129(p); break;
10836 case 130: code130(p); break;
10837 case 131: code131(p); break;
10838 case 132: code132(p); break;
10839 case 133: code133(p); break;
10840 case 134: code134(p); break;
10841 case 135: code135(p); break;
10842 case 136: code136(p); break;
10843 case 137: code137(p); break;
10844 case 138: code138(p); break;
10845 case 139: code139(p); break;
10846 case 140: code140(p); break;
10847 case 141: code141(p); break;
10848 case 142: code142(p); break;
10849 case 143: code143(p); break;
10850 case 144: code144(p); break;
10851 case 145: code145(p); break;
10852 case 146: code146(p); break;
10853 case 147: code147(p); break;
10854 case 148: code148(p); break;
10855 case 149: code149(p); break;
10856 case 150: code150(p); break;
10857 case 151: code151(p); break;
10858 case 152: code152(p); break;
10859 case 153: code153(p); break;
10860 case 154: code154(p); break;
10861 case 155: code155(p); break;
10862 case 156: code156(p); break;
10863 case 157: code157(p); break;
10864 case 158: code158(p); break;
10865 case 159: code159(p); break;
10866 case 160: code160(p); break;
10867 case 161: code161(p); break;
10868 case 162: code162(p); break;
10869 case 163: code163(p); break;
10870 case 164: code164(p); break;
10871 case 165: code165(p); break;
10872 case 166: code166(p); break;
10873 case 167: code167(p); break;
10874 case 168: code168(p); break;
10875 case 169: code169(p); break;
10876 case 170: code170(p); break;
10877 case 171: code171(p); break;
10878 case 172: code172(p); break;
10879 case 173: code173(p); break;
10880 case 174: code174(p); break;
10881 case 175: code175(p); break;
10882 case 176: code176(p); break;
10883 case 177: code177(p); break;
10884 case 178: code178(p); break;
10885 case 179: code179(p); break;
10886 case 180: code180(p); break;
10887 case 181: code181(p); break;
10888 case 182: code182(p); break;
10889 case 183: code183(p); break;
10890 case 184: code184(p); break;
10891 case 185: code185(p); break;
10892 case 186: code186(p); break;
10893 case 187: code187(p); break;
10894 case 188: code188(p); break;
10895 case 189: code189(p); break;
10896 case 190: code190(p); break;
10897 case 191: code191(p); break;
10898 case 192: code192(p); break;
10899 case 193: code193(p); break;
10900 case 194: code194(p); break;
10901 case 195: code195(p); break;
10902 case 196: code196(p); break;
10903 case 197: code197(p); break;
10904 case 198: code198(p); break;
10905 case 199: code199(p); break;
10906 case 200: code200(p); break;
10907 case 201: code201(p); break;
10908 case 202: code202(p); break;
10909 case 203: code203(p); break;
10910 case 204: code204(p); break;
10911 case 205: code205(p); break;
10912 case 206: code206(p); break;
10913 case 207: code207(p); break;
10914 case 208: code208(p); break;
10915 case 209: code209(p); break;
10916 case 210: code210(p); break;
10917 case 211: code211(p); break;
10918 case 212: code212(p); break;
10919 case 213: code213(p); break;
10920 case 214: code214(p); break;
10921 case 215: code215(p); break;
10922 case 216: code216(p); break;
10923 case 217: code217(p); break;
10924 case 218: code218(p); break;
10925 case 219: code219(p); break;
10926 case 220: code220(p); break;
10927 case 221: code221(p); break;
10928 case 222: code222(p); break;
10929 case 223: code223(p); break;
10930 case 224: code224(p); break;
10931 case 225: code225(p); break;
10932 case 226: code226(p); break;
10933 case 227: code227(p); break;
10934 case 228: code228(p); break;
10935 case 229: code229(p); break;
10936 case 230: code230(p); break;
10937 case 231: code231(p); break;
10938 case 232: code232(p); break;
10939 case 233: code233(p); break;
10940 case 234: code234(p); break;
10941 case 235: code235(p); break;
10942 case 236: code236(p); break;
10943 case 237: code237(p); break;
10944 case 238: code238(p); break;
10945 case 239: code239(p); break;
10946 case 240: code240(p); break;
10947 case 241: code241(p); break;
10948 case 242: code242(p); break;
10949 case 243: code243(p); break;
10950 case 244: code244(p); break;
10951 case 245: code245(p); break;
10952 case 246: code246(p); break;
10953 case 247: code247(p); break;
10954 case 248: code248(p); break;
10955 case 249: code249(p); break;
10956 case 250: code250(p); break;
10957 case 251: code251(p); break;
10958 case 252: code252(p); break;
10959 case 253: code253(p); break;
10960 case 255: code255(p); break;
10961 case 268: code268(p); break;
10962 case 269: code269(p); break;
10963 case 270: code270(p); break;
10964 case 271: code271(p); break;
10965 case 272: code272(p); break;
10966 case 273: code273(p); break;
10967 case 274: code274(p); break;
10968 case 275: code275(p); break;
10969 case 276: code276(p); break;
10970 case 277: code277(p); break;
10971 case 278: code278(p); break;
10972 case 279: code279(p); break;
10973 case 280: code280(p); break;
10974 case 281: code281(p); break;
10975 case 282: code282(p); break;
10976 case 283: code283(p); break;
10977 case 284: code284(p); break;
10978 case 285: code285(p); break;
10979 case 286: code286(p); break;
10980 case 287: code287(p); break;
10981 case 288: code288(p); break;
10982 case 289: code289(p); break;
10983 case 290: code290(p); break;
10984 case 291: code291(p); break;
10985 case 292: code292(p); break;
10986 case 293: code293(p); break;
10987 case 294: code294(p); break;
10988 case 295: code295(p); break;
10989 case 296: code296(p); break;
10990 case 297: code297(p); break;
10991 case 298: code298(p); break;
10992 case 299: code299(p); break;
10993 case 300: code300(p); break;
10994 case 301: code301(p); break;
10995 case 302: code302(p); break;
10996 case 303: code303(p); break;
10997 case 304: code304(p); break;
10998 case 305: code305(p); break;
10999 case 306: code306(p); break;
11000 case 307: code307(p); break;
11001 case 308: code308(p); break;
11002 case 309: code309(p); break;
11003 case 310: code310(p); break;
11004 case 311: code311(p); break;
11005 case 312: code312(p); break;
11006 case 313: code313(p); break;
11007 case 314: code314(p); break;
11008 case 315: code315(p); break;
11009 case 316: code316(p); break;
11010 case 317: code317(p); break;
11011 case 318: code318(p); break;
11012 case 319: code319(p); break;
11013 case 320: code320(p); break;
11014 case 321: code321(p); break;
11015 case 322: code322(p); break;
11016 case 323: code323(p); break;
11017 case 324: code324(p); break;
11018 case 325: code325(p); break;
11019 case 326: code326(p); break;
11020 case 327: code327(p); break;
11021 case 328: code328(p); break;
11022 case 329: code329(p); break;
11023 case 330: code330(p); break;
11024 case 331: code331(p); break;
11025 case 332: code332(p); break;
11026 case 333: code333(p); break;
11027 case 334: code334(p); break;
11028 case 335: code335(p); break;
11029 case 336: code336(p); break;
11030 case 337: code337(p); break;
11031 case 338: code338(p); break;
11032 case 339: code339(p); break;
11033 case 340: code340(p); break;
11034 case 341: code341(p); break;
11035 case 342: code342(p); break;
11036 case 343: code343(p); break;
11037 case 344: code344(p); break;
11038 case 345: code345(p); break;
11039 case 346: code346(p); break;
11040 case 347: code347(p); break;
11041 case 348: code348(p); break;
11042 case 349: code349(p); break;
11043 case 350: code350(p); break;
11044 case 351: code351(p); break;
11045 case 352: code352(p); break;
11046 case 353: code353(p); break;
11047 case 354: code354(p); break;
11048 case 355: code355(p); break;
11049 case 356: code356(p); break;
11050 case 357: code357(p); break;
11051 case 358: code358(p); break;
11052 case 359: code359(p); break;
11053 case 360: code360(p); break;
11054 case 361: code361(p); break;
11055 case 362: code362(p); break;
11056 case 363: code363(p); break;
11057 case 364: code364(p); break;
11058 case 365: code365(p); break;
11059 case 366: code366(p); break;
11060 case 367: code367(p); break;
11061 case 368: code368(p); break;
11062 case 369: code369(p); break;
11063 case 370: code370(p); break;
11064 case 371: code371(p); break;
11065 case 372: code372(p); break;
11066 case 373: code373(p); break;
11067 case 374: code374(p); break;
11068 case 375: code375(p); break;
11069 case 376: code376(p); break;
11070 case 377: code377(p); break;
11071 case 378: code378(p); break;
11072 case 379: code379(p); break;
11073 case 380: code380(p); break;
11074 case 381: code381(p); break;
11075 case 382: code382(p); break;
11076 case 383: code383(p); break;
11077 case 384: code384(p); break;
11078 case 385: code385(p); break;
11079 case 386: code386(p); break;
11080 case 387: code387(p); break;
11081 case 388: code388(p); break;
11082 case 389: code389(p); break;
11083 case 390: code390(p); break;
11084 case 391: code391(p); break;
11085 case 392: code392(p); break;
11086 case 393: code393(p); break;
11087 case 394: code394(p); break;
11088 case 395: code395(p); break;
11089 case 396: code396(p); break;
11090 case 397: code397(p); break;
11091 case 398: code398(p); break;
11092 case 399: code399(p); break;
11093 case 400: code400(p); break;
11094 case 401: code401(p); break;
11095 case 402: code402(p); break;
11096 case 403: code403(p); break;
11097 case 404: code404(p); break;
11098 case 405: code405(p); break;
11099 case 406: code406(p); break;
11100 case 407: code407(p); break;
11101 case 408: code408(p); break;
11102 case 409: code409(p); break;
11103 case 410: code410(p); break;
11104 case 411: code411(p); break;
11105 case 412: code412(p); break;
11106 case 413: code413(p); break;
11107 case 414: code414(p); break;
11108 case 415: code415(p); break;
11109 case 416: code416(p); break;
11110 case 417: code417(p); break;
11111 case 418: code418(p); break;
11112 case 419: code419(p); break;
11113 case 420: code420(p); break;
11114 case 421: code421(p); break;
11115 case 422: code422(p); break;
11116 case 423: code423(p); break;
11117 case 424: code424(p); break;
11118 case 425: code425(p); break;
11119 case 426: code426(p); break;
11120 case 427: code427(p); break;
11121 case 428: code428(p); break;
11122 case 429: code429(p); break;
11123 case 430: code430(p); break;
11124 case 431: code431(p); break;
11125 case 432: code432(p); break;
11126 case 433: code433(p); break;
11127 case 434: code434(p); break;
11128 case 435: code435(p); break;
11129 case 436: code436(p); break;
11130 case 437: code437(p); break;
11131 case 438: code438(p); break;
11132 case 439: code439(p); break;
11133 case 440: code440(p); break;
11134 case 441: code441(p); break;
11135 case 442: code442(p); break;
11136 case 443: code443(p); break;
11137 case 444: code444(p); break;
11138 case 445: code445(p); break;
11139 case 447: code447(p); break;
11140 case 449: code449(p); break;
11141 case 451: code451(p); break;
11142 case 453: code453(p); break;
11143 case 454: code454(p); break;
11144 case 455: code455(p); break;
11145 case 456: code456(p); break;
11146 case 457: code457(p); break;
11147 case 458: code458(p); break;
11148 case 459: code459(p); break;
11149 case 460: code460(p); break;
11150 case 461: code461(p); break;
11151 case 462: code462(p); break;
11152 case 463: code463(p); break;
11153 case 464: code464(p); break;
11154 case 465: code465(p); break;
11155 case 466: code466(p); break;
11156 case 467: code467(p); break;
11157 case 468: code468(p); break;
11158 case 469: code469(p); break;
11159 case 470: code470(p); break;
11160 case 471: code471(p); break;
11161 case 472: code472(p); break;
11162 case 473: code473(p); break;
11163 case 474: code474(p); break;
11164 case 475: code475(p); break;
11165 case 476: code476(p); break;
11166 case 477: code477(p); break;
11167 case 478: code478(p); break;
11168 case 479: code479(p); break;
11169 case 480: code480(p); break;
11170 case 481: code481(p); break;
11171 case 482: code482(p); break;
11172 case 483: code483(p); break;
11173 case 484: code484(p); break;
11174 default:
11175 throw new OptimizingCompilerException("BURS","rule without emit code:",BURS_Debug.string[ruleno]);
11176 }
11177 }
11178 }