/*
* This file is part of the Jikes RVM project (http://jikesrvm.org).
*
* This file is licensed to You under the Common Public License (CPL);
* You may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.opensource.org/licenses/cpl1.0.php
*
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership.
*/
package org.jikesrvm.compilers.opt.ia32;
import org.jikesrvm.compilers.opt.ir.ia32.*;
import org.jikesrvm.classloader.*;
import org.jikesrvm.*;
import org.jikesrvm.runtime.VM_ArchEntrypoints;
import org.jikesrvm.compilers.opt.ir.*;
import org.jikesrvm.compilers.opt.OPT_BURS;
import org.jikesrvm.compilers.opt.OPT_OptimizingCompilerException;
import org.jikesrvm.compilers.opt.OPT_Bits; //NOPMD
import org.jikesrvm.ArchitectureSpecific.OPT_BURS_TreeNode;
import org.vmmagic.unboxed.*;
/**
* Machine-specific instruction selection rules. Program generated.
*
* Note: some of the functions have been taken and modified
* from the file gen.c, from the LCC compiler.
* See $RVM_ROOT/rvm/src-generated/opt-burs/jburg/COPYRIGHT file for copyright restrictions.
*
* @see OPT_BURS
*
* NOTE: Program generated file, do not edit!
*/
@SuppressWarnings("unused") // Machine generated code is hard to get perfect
public class OPT_BURS_STATE extends OPT_BURS_Helpers
implements OPT_Operators, OPT_BURS_Definitions {
static final byte NOFLAGS = 0x00;
static final byte EMIT_INSTRUCTION = 0x01;
public static final byte LEFT_CHILD_FIRST = 0x02;
public static final byte RIGHT_CHILD_FIRST = 0x04;
public OPT_BURS_STATE(OPT_BURS b) {
super(b);
}
/*****************************************************************/
/* */
/* BURS TEMPLATE */
/* */
/*****************************************************************/
/* accessors used by BURS */
private static OPT_BURS_TreeNode STATE(OPT_BURS_TreeNode a) { return a; }
/***********************************************************************
*
* This file contains BURG utilities
*
* Note: some of the functions have been taken and modified
* from the file gen.c, from the LCC compiler.
*
************************************************************************/
void trace(OPT_BURS_TreeNode p, int rule, int cost, int bestcost) {
if (OPT_BURS.DEBUG) {
VM.sysWrite(p+" matched "+OPT_BURS_Debug.string[rule]+" with cost "+
cost+"vs. "+bestcost);
}
}
/**
* This function will dump the tree
*/
public static void dumpTree(OPT_BURS_TreeNode p) {
if (OPT_BURS.DEBUG) {
VM.sysWrite(dumpTree("\n",p,1));
}
}
public static String dumpTree(String out, OPT_BURS_TreeNode p, int indent) {
if (p == null) return out;
for (int i=0; i<indent; i++)
out = out + " ";
out = out + p;
out = out + '\n';
if (p.child1 != null) {
indent++;
out = out + dumpTree("",p.child1,indent);
if (p.child2 != null) {
out = out + dumpTree("",p.child2,indent);
}
}
return out;
}
/**
* This function will dump the cover of a tree, i.e. the rules
* that cover the tree with a minimal cost.
*/
public static void dumpCover(OPT_BURS_TreeNode p, byte goalnt, int indent){
if (OPT_BURS.DEBUG) {
if (p == null) return;
int rule = STATE(p).rule(goalnt);
VM.sysWrite(STATE(p).getCost(goalnt)+"\t");
for (int i = 0; i < indent; i++)
VM.sysWrite(' ');
VM.sysWrite(OPT_BURS_Debug.string[rule]+"\n");
for (int i = 0; i < nts[rule].length; i++)
dumpCover(kids(p,rule,i), nts[rule][i], indent + 1);
}
}
// caution: MARK should be used in single threaded mode,
public static void mark(OPT_BURS_TreeNode p, byte goalnt) {
if (p == null) return;
int rule = STATE(p).rule(goalnt);
byte act = action[rule];
if ((act & EMIT_INSTRUCTION) != 0) {
p.setNonTerminal(goalnt);
}
if (rule == 0) {
throw new OPT_OptimizingCompilerException("BURS","rule missing in ",
p.getInstruction().toString(), dumpTree("",p,1));
}
mark_kids(p,rule);
}
/*
* This file is part of the Jikes RVM project (http://jikesrvm.org).
*
* This file is licensed to You under the Common Public License (CPL);
* You may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.opensource.org/licenses/cpl1.0.php
*
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership.
*/
//ir.brg
/**
* Generate from ir.template and assembled rules files.
*/
private static final byte[] nts_0 = { r_NT, };
private static final byte[] nts_1 = { };
private static final byte[] nts_2 = { czr_NT, };
private static final byte[] nts_3 = { szpr_NT, };
private static final byte[] nts_4 = { riv_NT, };
private static final byte[] nts_5 = { any_NT, any_NT, };
private static final byte[] nts_6 = { riv_NT, riv_NT, };
private static final byte[] nts_7 = { sload8_NT, };
private static final byte[] nts_8 = { uload8_NT, };
private static final byte[] nts_9 = { sload16_NT, };
private static final byte[] nts_10 = { uload16_NT, };
private static final byte[] nts_11 = { load16_NT, };
private static final byte[] nts_12 = { load32_NT, };
private static final byte[] nts_13 = { load16_32_NT, };
private static final byte[] nts_14 = { load8_NT, };
private static final byte[] nts_15 = { address1reg_NT, };
private static final byte[] nts_16 = { address1scaledreg_NT, };
private static final byte[] nts_17 = { r_NT, r_NT, };
private static final byte[] nts_18 = { r_NT, address1scaledreg_NT, };
private static final byte[] nts_19 = { address1scaledreg_NT, r_NT, };
private static final byte[] nts_20 = { address1scaledreg_NT, address1reg_NT, };
private static final byte[] nts_21 = { address1reg_NT, address1scaledreg_NT, };
private static final byte[] nts_22 = { address_NT, };
private static final byte[] nts_23 = { load32_NT, riv_NT, };
private static final byte[] nts_24 = { riv_NT, load32_NT, };
private static final byte[] nts_25 = { riv_NT, riv_NT, riv_NT, riv_NT, };
private static final byte[] nts_26 = { r_NT, riv_NT, };
private static final byte[] nts_27 = { cz_NT, };
private static final byte[] nts_28 = { szp_NT, };
private static final byte[] nts_29 = { bittest_NT, };
private static final byte[] nts_30 = { boolcmp_NT, };
private static final byte[] nts_31 = { r_NT, load32_NT, };
private static final byte[] nts_32 = { boolcmp_NT, riv_NT, riv_NT, };
private static final byte[] nts_33 = { rlv_NT, rlv_NT, };
private static final byte[] nts_34 = { r_NT, riv_NT, any_NT, };
private static final byte[] nts_35 = { r_NT, any_NT, };
private static final byte[] nts_36 = { load8_NT, any_NT, };
private static final byte[] nts_37 = { uload8_NT, r_NT, any_NT, };
private static final byte[] nts_38 = { r_NT, uload8_NT, any_NT, };
private static final byte[] nts_39 = { sload16_NT, any_NT, };
private static final byte[] nts_40 = { load32_NT, riv_NT, any_NT, };
private static final byte[] nts_41 = { r_NT, load32_NT, any_NT, };
private static final byte[] nts_42 = { boolcmp_NT, any_NT, };
private static final byte[] nts_43 = { bittest_NT, any_NT, };
private static final byte[] nts_44 = { cz_NT, any_NT, };
private static final byte[] nts_45 = { szp_NT, any_NT, };
private static final byte[] nts_46 = { r_NT, rlv_NT, any_NT, };
private static final byte[] nts_47 = { riv_NT, riv_NT, riv_NT, riv_NT, riv_NT, };
private static final byte[] nts_48 = { riv_NT, r_NT, };
private static final byte[] nts_49 = { load32_NT, r_NT, };
private static final byte[] nts_50 = { riv_NT, riv_NT, r_NT, riv_NT, riv_NT, };
private static final byte[] nts_51 = { r_NT, r_NT, r_NT, r_NT, };
private static final byte[] nts_52 = { r_NT, rlv_NT, };
private static final byte[] nts_53 = { rlv_NT, riv_NT, };
private static final byte[] nts_54 = { load8_16_32_NT, };
private static final byte[] nts_55 = { r_NT, riv_NT, riv_NT, };
private static final byte[] nts_56 = { load64_NT, };
private static final byte[] nts_57 = { riv_NT, address1scaledreg_NT, };
private static final byte[] nts_58 = { address1scaledreg_NT, riv_NT, };
private static final byte[] nts_59 = { r_NT, address1scaledreg_NT, riv_NT, riv_NT, };
private static final byte[] nts_60 = { address1scaledreg_NT, r_NT, riv_NT, riv_NT, };
private static final byte[] nts_61 = { address1scaledreg_NT, address1reg_NT, riv_NT, riv_NT, };
private static final byte[] nts_62 = { address1reg_NT, address1scaledreg_NT, riv_NT, riv_NT, };
private static final byte[] nts_63 = { address_NT, riv_NT, riv_NT, };
private static final byte[] nts_64 = { riv_NT, riv_NT, rlv_NT, rlv_NT, };
private static final byte[] nts_65 = { riv_NT, riv_NT, riv_NT, };
private static final byte[] nts_66 = { load8_NT, riv_NT, riv_NT, };
private static final byte[] nts_67 = { load16_NT, riv_NT, riv_NT, };
private static final byte[] nts_68 = { riv_NT, riv_NT, address1scaledreg_NT, };
private static final byte[] nts_69 = { riv_NT, address1scaledreg_NT, riv_NT, };
private static final byte[] nts_70 = { riv_NT, address1scaledreg_NT, address1reg_NT, };
private static final byte[] nts_71 = { riv_NT, address1reg_NT, address1scaledreg_NT, };
private static final byte[] nts_72 = { riv_NT, address_NT, };
private static final byte[] nts_73 = { uload8_NT, r_NT, };
private static final byte[] nts_74 = { r_NT, uload8_NT, };
private static final byte[] nts_75 = { any_NT, };
private static final byte[] nts_76 = { riv_NT, riv_NT, any_NT, };
private static final byte[] nts_77 = { rlv_NT, };
private static final byte[][] nts = {
null, /* 0 */
nts_0, // 1
nts_1, // 2
nts_2, // 3
nts_2, // 4
nts_3, // 5
nts_3, // 6
nts_0, // 7
nts_1, // 8
nts_0, // 9
nts_1, // 10
nts_1, // 11
nts_4, // 12
nts_1, // 13
nts_1, // 14
nts_5, // 15
nts_6, // 16
nts_6, // 17
nts_6, // 18
nts_6, // 19
nts_7, // 20
nts_8, // 21
nts_6, // 22
nts_6, // 23
nts_6, // 24
nts_6, // 25
nts_9, // 26
nts_10, // 27
nts_6, // 28
nts_6, // 29
nts_11, // 30
nts_12, // 31
nts_13, // 32
nts_14, // 33
nts_6, // 34
nts_6, // 35
nts_15, // 36
nts_16, // 37
nts_0, // 38
nts_0, // 39
nts_0, // 40
nts_17, // 41
nts_15, // 42
nts_16, // 43
nts_18, // 44
nts_19, // 45
nts_16, // 46
nts_20, // 47
nts_21, // 48
nts_19, // 49
nts_18, // 50
nts_20, // 51
nts_21, // 52
nts_22, // 53
nts_22, // 54
nts_1, // 55
nts_1, // 56
nts_1, // 57
nts_1, // 58
nts_1, // 59
nts_1, // 60
nts_0, // 61
nts_1, // 62
nts_1, // 63
nts_1, // 64
nts_1, // 65
nts_4, // 66
nts_1, // 67
nts_1, // 68
nts_0, // 69
nts_1, // 70
nts_0, // 71
nts_0, // 72
nts_17, // 73
nts_23, // 74
nts_24, // 75
nts_0, // 76
nts_25, // 77
nts_25, // 78
nts_26, // 79
nts_26, // 80
nts_0, // 81
nts_0, // 82
nts_0, // 83
nts_12, // 84
nts_0, // 85
nts_12, // 86
nts_27, // 87
nts_27, // 88
nts_28, // 89
nts_28, // 90
nts_29, // 91
nts_29, // 92
nts_30, // 93
nts_30, // 94
nts_30, // 95
nts_30, // 96
nts_23, // 97
nts_23, // 98
nts_31, // 99
nts_31, // 100
nts_32, // 101
nts_32, // 102
nts_33, // 103
nts_33, // 104
nts_34, // 105
nts_35, // 106
nts_0, // 107
nts_12, // 108
nts_0, // 109
nts_12, // 110
nts_36, // 111
nts_37, // 112
nts_38, // 113
nts_39, // 114
nts_40, // 115
nts_41, // 116
nts_42, // 117
nts_42, // 118
nts_43, // 119
nts_44, // 120
nts_45, // 121
nts_46, // 122
nts_26, // 123
nts_26, // 124
nts_24, // 125
nts_23, // 126
nts_47, // 127
nts_47, // 128
nts_47, // 129
nts_47, // 130
nts_48, // 131
nts_48, // 132
nts_49, // 133
nts_24, // 134
nts_23, // 135
nts_47, // 136
nts_47, // 137
nts_47, // 138
nts_47, // 139
nts_6, // 140
nts_6, // 141
nts_6, // 142
nts_0, // 143
nts_25, // 144
nts_25, // 145
nts_48, // 146
nts_6, // 147
nts_0, // 148
nts_0, // 149
nts_0, // 150
nts_50, // 151
nts_25, // 152
nts_50, // 153
nts_25, // 154
nts_48, // 155
nts_6, // 156
nts_4, // 157
nts_50, // 158
nts_25, // 159
nts_50, // 160
nts_25, // 161
nts_48, // 162
nts_6, // 163
nts_4, // 164
nts_50, // 165
nts_25, // 166
nts_50, // 167
nts_25, // 168
nts_17, // 169
nts_17, // 170
nts_17, // 171
nts_17, // 172
nts_51, // 173
nts_51, // 174
nts_51, // 175
nts_51, // 176
nts_6, // 177
nts_26, // 178
nts_24, // 179
nts_23, // 180
nts_24, // 181
nts_23, // 182
nts_47, // 183
nts_47, // 184
nts_47, // 185
nts_47, // 186
nts_6, // 187
nts_24, // 188
nts_23, // 189
nts_47, // 190
nts_47, // 191
nts_47, // 192
nts_47, // 193
nts_6, // 194
nts_24, // 195
nts_23, // 196
nts_47, // 197
nts_47, // 198
nts_47, // 199
nts_47, // 200
nts_0, // 201
nts_25, // 202
nts_25, // 203
nts_52, // 204
nts_33, // 205
nts_33, // 206
nts_0, // 207
nts_53, // 208
nts_53, // 209
nts_53, // 210
nts_53, // 211
nts_53, // 212
nts_53, // 213
nts_33, // 214
nts_33, // 215
nts_52, // 216
nts_0, // 217
nts_0, // 218
nts_54, // 219
nts_55, // 220
nts_55, // 221
nts_0, // 222
nts_13, // 223
nts_55, // 224
nts_55, // 225
nts_0, // 226
nts_13, // 227
nts_55, // 228
nts_55, // 229
nts_0, // 230
nts_12, // 231
nts_0, // 232
nts_12, // 233
nts_0, // 234
nts_56, // 235
nts_0, // 236
nts_55, // 237
nts_55, // 238
nts_56, // 239
nts_0, // 240
nts_0, // 241
nts_56, // 242
nts_56, // 243
nts_56, // 244
nts_56, // 245
nts_4, // 246
nts_2, // 247
nts_27, // 248
nts_3, // 249
nts_28, // 250
nts_15, // 251
nts_16, // 252
nts_22, // 253
nts_7, // 254
nts_8, // 255
nts_14, // 256
nts_9, // 257
nts_10, // 258
nts_11, // 259
nts_12, // 260
nts_56, // 261
nts_0, // 262
nts_1, // 263
nts_1, // 264
nts_0, // 265
nts_6, // 266
nts_6, // 267
nts_6, // 268
nts_6, // 269
nts_54, // 270
nts_54, // 271
nts_54, // 272
nts_54, // 273
nts_6, // 274
nts_6, // 275
nts_6, // 276
nts_6, // 277
nts_13, // 278
nts_13, // 279
nts_13, // 280
nts_13, // 281
nts_6, // 282
nts_57, // 283
nts_58, // 284
nts_20, // 285
nts_21, // 286
nts_22, // 287
nts_6, // 288
nts_6, // 289
nts_6, // 290
nts_6, // 291
nts_18, // 292
nts_19, // 293
nts_20, // 294
nts_21, // 295
nts_22, // 296
nts_22, // 297
nts_6, // 298
nts_25, // 299
nts_59, // 300
nts_60, // 301
nts_61, // 302
nts_62, // 303
nts_63, // 304
nts_63, // 305
nts_25, // 306
nts_59, // 307
nts_60, // 308
nts_61, // 309
nts_62, // 310
nts_63, // 311
nts_63, // 312
nts_25, // 313
nts_59, // 314
nts_60, // 315
nts_61, // 316
nts_62, // 317
nts_63, // 318
nts_63, // 319
nts_64, // 320
nts_65, // 321
nts_66, // 322
nts_65, // 323
nts_66, // 324
nts_65, // 325
nts_67, // 326
nts_65, // 327
nts_67, // 328
nts_65, // 329
nts_68, // 330
nts_69, // 331
nts_70, // 332
nts_71, // 333
nts_72, // 334
nts_65, // 335
nts_55, // 336
nts_6, // 337
nts_55, // 338
nts_6, // 339
nts_26, // 340
nts_0, // 341
nts_14, // 342
nts_73, // 343
nts_74, // 344
nts_9, // 345
nts_23, // 346
nts_31, // 347
nts_30, // 348
nts_30, // 349
nts_27, // 350
nts_28, // 351
nts_29, // 352
nts_26, // 353
nts_23, // 354
nts_31, // 355
nts_33, // 356
nts_33, // 357
nts_1, // 358
nts_0, // 359
nts_1, // 360
nts_1, // 361
nts_1, // 362
nts_0, // 363
nts_1, // 364
nts_35, // 365
nts_75, // 366
nts_76, // 367
nts_35, // 368
nts_76, // 369
nts_1, // 370
nts_0, // 371
nts_1, // 372
nts_5, // 373
nts_17, // 374
nts_49, // 375
nts_0, // 376
nts_17, // 377
nts_49, // 378
nts_0, // 379
nts_48, // 380
nts_31, // 381
nts_17, // 382
nts_49, // 383
nts_17, // 384
nts_17, // 385
nts_17, // 386
nts_17, // 387
nts_17, // 388
nts_17, // 389
nts_0, // 390
nts_17, // 391
nts_17, // 392
nts_17, // 393
nts_17, // 394
nts_17, // 395
nts_0, // 396
nts_17, // 397
nts_17, // 398
nts_0, // 399
nts_0, // 400
nts_0, // 401
nts_0, // 402
nts_6, // 403
nts_6, // 404
nts_6, // 405
nts_6, // 406
nts_55, // 407
nts_55, // 408
nts_55, // 409
nts_55, // 410
nts_4, // 411
nts_4, // 412
nts_0, // 413
nts_0, // 414
nts_0, // 415
nts_0, // 416
nts_0, // 417
nts_0, // 418
nts_0, // 419
nts_0, // 420
nts_4, // 421
nts_77, // 422
nts_1, // 423
nts_1, // 424
nts_17, // 425
nts_17, // 426
};
/*static final byte arity[] = {
-1, // 0=GET_CLASS_OBJECT
0, // 1=GET_CAUGHT_EXCEPTION
1, // 2=SET_CAUGHT_EXCEPTION
-1, // 3=NEW
-1, // 4=NEW_UNRESOLVED
-1, // 5=NEWARRAY
-1, // 6=NEWARRAY_UNRESOLVED
-1, // 7=ATHROW
-1, // 8=CHECKCAST
-1, // 9=CHECKCAST_NOTNULL
-1, // 10=CHECKCAST_UNRESOLVED
-1, // 11=MUST_IMPLEMENT_INTERFACE
-1, // 12=INSTANCEOF
-1, // 13=INSTANCEOF_NOTNULL
-1, // 14=INSTANCEOF_UNRESOLVED
-1, // 15=MONITORENTER
-1, // 16=MONITOREXIT
-1, // 17=NEWOBJMULTIARRAY
-1, // 18=GETSTATIC
-1, // 19=PUTSTATIC
-1, // 20=GETFIELD
-1, // 21=PUTFIELD
-1, // 22=INT_ZERO_CHECK
-1, // 23=LONG_ZERO_CHECK
-1, // 24=BOUNDS_CHECK
-1, // 25=OBJARRAY_STORE_CHECK
-1, // 26=OBJARRAY_STORE_CHECK_NOTNULL
0, // 27=IG_PATCH_POINT
-1, // 28=IG_CLASS_TEST
-1, // 29=IG_METHOD_TEST
-1, // 30=TABLESWITCH
-1, // 31=LOOKUPSWITCH
2, // 32=INT_ALOAD
2, // 33=LONG_ALOAD
2, // 34=FLOAT_ALOAD
2, // 35=DOUBLE_ALOAD
-1, // 36=REF_ALOAD
2, // 37=UBYTE_ALOAD
2, // 38=BYTE_ALOAD
2, // 39=USHORT_ALOAD
2, // 40=SHORT_ALOAD
2, // 41=INT_ASTORE
2, // 42=LONG_ASTORE
2, // 43=FLOAT_ASTORE
2, // 44=DOUBLE_ASTORE
-1, // 45=REF_ASTORE
2, // 46=BYTE_ASTORE
2, // 47=SHORT_ASTORE
2, // 48=INT_IFCMP
2, // 49=INT_IFCMP2
2, // 50=LONG_IFCMP
2, // 51=FLOAT_IFCMP
2, // 52=DOUBLE_IFCMP
-1, // 53=REF_IFCMP
-1, // 54=LABEL
-1, // 55=BBEND
0, // 56=UNINT_BEGIN
0, // 57=UNINT_END
-1, // 58=READ_CEILING
-1, // 59=WRITE_FLOOR
-1, // 60=PHI
-1, // 61=SPLIT
-1, // 62=PI
0, // 63=NOP
1, // 64=INT_MOVE
1, // 65=LONG_MOVE
1, // 66=FLOAT_MOVE
1, // 67=DOUBLE_MOVE
-1, // 68=REF_MOVE
0, // 69=GUARD_MOVE
-1, // 70=INT_COND_MOVE
-1, // 71=LONG_COND_MOVE
-1, // 72=FLOAT_COND_MOVE
-1, // 73=DOUBLE_COND_MOVE
-1, // 74=REF_COND_MOVE
-1, // 75=GUARD_COND_MOVE
0, // 76=GUARD_COMBINE
-1, // 77=REF_ADD
2, // 78=INT_ADD
2, // 79=LONG_ADD
2, // 80=FLOAT_ADD
2, // 81=DOUBLE_ADD
-1, // 82=REF_SUB
2, // 83=INT_SUB
2, // 84=LONG_SUB
2, // 85=FLOAT_SUB
2, // 86=DOUBLE_SUB
2, // 87=INT_MUL
2, // 88=LONG_MUL
2, // 89=FLOAT_MUL
2, // 90=DOUBLE_MUL
2, // 91=INT_DIV
-1, // 92=LONG_DIV
2, // 93=FLOAT_DIV
2, // 94=DOUBLE_DIV
2, // 95=INT_REM
-1, // 96=LONG_REM
2, // 97=FLOAT_REM
2, // 98=DOUBLE_REM
-1, // 99=REF_NEG
1, // 100=INT_NEG
1, // 101=LONG_NEG
1, // 102=FLOAT_NEG
1, // 103=DOUBLE_NEG
-1, // 104=REF_SHL
2, // 105=INT_SHL
2, // 106=LONG_SHL
-1, // 107=REF_SHR
2, // 108=INT_SHR
2, // 109=LONG_SHR
-1, // 110=REF_USHR
2, // 111=INT_USHR
2, // 112=LONG_USHR
-1, // 113=REF_AND
2, // 114=INT_AND
2, // 115=LONG_AND
-1, // 116=REF_OR
2, // 117=INT_OR
2, // 118=LONG_OR
-1, // 119=REF_XOR
2, // 120=INT_XOR
-1, // 121=REF_NOT
1, // 122=INT_NOT
1, // 123=LONG_NOT
2, // 124=LONG_XOR
-1, // 125=INT_2ADDRSigExt
-1, // 126=INT_2ADDRZerExt
-1, // 127=LONG_2ADDR
-1, // 128=ADDR_2INT
-1, // 129=ADDR_2LONG
1, // 130=INT_2LONG
1, // 131=INT_2FLOAT
1, // 132=INT_2DOUBLE
1, // 133=LONG_2INT
1, // 134=LONG_2FLOAT
1, // 135=LONG_2DOUBLE
1, // 136=FLOAT_2INT
1, // 137=FLOAT_2LONG
1, // 138=FLOAT_2DOUBLE
1, // 139=DOUBLE_2INT
1, // 140=DOUBLE_2LONG
1, // 141=DOUBLE_2FLOAT
1, // 142=INT_2BYTE
1, // 143=INT_2USHORT
1, // 144=INT_2SHORT
2, // 145=LONG_CMP
-1, // 146=FLOAT_CMPL
-1, // 147=FLOAT_CMPG
-1, // 148=DOUBLE_CMPL
-1, // 149=DOUBLE_CMPG
1, // 150=RETURN
1, // 151=NULL_CHECK
0, // 152=GOTO
1, // 153=BOOLEAN_NOT
2, // 154=BOOLEAN_CMP_INT
-1, // 155=BOOLEAN_CMP_ADDR
2, // 156=BOOLEAN_CMP_LONG
-1, // 157=BOOLEAN_CMP_FLOAT
-1, // 158=BOOLEAN_CMP_DOUBLE
2, // 159=BYTE_LOAD
2, // 160=UBYTE_LOAD
2, // 161=SHORT_LOAD
2, // 162=USHORT_LOAD
-1, // 163=REF_LOAD
-1, // 164=REF_STORE
2, // 165=INT_LOAD
2, // 166=LONG_LOAD
2, // 167=FLOAT_LOAD
2, // 168=DOUBLE_LOAD
2, // 169=BYTE_STORE
2, // 170=SHORT_STORE
2, // 171=INT_STORE
2, // 172=LONG_STORE
2, // 173=FLOAT_STORE
2, // 174=DOUBLE_STORE
2, // 175=PREPARE_INT
-1, // 176=PREPARE_ADDR
2, // 177=PREPARE_LONG
2, // 178=ATTEMPT_INT
-1, // 179=ATTEMPT_ADDR
2, // 180=ATTEMPT_LONG
2, // 181=CALL
2, // 182=SYSCALL
0, // 183=YIELDPOINT_PROLOGUE
0, // 184=YIELDPOINT_EPILOGUE
0, // 185=YIELDPOINT_BACKEDGE
2, // 186=YIELDPOINT_OSR
-1, // 187=OSR_BARRIER
0, // 188=IR_PROLOGUE
0, // 189=RESOLVE
-1, // 190=RESOLVE_MEMBER
0, // 191=GET_TIME_BASE
-1, // 192=INSTRUMENTED_EVENT_COUNTER
2, // 193=TRAP_IF
0, // 194=TRAP
1, // 195=FLOAT_AS_INT_BITS
1, // 196=INT_BITS_AS_FLOAT
1, // 197=DOUBLE_AS_LONG_BITS
1, // 198=LONG_BITS_AS_DOUBLE
-1, // 199=ARRAYLENGTH
-1, // 200=GET_OBJ_TIB
-1, // 201=GET_CLASS_TIB
-1, // 202=GET_TYPE_FROM_TIB
-1, // 203=GET_SUPERCLASS_IDS_FROM_TIB
-1, // 204=GET_DOES_IMPLEMENT_FROM_TIB
-1, // 205=GET_ARRAY_ELEMENT_TIB_FROM_TIB
1, // 206=LOWTABLESWITCH
0, // 207=ADDRESS_CONSTANT
0, // 208=INT_CONSTANT
0, // 209=LONG_CONSTANT
0, // 210=REGISTER
2, // 211=OTHER_OPERAND
0, // 212=NULL
0, // 213=BRANCH_TARGET
1, // 214=MATERIALIZE_FP_CONSTANT
1, // 215=GET_JTOC
0, // 216=GET_CURRENT_PROCESSOR
-1, // 217=ROUND_TO_ZERO
0, // 218=CLEAR_FLOATING_POINT_STATE
1, // 219=PREFETCH
0, // 220=PAUSE
-1, // 221=FP_ADD
-1, // 222=FP_SUB
-1, // 223=FP_MUL
-1, // 224=FP_DIV
-1, // 225=FP_NEG
-1, // 226=FP_REM
-1, // 227=INT_2FP
-1, // 228=LONG_2FP
2, // 229=CMP_CMOV
-1, // 230=FCMP_CMOV
2, // 231=LCMP_CMOV
-1, // 232=CMP_FCMOV
-1, // 233=FCMP_FCMOV
-1, // 234=CALL_SAVE_VOLATILE
-1, // 235=MIR_START
-1, // 236=REQUIRE_ESP
-1, // 237=ADVISE_ESP
-1, // 238=MIR_LOWTABLESWITCH
-1, // 239=IA32_FCLEAR
-1, // 240=DUMMY_DEF
-1, // 241=DUMMY_USE
-1, // 242=IA32_FMOV_ENDING_LIVE_RANGE
-1, // 243=IA32_FMOV
-1, // 244=IA32_TRAPIF
-1, // 245=IA32_OFFSET
-1, // 246=IA32_LOCK_CMPXCHG
-1, // 247=IA32_LOCK_CMPXCHG8B
-1, // 248=IA32_ADC
-1, // 249=IA32_ADD
-1, // 250=IA32_AND
-1, // 251=IA32_BSWAP
-1, // 252=IA32_BT
-1, // 253=IA32_BTC
-1, // 254=IA32_BTR
-1, // 255=IA32_BTS
-1, // 256=IA32_SYSCALL
-1, // 257=IA32_CALL
-1, // 258=IA32_CDQ
-1, // 259=IA32_CMOV
-1, // 260=IA32_CMP
-1, // 261=IA32_CMPXCHG
-1, // 262=IA32_CMPXCHG8B
-1, // 263=IA32_DEC
-1, // 264=IA32_DIV
-1, // 265=IA32_FADD
-1, // 266=IA32_FADDP
-1, // 267=IA32_FCHS
-1, // 268=IA32_FCMOV
-1, // 269=IA32_FCOMI
-1, // 270=IA32_FCOMIP
-1, // 271=IA32_FDIV
-1, // 272=IA32_FDIVP
-1, // 273=IA32_FDIVR
-1, // 274=IA32_FDIVRP
-1, // 275=IA32_FEXAM
-1, // 276=IA32_FXCH
-1, // 277=IA32_FFREE
-1, // 278=IA32_FIADD
-1, // 279=IA32_FIDIV
-1, // 280=IA32_FIDIVR
-1, // 281=IA32_FILD
-1, // 282=IA32_FIMUL
-1, // 283=IA32_FINIT
-1, // 284=IA32_FIST
-1, // 285=IA32_FISTP
-1, // 286=IA32_FISUB
-1, // 287=IA32_FISUBR
-1, // 288=IA32_FLD
-1, // 289=IA32_FLDCW
-1, // 290=IA32_FLD1
-1, // 291=IA32_FLDL2T
-1, // 292=IA32_FLDL2E
-1, // 293=IA32_FLDPI
-1, // 294=IA32_FLDLG2
-1, // 295=IA32_FLDLN2
-1, // 296=IA32_FLDZ
-1, // 297=IA32_FMUL
-1, // 298=IA32_FMULP
-1, // 299=IA32_FNSTCW
-1, // 300=IA32_FNINIT
-1, // 301=IA32_FNSAVE
-1, // 302=IA32_FPREM
-1, // 303=IA32_FRSTOR
-1, // 304=IA32_FST
-1, // 305=IA32_FSTCW
-1, // 306=IA32_FSTP
-1, // 307=IA32_FSUB
-1, // 308=IA32_FSUBP
-1, // 309=IA32_FSUBR
-1, // 310=IA32_FSUBRP
-1, // 311=IA32_FUCOMI
-1, // 312=IA32_FUCOMIP
-1, // 313=IA32_IDIV
-1, // 314=IA32_IMUL1
-1, // 315=IA32_IMUL2
-1, // 316=IA32_INC
-1, // 317=IA32_INT
-1, // 318=IA32_JCC
-1, // 319=IA32_JCC2
-1, // 320=IA32_JMP
-1, // 321=IA32_LEA
-1, // 322=IA32_LOCK
-1, // 323=IA32_MOV
-1, // 324=IA32_MOVZX__B
-1, // 325=IA32_MOVSX__B
-1, // 326=IA32_MOVZX__W
-1, // 327=IA32_MOVSX__W
-1, // 328=IA32_MUL
-1, // 329=IA32_NEG
-1, // 330=IA32_NOT
-1, // 331=IA32_OR
-1, // 332=IA32_PAUSE
-1, // 333=IA32_PREFETCHNTA
-1, // 334=IA32_POP
-1, // 335=IA32_PUSH
-1, // 336=IA32_RCL
-1, // 337=IA32_RCR
-1, // 338=IA32_ROL
-1, // 339=IA32_ROR
-1, // 340=IA32_RET
-1, // 341=IA32_SAL
-1, // 342=IA32_SAR
-1, // 343=IA32_SHL
-1, // 344=IA32_SHR
-1, // 345=IA32_SBB
-1, // 346=IA32_SET__B
-1, // 347=IA32_SHLD
-1, // 348=IA32_SHRD
-1, // 349=IA32_SUB
-1, // 350=IA32_TEST
-1, // 351=IA32_XOR
-1, // 352=IA32_RDTSC
-1, // 353=IA32_ADDSS
-1, // 354=IA32_SUBSS
-1, // 355=IA32_MULSS
-1, // 356=IA32_DIVSS
-1, // 357=IA32_ADDSD
-1, // 358=IA32_SUBSD
-1, // 359=IA32_MULSD
-1, // 360=IA32_DIVSD
-1, // 361=IA32_XORPS
-1, // 362=IA32_XORPD
-1, // 363=IA32_UCOMISS
-1, // 364=IA32_UCOMISD
-1, // 365=IA32_CMPEQSS
-1, // 366=IA32_CMPLTSS
-1, // 367=IA32_CMPLESS
-1, // 368=IA32_CMPUNORDSS
-1, // 369=IA32_CMPNESS
-1, // 370=IA32_CMPNLTSS
-1, // 371=IA32_CMPNLESS
-1, // 372=IA32_CMPORDSS
-1, // 373=IA32_CMPEQSD
-1, // 374=IA32_CMPLTSD
-1, // 375=IA32_CMPLESD
-1, // 376=IA32_CMPUNORDSD
-1, // 377=IA32_CMPNESD
-1, // 378=IA32_CMPNLTSD
-1, // 379=IA32_CMPNLESD
-1, // 380=IA32_CMPORDSD
-1, // 381=IA32_MOVSS
-1, // 382=IA32_MOVSD
-1, // 383=IA32_MOVD
-1, // 384=IA32_MOVQ
-1, // 385=IA32_CVTSI2SS
-1, // 386=IA32_CVTSS2SD
-1, // 387=IA32_CVTSS2SI
-1, // 388=IA32_CVTTSS2SI
-1, // 389=IA32_CVTSI2SD
-1, // 390=IA32_CVTSD2SS
-1, // 391=IA32_CVTSD2SI
-1, // 392=IA32_CVTTSD2SI
-1, // 393=MIR_END
};*/
static final char[][] decode = {null,
{// stm_NT
0,
1,
55,
56,
57,
58,
59,
60,
61,
62,
63,
66,
67,
69,
70,
71,
72,
73,
74,
75,
77,
78,
101,
102,
127,
128,
129,
130,
136,
137,
138,
139,
144,
145,
151,
152,
153,
154,
158,
159,
160,
161,
165,
166,
167,
168,
183,
184,
185,
186,
190,
191,
192,
193,
197,
198,
199,
200,
202,
203,
220,
221,
224,
225,
228,
229,
237,
238,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
358,
359,
360,
361,
362,
363,
364,
371,
373,
407,
408,
409,
410,
424,
425,
426,
},
{// r_NT
0,
2,
3,
5,
49,
50,
51,
52,
53,
54,
64,
65,
68,
76,
79,
81,
83,
84,
85,
86,
87,
89,
91,
93,
95,
97,
99,
103,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
124,
132,
133,
140,
141,
142,
149,
169,
170,
171,
172,
173,
174,
175,
176,
201,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
223,
226,
227,
230,
231,
232,
233,
234,
235,
236,
239,
240,
241,
242,
243,
246,
262,
263,
264,
265,
266,
267,
268,
269,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
320,
357,
365,
366,
367,
368,
369,
370,
372,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
},
{// czr_NT
0,
123,
125,
126,
131,
134,
135,
247,
},
{// cz_NT
0,
4,
248,
},
{// szpr_NT
0,
143,
146,
147,
148,
150,
155,
156,
157,
162,
163,
164,
177,
179,
180,
187,
188,
189,
194,
195,
196,
222,
249,
},
{// szp_NT
0,
6,
178,
181,
182,
250,
},
{// riv_NT
0,
7,
8,
},
{// rlv_NT
0,
9,
10,
},
{// any_NT
0,
11,
12,
13,
14,
15,
},
{// sload8_NT
0,
16,
17,
254,
},
{// uload8_NT
0,
18,
19,
255,
270,
},
{// load8_NT
0,
20,
21,
256,
},
{// sload16_NT
0,
22,
23,
257,
},
{// uload16_NT
0,
24,
25,
258,
},
{// load16_NT
0,
26,
27,
259,
},
{// load32_NT
0,
28,
29,
244,
245,
260,
},
{// load16_32_NT
0,
30,
31,
},
{// load8_16_32_NT
0,
32,
33,
},
{// load64_NT
0,
34,
35,
261,
},
{// address1scaledreg_NT
0,
36,
38,
43,
252,
},
{// address1reg_NT
0,
39,
40,
42,
251,
},
{// address_NT
0,
37,
41,
44,
45,
46,
47,
48,
253,
},
{// boolcmp_NT
0,
80,
82,
88,
90,
92,
94,
96,
98,
100,
104,
},
{// bittest_NT
0,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
},
};
static void closure_r(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_rlv) {
p.cost_rlv = (char)(c);
p.word1 = (p.word1 & 0xFFFFFFFC) | 0x1; // p.rlv = 1
}
if (c < p.cost_riv) {
p.cost_riv = (char)(c);
p.word0 = (p.word0 & 0x9FFFFFFF) | 0x20000000; // p.riv = 1
closure_riv(p, c);
}
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x1; // p.stm = 1
}
}
static void closure_czr(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_cz) {
p.cost_cz = (char)(c);
p.word0 = (p.word0 & 0xFFE7FFFF) | 0x80000; // p.cz = 1
}
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x200; // p.r = 2
closure_r(p, c);
}
}
static void closure_szpr(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_szp) {
p.cost_szp = (char)(c);
p.word0 = (p.word0 & 0xE3FFFFFF) | 0x4000000; // p.szp = 1
}
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x300; // p.r = 3
closure_r(p, c);
}
}
static void closure_riv(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_any) {
p.cost_any = (char)(c);
p.word1 = (p.word1 & 0xFFFFFFE3) | 0x8; // p.any = 2
}
}
static void closure_sload8(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_load8) {
p.cost_load8 = (char)(c);
p.word1 = (p.word1 & 0xFFFFF3FF) | 0x400; // p.load8 = 1
closure_load8(p, c);
}
}
static void closure_uload8(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_load8) {
p.cost_load8 = (char)(c);
p.word1 = (p.word1 & 0xFFFFF3FF) | 0x800; // p.load8 = 2
closure_load8(p, c);
}
}
static void closure_load8(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_load8_16_32) {
p.cost_load8_16_32 = (char)(c);
p.word1 = (p.word1 & 0xFE7FFFFF) | 0x1000000; // p.load8_16_32 = 2
}
}
static void closure_sload16(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_load16) {
p.cost_load16 = (char)(c);
p.word1 = (p.word1 & 0xFFFCFFFF) | 0x10000; // p.load16 = 1
closure_load16(p, c);
}
}
static void closure_uload16(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_load16) {
p.cost_load16 = (char)(c);
p.word1 = (p.word1 & 0xFFFCFFFF) | 0x20000; // p.load16 = 2
closure_load16(p, c);
}
}
static void closure_load16(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_load16_32) {
p.cost_load16_32 = (char)(c);
p.word1 = (p.word1 & 0xFF9FFFFF) | 0x200000; // p.load16_32 = 1
closure_load16_32(p, c);
}
}
static void closure_load32(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_load16_32) {
p.cost_load16_32 = (char)(c);
p.word1 = (p.word1 & 0xFF9FFFFF) | 0x400000; // p.load16_32 = 2
closure_load16_32(p, c);
}
}
static void closure_load16_32(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_load8_16_32) {
p.cost_load8_16_32 = (char)(c);
p.word1 = (p.word1 & 0xFE7FFFFF) | 0x800000; // p.load8_16_32 = 1
}
}
static void closure_address1scaledreg(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_address) {
p.cost_address = (char)(c);
p.word2 = (p.word2 & 0xFFFFFF87) | 0x8; // p.address = 1
}
}
static void closure_address1reg(OPT_BURS_TreeNode p, int c) {
if (c < p.cost_address1scaledreg) {
p.cost_address1scaledreg = (char)(c);
p.word1 = (p.word1 & 0xC7FFFFFF) | 0x8000000; // p.address1scaledreg = 1
closure_address1scaledreg(p, c);
}
}
private void label_GET_CAUGHT_EXCEPTION(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// r: GET_CAUGHT_EXCEPTION
if (11 < p.cost_r) {
p.cost_r = (char)(11);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xC00; // p.r = 12
closure_r(p, 11);
}
// r: GET_CAUGHT_EXCEPTION
if (15 < p.cost_r) {
p.cost_r = (char)(15);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9000; // p.r = 144
closure_r(p, 15);
}
}
private void label_SET_CAUGHT_EXCEPTION(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// stm: SET_CAUGHT_EXCEPTION(r)
c = STATE(lchild).cost_r + 11;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0xD; // p.stm = 13
}
// stm: SET_CAUGHT_EXCEPTION(r)
c = STATE(lchild).cost_r + 17;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x7D; // p.stm = 125
}
}
private void label_IG_PATCH_POINT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: IG_PATCH_POINT
if (10 < p.cost_stm) {
p.cost_stm = (char)(10);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x2; // p.stm = 2
}
}
private void label_INT_ALOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// load32: INT_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_load32) {
p.cost_load32 = (char)(c);
p.word1 = (p.word1 & 0xFFE3FFFF) | 0x80000; // p.load32 = 2
closure_load32(p, c);
}
// r: INT_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7700; // p.r = 119
closure_r(p, c);
}
}
private void label_LONG_ALOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// load64: LONG_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_load64) {
p.cost_load64 = (char)(c);
p.word1 = (p.word1 & 0xF9FFFFFF) | 0x4000000; // p.load64 = 2
}
// r: LONG_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 30;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7900; // p.r = 121
closure_r(p, c);
}
}
private void label_FLOAT_ALOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: FLOAT_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xA800; // p.r = 168
closure_r(p, c);
}
}
private void label_DOUBLE_ALOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: DOUBLE_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xA600; // p.r = 166
closure_r(p, c);
}
}
private void label_UBYTE_ALOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// uload8: UBYTE_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_uload8) {
p.cost_uload8 = (char)(c);
p.word1 = (p.word1 & 0xFFFFFC7F) | 0x100; // p.uload8 = 2
closure_uload8(p, c);
}
// r: UBYTE_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6500; // p.r = 101
closure_r(p, c);
}
}
private void label_BYTE_ALOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// sload8: BYTE_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_sload8) {
p.cost_sload8 = (char)(c);
p.word1 = (p.word1 & 0xFFFFFF9F) | 0x40; // p.sload8 = 2
closure_sload8(p, c);
}
// r: BYTE_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6300; // p.r = 99
closure_r(p, c);
}
}
private void label_USHORT_ALOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// uload16: USHORT_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_uload16) {
p.cost_uload16 = (char)(c);
p.word1 = (p.word1 & 0xFFFF3FFF) | 0x8000; // p.uload16 = 2
closure_uload16(p, c);
}
// r: USHORT_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6C00; // p.r = 108
closure_r(p, c);
}
}
private void label_SHORT_ALOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// sload16: SHORT_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_sload16) {
p.cost_sload16 = (char)(c);
p.word1 = (p.word1 & 0xFFFFCFFF) | 0x2000; // p.sload16 = 2
closure_sload16(p, c);
}
// r: SHORT_ALOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6A00; // p.r = 106
closure_r(p, c);
}
}
private void label_INT_ASTORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: INT_ASTORE(INT_ADD(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_ADD_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x1A; // p.stm = 26
}
}
if ( // stm: INT_ASTORE(INT_ADD(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_ADD_opcode &&
lchild.child2.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x1B; // p.stm = 27
}
}
if ( // stm: INT_ASTORE(INT_SUB(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SUB_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x1E; // p.stm = 30
}
}
if ( // stm: INT_ASTORE(INT_SUB(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SUB_opcode &&
lchild.child2.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x1F; // p.stm = 31
}
}
if ( // stm: INT_ASTORE(INT_NEG(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_NEG_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x21; // p.stm = 33
}
}
if ( // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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));
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x24; // p.stm = 36
}
}
if ( // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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));
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x25; // p.stm = 37
}
}
if ( // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SHR_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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));
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x28; // p.stm = 40
}
}
if ( // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SHR_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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));
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x29; // p.stm = 41
}
}
if ( // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_USHR_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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));
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x2C; // p.stm = 44
}
}
if ( // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_USHR_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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));
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x2D; // p.stm = 45
}
}
if ( // stm: INT_ASTORE(INT_AND(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_AND_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x30; // p.stm = 48
}
}
if ( // stm: INT_ASTORE(INT_AND(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_AND_opcode &&
lchild.child2.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x31; // p.stm = 49
}
}
if ( // stm: INT_ASTORE(INT_OR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_OR_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x34; // p.stm = 52
}
}
if ( // stm: INT_ASTORE(INT_OR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_OR_opcode &&
lchild.child2.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x35; // p.stm = 53
}
}
if ( // stm: INT_ASTORE(INT_XOR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_XOR_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x38; // p.stm = 56
}
}
if ( // stm: INT_ASTORE(INT_XOR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_XOR_opcode &&
lchild.child2.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x39; // p.stm = 57
}
}
if ( // stm: INT_ASTORE(INT_NOT(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_NOT_opcode &&
lchild.child1.getOpcode() == INT_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x3B; // p.stm = 59
}
}
if ( // stm: INT_ASTORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == LONG_2INT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x43; // p.stm = 67
}
}
if ( // stm: INT_ASTORE(riv,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x60; // p.stm = 96
}
}
}
private void label_LONG_ASTORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: LONG_ASTORE(r,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 30;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x63; // p.stm = 99
}
}
if ( // stm: LONG_ASTORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
lchild.getOpcode() == LONG_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 26;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x64; // p.stm = 100
}
}
}
private void label_FLOAT_ASTORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: FLOAT_ASTORE(r,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 20;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x82; // p.stm = 130
}
}
}
private void label_DOUBLE_ASTORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: DOUBLE_ASTORE(r,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 20;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x80; // p.stm = 128
}
}
}
private void label_BYTE_ASTORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: BYTE_ASTORE(BOOLEAN_NOT(UBYTE_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == BOOLEAN_NOT_opcode &&
lchild.child1.getOpcode() == UBYTE_ALOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x15; // p.stm = 21
}
}
if ( // stm: BYTE_ASTORE(boolcmp,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_boolcmp + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x17; // p.stm = 23
}
}
if ( // stm: BYTE_ASTORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_2BYTE_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x3D; // p.stm = 61
}
}
if ( // stm: BYTE_ASTORE(riv,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x54; // p.stm = 84
}
}
if ( // stm: BYTE_ASTORE(load8,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_load8 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x55; // p.stm = 85
}
}
}
private void label_SHORT_ASTORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: SHORT_ASTORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_2USHORT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x3F; // p.stm = 63
}
}
if ( // stm: SHORT_ASTORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_2SHORT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x41; // p.stm = 65
}
}
if ( // stm: SHORT_ASTORE(riv,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x58; // p.stm = 88
}
}
if ( // stm: SHORT_ASTORE(load16,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_load16 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x59; // p.stm = 89
}
}
}
private void label_INT_IFCMP(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x44; // p.stm = 68
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x45; // p.stm = 69
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x46; // p.stm = 70
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x47; // p.stm = 71
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x48; // p.stm = 72
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_address + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isZERO(VR(p), 54);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x49; // p.stm = 73
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x4A; // p.stm = 74
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x4B; // p.stm = 75
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x4C; // p.stm = 76
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x4D; // p.stm = 77
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x4E; // p.stm = 78
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x4F; // p.stm = 79
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_address + STATE(lchild.child2.child2.child1).cost_riv + STATE(lchild.child2.child2.child2).cost_riv + isONE(VR(p), 54);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x50; // p.stm = 80
}
}
if ( // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
lchild.getOpcode() == ATTEMPT_INT_opcode &&
lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
lchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
lchild.child2.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x51; // p.stm = 81
}
}
// stm: INT_IFCMP(r,riv)
c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 26;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x65; // p.stm = 101
}
if ( // stm: INT_IFCMP(r,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + (VR(p) == 0 && EQ_NE(IfCmp.getCond(P(p)))?24:INFINITE);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x66; // p.stm = 102
}
}
if ( // stm: INT_IFCMP(load8,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_load8 + FITS(IfCmp.getVal2(P(p)), 8, 28);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x67; // p.stm = 103
}
}
// stm: INT_IFCMP(uload8,r)
c = STATE(lchild).cost_uload8 + STATE(rchild).cost_r + 28;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x68; // p.stm = 104
}
// stm: INT_IFCMP(r,uload8)
c = STATE(lchild).cost_r + STATE(rchild).cost_uload8 + 28;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x69; // p.stm = 105
}
if ( // stm: INT_IFCMP(sload16,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_sload16 + FITS(IfCmp.getVal2(P(p)), 8, 28);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x6A; // p.stm = 106
}
}
// stm: INT_IFCMP(load32,riv)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 28;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x6B; // p.stm = 107
}
// stm: INT_IFCMP(r,load32)
c = STATE(lchild).cost_r + STATE(rchild).cost_load32 + 28;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x6C; // p.stm = 108
}
if ( // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && IfCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 1 && IfCmp.getCond(P(p)).isEQUAL()) ? 13:INFINITE);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x6D; // p.stm = 109
}
}
if ( // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && IfCmp.getCond(P(p)).isEQUAL()) || (VR(p) == 1 && IfCmp.getCond(P(p)).isNOT_EQUAL()) ? 13:INFINITE);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x6E; // p.stm = 110
}
}
if ( // stm: INT_IFCMP(cz,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_cz + isZERO(VR(p), 11);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x6F; // p.stm = 111
}
}
if ( // stm: INT_IFCMP(szp,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_szp + (VR(p) == 0 && EQ_NE(IfCmp.getCond(P(p)))?11:INFINITE);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x70; // p.stm = 112
}
}
if ( // stm: INT_IFCMP(bittest,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_bittest + ((VR(p) == 0 || VR(p) == 1) && EQ_NE(IfCmp.getCond(P(p))) ? 11 : INFINITE);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x71; // p.stm = 113
}
}
}
private void label_INT_IFCMP2(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// stm: INT_IFCMP2(r,riv)
c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 26;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x72; // p.stm = 114
}
// stm: INT_IFCMP2(load32,riv)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 28;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x73; // p.stm = 115
}
// stm: INT_IFCMP2(r,load32)
c = STATE(lchild).cost_r + STATE(rchild).cost_load32 + 28;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x74; // p.stm = 116
}
}
private void label_LONG_IFCMP(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// stm: LONG_IFCMP(rlv,rlv)
c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 30;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x75; // p.stm = 117
}
}
private void label_FLOAT_IFCMP(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// stm: FLOAT_IFCMP(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + 20;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x84; // p.stm = 132
}
}
private void label_DOUBLE_IFCMP(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// stm: DOUBLE_IFCMP(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + 20;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x85; // p.stm = 133
}
}
private void label_UNINT_BEGIN(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: UNINT_BEGIN
if (10 < p.cost_stm) {
p.cost_stm = (char)(10);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x3; // p.stm = 3
}
}
private void label_UNINT_END(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: UNINT_END
if (10 < p.cost_stm) {
p.cost_stm = (char)(10);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x4; // p.stm = 4
}
}
private void label_NOP(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: NOP
if (10 < p.cost_stm) {
p.cost_stm = (char)(10);
p.word0 = (p.word0 & 0xFFFFFF00) | 0xA; // p.stm = 10
}
}
private void label_INT_MOVE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// address1reg: INT_MOVE(r)
c = STATE(lchild).cost_r + 0;
if (c < p.cost_address1reg) {
p.cost_address1reg = (char)(c);
p.word2 = (p.word2 & 0xFFFFFFF8) | 0x2; // p.address1reg = 2
closure_address1reg(p, c);
}
// r: INT_MOVE(address)
c = STATE(lchild).cost_address + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x900; // p.r = 9
closure_r(p, c);
}
// r: INT_MOVE(riv)
c = STATE(lchild).cost_riv + 13;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5D00; // p.r = 93
closure_r(p, c);
}
// czr: INT_MOVE(czr)
c = STATE(lchild).cost_czr + 11;
if (c < p.cost_czr) {
p.cost_czr = (char)(c);
p.word0 = (p.word0 & 0xFFF8FFFF) | 0x70000; // p.czr = 7
closure_czr(p, c);
}
// cz: INT_MOVE(cz)
c = STATE(lchild).cost_cz + 0;
if (c < p.cost_cz) {
p.cost_cz = (char)(c);
p.word0 = (p.word0 & 0xFFE7FFFF) | 0x100000; // p.cz = 2
}
// szpr: INT_MOVE(szpr)
c = STATE(lchild).cost_szpr + 11;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2C00000; // p.szpr = 22
closure_szpr(p, c);
}
// szp: INT_MOVE(szp)
c = STATE(lchild).cost_szp + 0;
if (c < p.cost_szp) {
p.cost_szp = (char)(c);
p.word0 = (p.word0 & 0xE3FFFFFF) | 0x14000000; // p.szp = 5
}
// address1reg: INT_MOVE(address1reg)
c = STATE(lchild).cost_address1reg + 0;
if (c < p.cost_address1reg) {
p.cost_address1reg = (char)(c);
p.word2 = (p.word2 & 0xFFFFFFF8) | 0x4; // p.address1reg = 4
closure_address1reg(p, c);
}
// address1scaledreg: INT_MOVE(address1scaledreg)
c = STATE(lchild).cost_address1scaledreg + 0;
if (c < p.cost_address1scaledreg) {
p.cost_address1scaledreg = (char)(c);
p.word1 = (p.word1 & 0xC7FFFFFF) | 0x20000000; // p.address1scaledreg = 4
closure_address1scaledreg(p, c);
}
// address: INT_MOVE(address)
c = STATE(lchild).cost_address + 0;
if (c < p.cost_address) {
p.cost_address = (char)(c);
p.word2 = (p.word2 & 0xFFFFFF87) | 0x40; // p.address = 8
}
// sload8: INT_MOVE(sload8)
c = STATE(lchild).cost_sload8 + 0;
if (c < p.cost_sload8) {
p.cost_sload8 = (char)(c);
p.word1 = (p.word1 & 0xFFFFFF9F) | 0x60; // p.sload8 = 3
closure_sload8(p, c);
}
// uload8: INT_MOVE(uload8)
c = STATE(lchild).cost_uload8 + 0;
if (c < p.cost_uload8) {
p.cost_uload8 = (char)(c);
p.word1 = (p.word1 & 0xFFFFFC7F) | 0x180; // p.uload8 = 3
closure_uload8(p, c);
}
// load8: INT_MOVE(load8)
c = STATE(lchild).cost_load8 + 0;
if (c < p.cost_load8) {
p.cost_load8 = (char)(c);
p.word1 = (p.word1 & 0xFFFFF3FF) | 0xC00; // p.load8 = 3
closure_load8(p, c);
}
// sload16: INT_MOVE(sload16)
c = STATE(lchild).cost_sload16 + 0;
if (c < p.cost_sload16) {
p.cost_sload16 = (char)(c);
p.word1 = (p.word1 & 0xFFFFCFFF) | 0x3000; // p.sload16 = 3
closure_sload16(p, c);
}
// uload16: INT_MOVE(uload16)
c = STATE(lchild).cost_uload16 + 0;
if (c < p.cost_uload16) {
p.cost_uload16 = (char)(c);
p.word1 = (p.word1 & 0xFFFF3FFF) | 0xC000; // p.uload16 = 3
closure_uload16(p, c);
}
// load16: INT_MOVE(load16)
c = STATE(lchild).cost_load16 + 0;
if (c < p.cost_load16) {
p.cost_load16 = (char)(c);
p.word1 = (p.word1 & 0xFFFCFFFF) | 0x30000; // p.load16 = 3
closure_load16(p, c);
}
// load32: INT_MOVE(load32)
c = STATE(lchild).cost_load32 + 0;
if (c < p.cost_load32) {
p.cost_load32 = (char)(c);
p.word1 = (p.word1 & 0xFFE3FFFF) | 0x140000; // p.load32 = 5
closure_load32(p, c);
}
}
private void label_LONG_MOVE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// load64: LONG_MOVE(load64)
c = STATE(lchild).cost_load64 + 0;
if (c < p.cost_load64) {
p.cost_load64 = (char)(c);
p.word1 = (p.word1 & 0xF9FFFFFF) | 0x6000000; // p.load64 = 3
}
// r: LONG_MOVE(r)
c = STATE(lchild).cost_r + 23;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5E00; // p.r = 94
closure_r(p, c);
}
if ( // r: LONG_MOVE(LONG_CONSTANT)
lchild.getOpcode() == LONG_CONSTANT_opcode
) {
c = 21;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5F00; // p.r = 95
closure_r(p, c);
}
}
}
private void label_FLOAT_MOVE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: FLOAT_MOVE(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xA300; // p.r = 163
closure_r(p, c);
}
}
private void label_DOUBLE_MOVE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: DOUBLE_MOVE(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xA400; // p.r = 164
closure_r(p, c);
}
}
private void label_GUARD_MOVE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// r: GUARD_MOVE
if (11 < p.cost_r) {
p.cost_r = (char)(11);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xA00; // p.r = 10
closure_r(p, 11);
}
}
private void label_GUARD_COMBINE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// r: GUARD_COMBINE
if (11 < p.cost_r) {
p.cost_r = (char)(11);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xB00; // p.r = 11
closure_r(p, 11);
}
}
private void label_INT_ADD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // address1reg: INT_ADD(r,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + 0;
if (c < p.cost_address1reg) {
p.cost_address1reg = (char)(c);
p.word2 = (p.word2 & 0xFFFFFFF8) | 0x1; // p.address1reg = 1
closure_address1reg(p, c);
}
}
// address: INT_ADD(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + 0;
if (c < p.cost_address) {
p.cost_address = (char)(c);
p.word2 = (p.word2 & 0xFFFFFF87) | 0x10; // p.address = 2
}
if ( // address1reg: INT_ADD(address1reg,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_address1reg + 0;
if (c < p.cost_address1reg) {
p.cost_address1reg = (char)(c);
p.word2 = (p.word2 & 0xFFFFFFF8) | 0x3; // p.address1reg = 3
closure_address1reg(p, c);
}
}
if ( // address1scaledreg: INT_ADD(address1scaledreg,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_address1scaledreg + 0;
if (c < p.cost_address1scaledreg) {
p.cost_address1scaledreg = (char)(c);
p.word1 = (p.word1 & 0xC7FFFFFF) | 0x18000000; // p.address1scaledreg = 3
closure_address1scaledreg(p, c);
}
}
// address: INT_ADD(r,address1scaledreg)
c = STATE(lchild).cost_r + STATE(rchild).cost_address1scaledreg + 0;
if (c < p.cost_address) {
p.cost_address = (char)(c);
p.word2 = (p.word2 & 0xFFFFFF87) | 0x18; // p.address = 3
}
// address: INT_ADD(address1scaledreg,r)
c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_r + 0;
if (c < p.cost_address) {
p.cost_address = (char)(c);
p.word2 = (p.word2 & 0xFFFFFF87) | 0x20; // p.address = 4
}
if ( // address: INT_ADD(address1scaledreg,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_address1scaledreg + 0;
if (c < p.cost_address) {
p.cost_address = (char)(c);
p.word2 = (p.word2 & 0xFFFFFF87) | 0x28; // p.address = 5
}
}
// address: INT_ADD(address1scaledreg,address1reg)
c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 0;
if (c < p.cost_address) {
p.cost_address = (char)(c);
p.word2 = (p.word2 & 0xFFFFFF87) | 0x30; // p.address = 6
}
// address: INT_ADD(address1reg,address1scaledreg)
c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 0;
if (c < p.cost_address) {
p.cost_address = (char)(c);
p.word2 = (p.word2 & 0xFFFFFF87) | 0x38; // p.address = 7
}
// r: INT_ADD(address1scaledreg,r)
c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_r + 11;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x400; // p.r = 4
closure_r(p, c);
}
// r: INT_ADD(r,address1scaledreg)
c = STATE(lchild).cost_r + STATE(rchild).cost_address1scaledreg + 11;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x500; // p.r = 5
closure_r(p, c);
}
// r: INT_ADD(address1scaledreg,address1reg)
c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 11;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x600; // p.r = 6
closure_r(p, c);
}
// r: INT_ADD(address1reg,address1scaledreg)
c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 11;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x700; // p.r = 7
closure_r(p, c);
}
if ( // r: INT_ADD(address,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_address + 11;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x800; // p.r = 8
closure_r(p, c);
}
}
// czr: INT_ADD(r,riv)
c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 13;
if (c < p.cost_czr) {
p.cost_czr = (char)(c);
p.word0 = (p.word0 & 0xFFF8FFFF) | 0x10000; // p.czr = 1
closure_czr(p, c);
}
// r: INT_ADD(r,riv)
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2E00; // p.r = 46
closure_r(p, c);
}
// czr: INT_ADD(riv,load32)
c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
if (c < p.cost_czr) {
p.cost_czr = (char)(c);
p.word0 = (p.word0 & 0xFFF8FFFF) | 0x20000; // p.czr = 2
closure_czr(p, c);
}
// czr: INT_ADD(load32,riv)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
if (c < p.cost_czr) {
p.cost_czr = (char)(c);
p.word0 = (p.word0 & 0xFFF8FFFF) | 0x30000; // p.czr = 3
closure_czr(p, c);
}
}
private void label_LONG_ADD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: LONG_ADD(r,rlv)
c = STATE(lchild).cost_r + STATE(rchild).cost_rlv + 23;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3E00; // p.r = 62
closure_r(p, c);
}
}
private void label_FLOAT_ADD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: FLOAT_ADD(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + (p.child1.isREGISTERNode() ? 20 : 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9200; // p.r = 146
closure_r(p, c);
}
// r: FLOAT_ADD(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + (p.child2.isREGISTERNode() ? 20 : 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9300; // p.r = 147
closure_r(p, c);
}
}
private void label_DOUBLE_ADD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: DOUBLE_ADD(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + (p.child1.isREGISTERNode() ? 20 : 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9900; // p.r = 153
closure_r(p, c);
}
// r: DOUBLE_ADD(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + (p.child2.isREGISTERNode() ? 20 : 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9A00; // p.r = 154
closure_r(p, c);
}
}
private void label_INT_SUB(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// czr: INT_SUB(riv,r)
c = STATE(lchild).cost_riv + STATE(rchild).cost_r + 13;
if (c < p.cost_czr) {
p.cost_czr = (char)(c);
p.word0 = (p.word0 & 0xFFF8FFFF) | 0x40000; // p.czr = 4
closure_czr(p, c);
}
// r: INT_SUB(riv,r)
c = STATE(lchild).cost_riv + STATE(rchild).cost_r + (Binary.getResult(P(p)).similar(Binary.getVal2(P(p))) ? 13-2 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2F00; // p.r = 47
closure_r(p, c);
}
// r: INT_SUB(load32,r)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_r + (Binary.getResult(P(p)).similar(Binary.getVal2(P(p))) ? 15-2 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3000; // p.r = 48
closure_r(p, c);
}
// czr: INT_SUB(riv,load32)
c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
if (c < p.cost_czr) {
p.cost_czr = (char)(c);
p.word0 = (p.word0 & 0xFFF8FFFF) | 0x50000; // p.czr = 5
closure_czr(p, c);
}
// czr: INT_SUB(load32,riv)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
if (c < p.cost_czr) {
p.cost_czr = (char)(c);
p.word0 = (p.word0 & 0xFFF8FFFF) | 0x60000; // p.czr = 6
closure_czr(p, c);
}
}
private void label_LONG_SUB(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: LONG_SUB(rlv,rlv)
c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3F00; // p.r = 63
closure_r(p, c);
}
}
private void label_FLOAT_SUB(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: FLOAT_SUB(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9400; // p.r = 148
closure_r(p, c);
}
}
private void label_DOUBLE_SUB(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: DOUBLE_SUB(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9B00; // p.r = 155
closure_r(p, c);
}
}
private void label_INT_MUL(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: INT_MUL(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3100; // p.r = 49
closure_r(p, c);
}
}
private void label_LONG_MUL(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: LONG_MUL(rlv,rlv)
c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4000; // p.r = 64
closure_r(p, c);
}
}
private void label_FLOAT_MUL(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: FLOAT_MUL(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + (p.child1.isREGISTERNode() ? 20 : 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9500; // p.r = 149
closure_r(p, c);
}
// r: FLOAT_MUL(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + (p.child2.isREGISTERNode() ? 20 : 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9600; // p.r = 150
closure_r(p, c);
}
}
private void label_DOUBLE_MUL(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: DOUBLE_MUL(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + (p.child1.isREGISTERNode() ? 20 : 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9C00; // p.r = 156
closure_r(p, c);
}
}
private void label_INT_DIV(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: INT_DIV(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 52;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3200; // p.r = 50
closure_r(p, c);
}
}
private void label_FLOAT_DIV(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: FLOAT_DIV(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9700; // p.r = 151
closure_r(p, c);
}
}
private void label_DOUBLE_DIV(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: DOUBLE_DIV(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9D00; // p.r = 157
closure_r(p, c);
}
}
private void label_INT_REM(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: INT_REM(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 52;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3300; // p.r = 51
closure_r(p, c);
}
}
private void label_FLOAT_REM(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: FLOAT_REM(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9F00; // p.r = 159
closure_r(p, c);
}
}
private void label_DOUBLE_REM(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: DOUBLE_REM(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xA000; // p.r = 160
closure_r(p, c);
}
}
private void label_INT_NEG(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// szpr: INT_NEG(r)
c = STATE(lchild).cost_r + 13;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x200000; // p.szpr = 1
closure_szpr(p, c);
}
}
private void label_LONG_NEG(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: LONG_NEG(r)
c = STATE(lchild).cost_r + 23;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4100; // p.r = 65
closure_r(p, c);
}
}
private void label_FLOAT_NEG(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: FLOAT_NEG(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9800; // p.r = 152
closure_r(p, c);
}
}
private void label_DOUBLE_NEG(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: DOUBLE_NEG(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9E00; // p.r = 158
closure_r(p, c);
}
}
private void label_INT_SHL(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // address1scaledreg: INT_SHL(r,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + LEA_SHIFT(Binary.getVal2(P(p)), 0);
if (c < p.cost_address1scaledreg) {
p.cost_address1scaledreg = (char)(c);
p.word1 = (p.word1 & 0xC7FFFFFF) | 0x10000000; // p.address1scaledreg = 2
closure_address1scaledreg(p, c);
}
}
if ( // szpr: INT_SHL(riv,INT_AND(r,INT_CONSTANT))
rchild.getOpcode() == INT_AND_opcode &&
rchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_r + (VRR(p) == 31 ? 23 : INFINITE);
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x400000; // p.szpr = 2
closure_szpr(p, c);
}
}
// szpr: INT_SHL(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 23;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x600000; // p.szpr = 3
closure_szpr(p, c);
}
if ( // szpr: INT_SHL(r,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + 13;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x800000; // p.szpr = 4
closure_szpr(p, c);
}
}
if ( // r: INT_SHL(r,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + (!Binary.getResult(P(p)).similar(Binary.getVal1(P(p))) && (Binary.getVal2(P(p)).asIntConstant().value & 0x1f) <= 3 ? 11 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3400; // p.r = 52
closure_r(p, c);
}
}
if ( // szpr: INT_SHL(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
lchild.getOpcode() == INT_SHR_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_r + ((VR(p) == VLR(p)) ? 23 : INFINITE);
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0xA00000; // p.szpr = 5
closure_szpr(p, c);
}
}
}
private void label_LONG_SHL(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: LONG_SHL(rlv,riv)
c = STATE(lchild).cost_rlv + STATE(rchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4200; // p.r = 66
closure_r(p, c);
}
if ( // r: LONG_SHL(rlv,INT_AND(riv,INT_CONSTANT))
rchild.getOpcode() == INT_AND_opcode &&
rchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_rlv + STATE(rchild.child1).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4300; // p.r = 67
closure_r(p, c);
}
}
if ( // r: LONG_SHL(INT_2LONG(r),INT_CONSTANT)
lchild.getOpcode() == INT_2LONG_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_r + (VR(p) == 32 ? 23 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5500; // p.r = 85
closure_r(p, c);
}
}
if ( // r: LONG_SHL(INT_2LONG(load64),INT_CONSTANT)
lchild.getOpcode() == INT_2LONG_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_load64 + (VR(p) == 32 ? 23 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5600; // p.r = 86
closure_r(p, c);
}
}
}
private void label_INT_SHR(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // szpr: INT_SHR(riv,INT_AND(r,INT_CONSTANT))
rchild.getOpcode() == INT_AND_opcode &&
rchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_r + (VRR(p) == 31 ? 23 : INFINITE);
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0xC00000; // p.szpr = 6
closure_szpr(p, c);
}
}
// szpr: INT_SHR(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 23;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0xE00000; // p.szpr = 7
closure_szpr(p, c);
}
if ( // szpr: INT_SHR(riv,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_riv + 13;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1000000; // p.szpr = 8
closure_szpr(p, c);
}
}
}
private void label_LONG_SHR(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: LONG_SHR(rlv,riv)
c = STATE(lchild).cost_rlv + STATE(rchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4400; // p.r = 68
closure_r(p, c);
}
if ( // r: LONG_SHR(rlv,INT_AND(riv,INT_CONSTANT))
rchild.getOpcode() == INT_AND_opcode &&
rchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_rlv + STATE(rchild.child1).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4500; // p.r = 69
closure_r(p, c);
}
}
}
private void label_INT_USHR(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // szpr: INT_USHR(riv,INT_AND(r,INT_CONSTANT))
rchild.getOpcode() == INT_AND_opcode &&
rchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_r + (VRR(p) == 31 ? 23 : INFINITE);
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1200000; // p.szpr = 9
closure_szpr(p, c);
}
}
// szpr: INT_USHR(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 23;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1400000; // p.szpr = 10
closure_szpr(p, c);
}
if ( // szpr: INT_USHR(riv,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_riv + 13;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1600000; // p.szpr = 11
closure_szpr(p, c);
}
}
if ( // r: INT_USHR(INT_SHL(load8_16_32,INT_CONSTANT),INT_CONSTANT)
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_load8_16_32 + (VR(p) == 24 && VLLR(p) == 24 ? 15 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6800; // p.r = 104
closure_r(p, c);
}
}
if ( // r: INT_USHR(INT_SHL(load16_32,INT_CONSTANT),INT_CONSTANT)
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_load16_32 + (VR(p) == 16 && VLR(p) == 16 ? 15 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7000; // p.r = 112
closure_r(p, c);
}
}
}
private void label_LONG_USHR(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: LONG_USHR(rlv,riv)
c = STATE(lchild).cost_rlv + STATE(rchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4600; // p.r = 70
closure_r(p, c);
}
if ( // r: LONG_USHR(rlv,INT_AND(riv,INT_CONSTANT))
rchild.getOpcode() == INT_AND_opcode &&
rchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_rlv + STATE(rchild.child1).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4700; // p.r = 71
closure_r(p, c);
}
}
}
private void label_INT_AND(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// szpr: INT_AND(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1800000; // p.szpr = 12
closure_szpr(p, c);
}
// szp: INT_AND(r,riv)
c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 11;
if (c < p.cost_szp) {
p.cost_szp = (char)(c);
p.word0 = (p.word0 & 0xE3FFFFFF) | 0x8000000; // p.szp = 2
}
// szpr: INT_AND(riv,load32)
c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1A00000; // p.szpr = 13
closure_szpr(p, c);
}
// szpr: INT_AND(load32,riv)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1C00000; // p.szpr = 14
closure_szpr(p, c);
}
// szp: INT_AND(riv,load32)
c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 13;
if (c < p.cost_szp) {
p.cost_szp = (char)(c);
p.word0 = (p.word0 & 0xE3FFFFFF) | 0xC000000; // p.szp = 3
}
// szp: INT_AND(load32,riv)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 13;
if (c < p.cost_szp) {
p.cost_szp = (char)(c);
p.word0 = (p.word0 & 0xE3FFFFFF) | 0x10000000; // p.szp = 4
}
if ( // uload8: INT_AND(load8_16_32,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_load8_16_32 + (VR(p) == 0xff ? 0 : INFINITE);
if (c < p.cost_uload8) {
p.cost_uload8 = (char)(c);
p.word1 = (p.word1 & 0xFFFFFC7F) | 0x200; // p.uload8 = 4
closure_uload8(p, c);
}
}
if ( // r: INT_AND(load8_16_32,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_load8_16_32 + (VR(p) == 0xff ? 15 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6600; // p.r = 102
closure_r(p, c);
}
}
if ( // r: INT_AND(load16_32,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_load16_32 + (VR(p) == 0xffff ? 15 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6D00; // p.r = 109
closure_r(p, c);
}
}
if ( // bittest: INT_AND(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
lchild.getOpcode() == INT_USHR_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1).cost_r + ((VR(p) == 1) && (VLRR(p) == 31) ? 13:INFINITE);
if (c < p.cost_bittest) {
p.cost_bittest = (char)(c);
p.word2 = (p.word2 & 0xFFFF87FF) | 0x800; // p.bittest = 1
}
}
if ( // bittest: INT_AND(INT_USHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
lchild.getOpcode() == INT_USHR_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_load32 + STATE(lchild.child2.child1).cost_r + (VR(p) == 1 ? 31:INFINITE);
if (c < p.cost_bittest) {
p.cost_bittest = (char)(c);
p.word2 = (p.word2 & 0xFFFF87FF) | 0x1000; // p.bittest = 2
}
}
if ( // bittest: INT_AND(INT_USHR(r,INT_CONSTANT),INT_CONSTANT)
lchild.getOpcode() == INT_USHR_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_r + ((VR(p) == 1) && (VLR(p) <= 31) ? 13:INFINITE);
if (c < p.cost_bittest) {
p.cost_bittest = (char)(c);
p.word2 = (p.word2 & 0xFFFF87FF) | 0x1800; // p.bittest = 3
}
}
if ( // bittest: INT_AND(INT_SHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
lchild.getOpcode() == INT_SHR_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_r + STATE(lchild.child2.child1).cost_r + ((VR(p) == 1) && (VLRR(p) == 31) ? 13:INFINITE);
if (c < p.cost_bittest) {
p.cost_bittest = (char)(c);
p.word2 = (p.word2 & 0xFFFF87FF) | 0x2000; // p.bittest = 4
}
}
if ( // bittest: INT_AND(INT_SHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
lchild.getOpcode() == INT_SHR_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_load32 + STATE(lchild.child2.child1).cost_r + (VR(p) == 1 ? 31:INFINITE);
if (c < p.cost_bittest) {
p.cost_bittest = (char)(c);
p.word2 = (p.word2 & 0xFFFF87FF) | 0x2800; // p.bittest = 5
}
}
if ( // bittest: INT_AND(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
lchild.getOpcode() == INT_SHR_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_r + ((VR(p) == 1) && (VLR(p) <= 31) ? 13:INFINITE);
if (c < p.cost_bittest) {
p.cost_bittest = (char)(c);
p.word2 = (p.word2 & 0xFFFF87FF) | 0x3000; // p.bittest = 6
}
}
if ( // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(riv,INT_CONSTANT)),r)
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child2.child1).cost_riv + STATE(rchild).cost_r + ((VLL(p) == 1) && (VLRR(p) == 31)? 13:INFINITE);
if (c < p.cost_bittest) {
p.cost_bittest = (char)(c);
p.word2 = (p.word2 & 0xFFFF87FF) | 0x3800; // p.bittest = 7
}
}
if ( // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)),load32)
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child1.getOpcode() == INT_CONSTANT_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child2.child1).cost_r + STATE(rchild).cost_load32 + (VLL(p) == 1 ? 31:INFINITE);
if (c < p.cost_bittest) {
p.cost_bittest = (char)(c);
p.word2 = (p.word2 & 0xFFFF87FF) | 0x4000; // p.bittest = 8
}
}
if ( // bittest: INT_AND(r,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
rchild.getOpcode() == INT_SHL_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
rchild.child2.getOpcode() == INT_AND_opcode &&
rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child2.child1).cost_r + ((VRL(p) == 1) && (VRRR(p) == 31) ? 13:INFINITE);
if (c < p.cost_bittest) {
p.cost_bittest = (char)(c);
p.word2 = (p.word2 & 0xFFFF87FF) | 0x4800; // p.bittest = 9
}
}
if ( // bittest: INT_AND(load32,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
rchild.getOpcode() == INT_SHL_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
rchild.child2.getOpcode() == INT_AND_opcode &&
rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_load32 + STATE(rchild.child2.child1).cost_r + (VRL(p) == 1 ? 31:INFINITE);
if (c < p.cost_bittest) {
p.cost_bittest = (char)(c);
p.word2 = (p.word2 & 0xFFFF87FF) | 0x5000; // p.bittest = 10
}
}
}
private void label_LONG_AND(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: LONG_AND(rlv,rlv)
c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4800; // p.r = 72
closure_r(p, c);
}
if ( // r: LONG_AND(INT_2LONG(r),LONG_CONSTANT)
lchild.getOpcode() == INT_2LONG_opcode &&
rchild.getOpcode() == LONG_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_r + ((Binary.getVal2(P(p)).asLongConstant().upper32() == 0) && (Binary.getVal2(P(p)).asLongConstant().lower32() == -1)? 23 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5300; // p.r = 83
closure_r(p, c);
}
}
if ( // r: LONG_AND(INT_2LONG(load32),LONG_CONSTANT)
lchild.getOpcode() == INT_2LONG_opcode &&
rchild.getOpcode() == LONG_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_load32 + ((Binary.getVal2(P(p)).asLongConstant().upper32() == 0) && (Binary.getVal2(P(p)).asLongConstant().lower32() == -1)? 28 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5400; // p.r = 84
closure_r(p, c);
}
}
}
private void label_INT_OR(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_USHR_opcode &&
rchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3500; // p.r = 53
closure_r(p, c);
}
}
if ( // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
lchild.getOpcode() == INT_USHR_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_SHL_opcode &&
rchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3600; // p.r = 54
closure_r(p, c);
}
}
if ( // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_USHR_opcode &&
rchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3700; // p.r = 55
closure_r(p, c);
}
}
if ( // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
lchild.getOpcode() == INT_USHR_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_SHL_opcode &&
rchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3800; // p.r = 56
closure_r(p, c);
}
}
if ( // r: INT_OR(INT_SHL(r,INT_AND(r,INT_CONSTANT)),INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_USHR_opcode &&
rchild.child2.getOpcode() == INT_AND_opcode &&
rchild.child2.child1.getOpcode() == INT_NEG_opcode &&
rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3900; // p.r = 57
closure_r(p, c);
}
}
if ( // r: INT_OR(INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_SHL(r,INT_AND(r,INT_CONSTANT)))
lchild.getOpcode() == INT_USHR_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child1.getOpcode() == INT_NEG_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_SHL_opcode &&
rchild.child2.getOpcode() == INT_AND_opcode &&
rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3A00; // p.r = 58
closure_r(p, c);
}
}
if ( // r: INT_OR(INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_USHR(r,INT_AND(r,INT_CONSTANT)))
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child1.getOpcode() == INT_NEG_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_USHR_opcode &&
rchild.child2.getOpcode() == INT_AND_opcode &&
rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3B00; // p.r = 59
closure_r(p, c);
}
}
if ( // r: INT_OR(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
lchild.getOpcode() == INT_USHR_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == INT_SHL_opcode &&
rchild.child2.getOpcode() == INT_AND_opcode &&
rchild.child2.child1.getOpcode() == INT_NEG_opcode &&
rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3C00; // p.r = 60
closure_r(p, c);
}
}
// szpr: INT_OR(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x1E00000; // p.szpr = 15
closure_szpr(p, c);
}
// szpr: INT_OR(riv,load32)
c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2000000; // p.szpr = 16
closure_szpr(p, c);
}
// szpr: INT_OR(load32,riv)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2200000; // p.szpr = 17
closure_szpr(p, c);
}
}
private void label_LONG_OR(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: LONG_OR(rlv,rlv)
c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 23;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4900; // p.r = 73
closure_r(p, c);
}
}
private void label_INT_XOR(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// szpr: INT_XOR(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 13;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2400000; // p.szpr = 18
closure_szpr(p, c);
}
// szpr: INT_XOR(riv,load32)
c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2600000; // p.szpr = 19
closure_szpr(p, c);
}
// szpr: INT_XOR(load32,riv)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2800000; // p.szpr = 20
closure_szpr(p, c);
}
}
private void label_INT_NOT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: INT_NOT(r)
c = STATE(lchild).cost_r + 13;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x3D00; // p.r = 61
closure_r(p, c);
}
}
private void label_LONG_NOT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: LONG_NOT(r)
c = STATE(lchild).cost_r + 23;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4B00; // p.r = 75
closure_r(p, c);
}
}
private void label_LONG_XOR(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: LONG_XOR(r,rlv)
c = STATE(lchild).cost_r + STATE(rchild).cost_rlv + 23;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4A00; // p.r = 74
closure_r(p, c);
}
}
private void label_INT_2LONG(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: INT_2LONG(r)
c = STATE(lchild).cost_r + 33;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5100; // p.r = 81
closure_r(p, c);
}
// r: INT_2LONG(load32)
c = STATE(lchild).cost_load32 + 38;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5200; // p.r = 82
closure_r(p, c);
}
}
private void label_INT_2FLOAT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: INT_2FLOAT(riv)
c = STATE(lchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xA900; // p.r = 169
closure_r(p, c);
}
}
private void label_INT_2DOUBLE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: INT_2DOUBLE(riv)
c = STATE(lchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xAA00; // p.r = 170
closure_r(p, c);
}
}
private void label_LONG_2INT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: LONG_2INT(r)
c = STATE(lchild).cost_r + 13;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5700; // p.r = 87
closure_r(p, c);
}
// r: LONG_2INT(load64)
c = STATE(lchild).cost_load64 + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5800; // p.r = 88
closure_r(p, c);
}
if ( // r: LONG_2INT(LONG_USHR(r,INT_CONSTANT))
lchild.getOpcode() == LONG_USHR_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_r + (VLR(p) == 32 ? 13 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5900; // p.r = 89
closure_r(p, c);
}
}
if ( // r: LONG_2INT(LONG_SHR(r,INT_CONSTANT))
lchild.getOpcode() == LONG_SHR_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_r + (VLR(p) == 32 ? 13 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5A00; // p.r = 90
closure_r(p, c);
}
}
if ( // r: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
lchild.getOpcode() == LONG_USHR_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 15 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5B00; // p.r = 91
closure_r(p, c);
}
}
if ( // r: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
lchild.getOpcode() == LONG_SHR_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 15 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5C00; // p.r = 92
closure_r(p, c);
}
}
if ( // load32: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
lchild.getOpcode() == LONG_USHR_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 0 : INFINITE);
if (c < p.cost_load32) {
p.cost_load32 = (char)(c);
p.word1 = (p.word1 & 0xFFE3FFFF) | 0xC0000; // p.load32 = 3
closure_load32(p, c);
}
}
if ( // load32: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
lchild.getOpcode() == LONG_SHR_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild.child1).cost_load64 + (VLR(p) == 32 ? 0 : INFINITE);
if (c < p.cost_load32) {
p.cost_load32 = (char)(c);
p.word1 = (p.word1 & 0xFFE3FFFF) | 0x100000; // p.load32 = 4
closure_load32(p, c);
}
}
}
private void label_LONG_2FLOAT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: LONG_2FLOAT(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xA100; // p.r = 161
closure_r(p, c);
}
}
private void label_LONG_2DOUBLE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: LONG_2DOUBLE(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xA200; // p.r = 162
closure_r(p, c);
}
}
private void label_FLOAT_2INT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: FLOAT_2INT(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xAD00; // p.r = 173
closure_r(p, c);
}
}
private void label_FLOAT_2LONG(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: FLOAT_2LONG(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xAE00; // p.r = 174
closure_r(p, c);
}
}
private void label_FLOAT_2DOUBLE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: FLOAT_2DOUBLE(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xAB00; // p.r = 171
closure_r(p, c);
}
}
private void label_DOUBLE_2INT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: DOUBLE_2INT(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xAF00; // p.r = 175
closure_r(p, c);
}
}
private void label_DOUBLE_2LONG(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: DOUBLE_2LONG(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xB000; // p.r = 176
closure_r(p, c);
}
}
private void label_DOUBLE_2FLOAT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: DOUBLE_2FLOAT(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xAC00; // p.r = 172
closure_r(p, c);
}
}
private void label_INT_2BYTE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: INT_2BYTE(r)
c = STATE(lchild).cost_r + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4C00; // p.r = 76
closure_r(p, c);
}
// r: INT_2BYTE(load8_16_32)
c = STATE(lchild).cost_load8_16_32 + 17;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4D00; // p.r = 77
closure_r(p, c);
}
// r: INT_2BYTE(load8_16_32)
c = STATE(lchild).cost_load8_16_32 + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6700; // p.r = 103
closure_r(p, c);
}
}
private void label_INT_2USHORT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// szpr: INT_2USHORT(r)
c = STATE(lchild).cost_r + 23;
if (c < p.cost_szpr) {
p.cost_szpr = (char)(c);
p.word0 = (p.word0 & 0xFC1FFFFF) | 0x2A00000; // p.szpr = 21
closure_szpr(p, c);
}
// r: INT_2USHORT(load16_32)
c = STATE(lchild).cost_load16_32 + 25;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4E00; // p.r = 78
closure_r(p, c);
}
// r: INT_2USHORT(load16_32)
c = STATE(lchild).cost_load16_32 + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6E00; // p.r = 110
closure_r(p, c);
}
// r: INT_2USHORT(load16_32)
c = STATE(lchild).cost_load16_32 + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6F00; // p.r = 111
closure_r(p, c);
}
}
private void label_INT_2SHORT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: INT_2SHORT(r)
c = STATE(lchild).cost_r + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x4F00; // p.r = 79
closure_r(p, c);
}
// r: INT_2SHORT(load16_32)
c = STATE(lchild).cost_load16_32 + 17;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x5000; // p.r = 80
closure_r(p, c);
}
}
private void label_LONG_CMP(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: LONG_CMP(rlv,rlv)
c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 10*13;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8A00; // p.r = 138
closure_r(p, c);
}
}
private void label_RETURN(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
if ( // stm: RETURN(NULL)
lchild.getOpcode() == NULL_opcode
) {
c = 13;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x79; // p.stm = 121
}
}
if ( // stm: RETURN(INT_CONSTANT)
lchild.getOpcode() == INT_CONSTANT_opcode
) {
c = 11;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x7A; // p.stm = 122
}
}
// stm: RETURN(r)
c = STATE(lchild).cost_r + 13;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x7B; // p.stm = 123
}
if ( // stm: RETURN(LONG_CONSTANT)
lchild.getOpcode() == LONG_CONSTANT_opcode
) {
c = 11;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x7C; // p.stm = 124
}
}
}
private void label_NULL_CHECK(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// stm: NULL_CHECK(riv)
c = STATE(lchild).cost_riv + 11;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0xB; // p.stm = 11
}
}
private void label_GOTO(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: GOTO
if (11 < p.cost_stm) {
p.cost_stm = (char)(11);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x76; // p.stm = 118
}
}
private void label_BOOLEAN_NOT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: BOOLEAN_NOT(r)
c = STATE(lchild).cost_r + 13;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xD00; // p.r = 13
closure_r(p, c);
}
}
private void label_BOOLEAN_CMP_INT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: BOOLEAN_CMP_INT(r,riv)
c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 39;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xE00; // p.r = 14
closure_r(p, c);
}
// boolcmp: BOOLEAN_CMP_INT(r,riv)
c = STATE(lchild).cost_r + STATE(rchild).cost_riv + 13;
if (c < p.cost_boolcmp) {
p.cost_boolcmp = (char)(c);
p.word2 = (p.word2 & 0xFFFFF87F) | 0x80; // p.boolcmp = 1
}
if ( // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + (VR(p) == 0 && EQ_NE(BooleanCmp.getCond(P(p)))?37:INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xF00; // p.r = 15
closure_r(p, c);
}
}
if ( // boolcmp: BOOLEAN_CMP_INT(r,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + (VR(p) == 0 && EQ_NE(BooleanCmp.getCond(P(p)))?11:INFINITE);
if (c < p.cost_boolcmp) {
p.cost_boolcmp = (char)(c);
p.word2 = (p.word2 & 0xFFFFF87F) | 0x100; // p.boolcmp = 2
}
}
if ( // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isLESS() ? 11 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1000; // p.r = 16
closure_r(p, c);
}
}
if ( // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_load32 + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isLESS() ? 16 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1100; // p.r = 17
closure_r(p, c);
}
}
if ( // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isGREATER_EQUAL() ? 22 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1200; // p.r = 18
closure_r(p, c);
}
}
if ( // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_load32 + (VR(p) == 0 && BooleanCmp.getCond(P(p)).isGREATER_EQUAL() ? 27 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1300; // p.r = 19
closure_r(p, c);
}
}
if ( // r: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_cz + isZERO(VR(p), 26);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1400; // p.r = 20
closure_r(p, c);
}
}
if ( // boolcmp: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_cz + isZERO(VR(p), 0);
if (c < p.cost_boolcmp) {
p.cost_boolcmp = (char)(c);
p.word2 = (p.word2 & 0xFFFFF87F) | 0x180; // p.boolcmp = 3
}
}
if ( // r: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_szp + (VR(p) == 0 && EQ_NE(BooleanCmp.getCond(P(p)))?26:INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1500; // p.r = 21
closure_r(p, c);
}
}
if ( // boolcmp: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_szp + (VR(p) == 0 && EQ_NE(BooleanCmp.getCond(P(p)))?0:INFINITE);
if (c < p.cost_boolcmp) {
p.cost_boolcmp = (char)(c);
p.word2 = (p.word2 & 0xFFFFF87F) | 0x200; // p.boolcmp = 4
}
}
if ( // r: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_bittest + ((VR(p) == 0 || VR(p) == 1) && EQ_NE(BooleanCmp.getCond(P(p))) ? 26 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1600; // p.r = 22
closure_r(p, c);
}
}
if ( // boolcmp: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_bittest + ((VR(p) == 0 || VR(p) == 1) && EQ_NE(BooleanCmp.getCond(P(p))) ? 0 : INFINITE);
if (c < p.cost_boolcmp) {
p.cost_boolcmp = (char)(c);
p.word2 = (p.word2 & 0xFFFFF87F) | 0x280; // p.boolcmp = 5
}
}
if ( // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 1 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 26 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1700; // p.r = 23
closure_r(p, c);
}
}
if ( // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_boolcmp + ((VR(p) == 0 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 1 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 0 : INFINITE);
if (c < p.cost_boolcmp) {
p.cost_boolcmp = (char)(c);
p.word2 = (p.word2 & 0xFFFFF87F) | 0x300; // p.boolcmp = 6
}
}
if ( // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_boolcmp + ((VR(p) == 1 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 0 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 26 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1800; // p.r = 24
closure_r(p, c);
}
}
if ( // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_boolcmp + ((VR(p) == 1 && BooleanCmp.getCond(P(p)).isNOT_EQUAL()) || (VR(p) == 0 && BooleanCmp.getCond(P(p)).isEQUAL()) ? 0 : INFINITE);
if (c < p.cost_boolcmp) {
p.cost_boolcmp = (char)(c);
p.word2 = (p.word2 & 0xFFFFF87F) | 0x380; // p.boolcmp = 7
}
}
// r: BOOLEAN_CMP_INT(load32,riv)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 41;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1900; // p.r = 25
closure_r(p, c);
}
// boolcmp: BOOLEAN_CMP_INT(load32,riv)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
if (c < p.cost_boolcmp) {
p.cost_boolcmp = (char)(c);
p.word2 = (p.word2 & 0xFFFFF87F) | 0x400; // p.boolcmp = 8
}
// r: BOOLEAN_CMP_INT(r,load32)
c = STATE(lchild).cost_r + STATE(rchild).cost_load32 + 41;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1A00; // p.r = 26
closure_r(p, c);
}
// boolcmp: BOOLEAN_CMP_INT(r,load32)
c = STATE(lchild).cost_r + STATE(rchild).cost_load32 + 15;
if (c < p.cost_boolcmp) {
p.cost_boolcmp = (char)(c);
p.word2 = (p.word2 & 0xFFFFF87F) | 0x480; // p.boolcmp = 9
}
}
private void label_BOOLEAN_CMP_LONG(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: BOOLEAN_CMP_LONG(rlv,rlv)
c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 8*13;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1B00; // p.r = 27
closure_r(p, c);
}
// boolcmp: BOOLEAN_CMP_LONG(rlv,rlv)
c = STATE(lchild).cost_rlv + STATE(rchild).cost_rlv + 11*13;
if (c < p.cost_boolcmp) {
p.cost_boolcmp = (char)(c);
p.word2 = (p.word2 & 0xFFFFF87F) | 0x500; // p.boolcmp = 10
}
}
private void label_BYTE_LOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// sload8: BYTE_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_sload8) {
p.cost_sload8 = (char)(c);
p.word1 = (p.word1 & 0xFFFFFF9F) | 0x20; // p.sload8 = 1
closure_sload8(p, c);
}
// r: BYTE_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6200; // p.r = 98
closure_r(p, c);
}
}
private void label_UBYTE_LOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// uload8: UBYTE_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_uload8) {
p.cost_uload8 = (char)(c);
p.word1 = (p.word1 & 0xFFFFFC7F) | 0x80; // p.uload8 = 1
closure_uload8(p, c);
}
// r: UBYTE_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6400; // p.r = 100
closure_r(p, c);
}
}
private void label_SHORT_LOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// sload16: SHORT_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_sload16) {
p.cost_sload16 = (char)(c);
p.word1 = (p.word1 & 0xFFFFCFFF) | 0x1000; // p.sload16 = 1
closure_sload16(p, c);
}
// r: SHORT_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6900; // p.r = 105
closure_r(p, c);
}
}
private void label_USHORT_LOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// uload16: USHORT_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_uload16) {
p.cost_uload16 = (char)(c);
p.word1 = (p.word1 & 0xFFFF3FFF) | 0x4000; // p.uload16 = 1
closure_uload16(p, c);
}
// r: USHORT_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6B00; // p.r = 107
closure_r(p, c);
}
}
private void label_INT_LOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// load32: INT_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_load32) {
p.cost_load32 = (char)(c);
p.word1 = (p.word1 & 0xFFE3FFFF) | 0x40000; // p.load32 = 1
closure_load32(p, c);
}
// r: INT_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7100; // p.r = 113
closure_r(p, c);
}
// r: INT_LOAD(riv,address1scaledreg)
c = STATE(lchild).cost_riv + STATE(rchild).cost_address1scaledreg + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7200; // p.r = 114
closure_r(p, c);
}
// r: INT_LOAD(address1scaledreg,riv)
c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_riv + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7300; // p.r = 115
closure_r(p, c);
}
// r: INT_LOAD(address1scaledreg,address1reg)
c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7400; // p.r = 116
closure_r(p, c);
}
// r: INT_LOAD(address1reg,address1scaledreg)
c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7500; // p.r = 117
closure_r(p, c);
}
if ( // r: INT_LOAD(address,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_address + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7600; // p.r = 118
closure_r(p, c);
}
}
}
private void label_LONG_LOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// load64: LONG_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 0;
if (c < p.cost_load64) {
p.cost_load64 = (char)(c);
p.word1 = (p.word1 & 0xF9FFFFFF) | 0x2000000; // p.load64 = 1
}
// r: LONG_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 30;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7800; // p.r = 120
closure_r(p, c);
}
}
private void label_FLOAT_LOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: FLOAT_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xA700; // p.r = 167
closure_r(p, c);
}
}
private void label_DOUBLE_LOAD(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: DOUBLE_LOAD(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xA500; // p.r = 165
closure_r(p, c);
}
}
private void label_BYTE_STORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: BYTE_STORE(BOOLEAN_NOT(UBYTE_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == BOOLEAN_NOT_opcode &&
lchild.child1.getOpcode() == UBYTE_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x14; // p.stm = 20
}
}
if ( // stm: BYTE_STORE(boolcmp,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_boolcmp + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x16; // p.stm = 22
}
}
if ( // stm: BYTE_STORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_2BYTE_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x3C; // p.stm = 60
}
}
if ( // stm: BYTE_STORE(riv,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x52; // p.stm = 82
}
}
if ( // stm: BYTE_STORE(load8,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_load8 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x53; // p.stm = 83
}
}
}
private void label_SHORT_STORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: SHORT_STORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_2USHORT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x3E; // p.stm = 62
}
}
if ( // stm: SHORT_STORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_2SHORT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x40; // p.stm = 64
}
}
if ( // stm: SHORT_STORE(riv,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x56; // p.stm = 86
}
}
if ( // stm: SHORT_STORE(load16,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_load16 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 25;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x57; // p.stm = 87
}
}
}
private void label_INT_STORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: INT_STORE(INT_ADD(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_ADD_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x18; // p.stm = 24
}
}
if ( // stm: INT_STORE(INT_ADD(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_ADD_opcode &&
lchild.child2.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x19; // p.stm = 25
}
}
if ( // stm: INT_STORE(INT_SUB(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SUB_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x1C; // p.stm = 28
}
}
if ( // stm: INT_STORE(INT_SUB(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SUB_opcode &&
lchild.child2.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x1D; // p.stm = 29
}
}
if ( // stm: INT_STORE(INT_NEG(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_NEG_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x20; // p.stm = 32
}
}
if ( // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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));
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x22; // p.stm = 34
}
}
if ( // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SHL_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x23; // p.stm = 35
}
}
if ( // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SHR_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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));
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x26; // p.stm = 38
}
}
if ( // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_SHR_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x27; // p.stm = 39
}
}
if ( // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_USHR_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
lchild.child2.getOpcode() == INT_AND_opcode &&
lchild.child2.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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));
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x2A; // p.stm = 42
}
}
if ( // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_USHR_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
lchild.child2.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x2B; // p.stm = 43
}
}
if ( // stm: INT_STORE(INT_AND(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_AND_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x2E; // p.stm = 46
}
}
if ( // stm: INT_STORE(INT_AND(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_AND_opcode &&
lchild.child2.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x2F; // p.stm = 47
}
}
if ( // stm: INT_STORE(INT_OR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_OR_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x32; // p.stm = 50
}
}
if ( // stm: INT_STORE(INT_OR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_OR_opcode &&
lchild.child2.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x33; // p.stm = 51
}
}
if ( // stm: INT_STORE(INT_XOR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_XOR_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x36; // p.stm = 54
}
}
if ( // stm: INT_STORE(INT_XOR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_XOR_opcode &&
lchild.child2.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x37; // p.stm = 55
}
}
if ( // stm: INT_STORE(INT_NOT(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == INT_NOT_opcode &&
lchild.child1.getOpcode() == INT_LOAD_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
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);
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x3A; // p.stm = 58
}
}
if ( // stm: INT_STORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
lchild.getOpcode() == LONG_2INT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild.child1).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x42; // p.stm = 66
}
}
if ( // stm: INT_STORE(riv,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x5A; // p.stm = 90
}
}
if ( // stm: INT_STORE(riv,OTHER_OPERAND(riv,address1scaledreg))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_address1scaledreg + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x5B; // p.stm = 91
}
}
if ( // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x5C; // p.stm = 92
}
}
if ( // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,address1reg))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2).cost_address1reg + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x5D; // p.stm = 93
}
}
if ( // stm: INT_STORE(riv,OTHER_OPERAND(address1reg,address1scaledreg))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address1reg + STATE(rchild.child2).cost_address1scaledreg + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x5E; // p.stm = 94
}
}
if ( // stm: INT_STORE(riv,OTHER_OPERAND(address,INT_CONSTANT))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_address + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x5F; // p.stm = 95
}
}
}
private void label_LONG_STORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: LONG_STORE(r,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 30;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x61; // p.stm = 97
}
}
if ( // stm: LONG_STORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
lchild.getOpcode() == LONG_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 26;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x62; // p.stm = 98
}
}
}
private void label_FLOAT_STORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: FLOAT_STORE(r,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 20;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x81; // p.stm = 129
}
}
}
private void label_DOUBLE_STORE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: DOUBLE_STORE(r,OTHER_OPERAND(riv,riv))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_riv + 20;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x7F; // p.stm = 127
}
}
}
private void label_PREPARE_INT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: PREPARE_INT(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7A00; // p.r = 122
closure_r(p, c);
}
// r: PREPARE_INT(r,address1scaledreg)
c = STATE(lchild).cost_r + STATE(rchild).cost_address1scaledreg + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7B00; // p.r = 123
closure_r(p, c);
}
// r: PREPARE_INT(address1scaledreg,r)
c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_r + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7C00; // p.r = 124
closure_r(p, c);
}
// r: PREPARE_INT(address1scaledreg,address1reg)
c = STATE(lchild).cost_address1scaledreg + STATE(rchild).cost_address1reg + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7D00; // p.r = 125
closure_r(p, c);
}
// r: PREPARE_INT(address1reg,address1scaledreg)
c = STATE(lchild).cost_address1reg + STATE(rchild).cost_address1scaledreg + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7E00; // p.r = 126
closure_r(p, c);
}
if ( // r: PREPARE_INT(address,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_address + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x7F00; // p.r = 127
closure_r(p, c);
}
}
if ( // r: PREPARE_INT(INT_CONSTANT,address)
lchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(rchild).cost_address + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8000; // p.r = 128
closure_r(p, c);
}
}
}
private void label_PREPARE_LONG(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: PREPARE_LONG(riv,riv)
c = STATE(lchild).cost_riv + STATE(rchild).cost_riv + 30;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8100; // p.r = 129
closure_r(p, c);
}
}
private void label_ATTEMPT_INT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // r: ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv)))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8200; // p.r = 130
closure_r(p, c);
}
}
if ( // r: ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8300; // p.r = 131
closure_r(p, c);
}
}
if ( // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv)))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_address1scaledreg + STATE(rchild.child1).cost_r + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8400; // p.r = 132
closure_r(p, c);
}
}
if ( // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv)))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_address1scaledreg + STATE(rchild.child1).cost_address1reg + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8500; // p.r = 133
closure_r(p, c);
}
}
if ( // r: ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_address1reg + STATE(rchild.child1).cost_address1scaledreg + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8600; // p.r = 134
closure_r(p, c);
}
}
if ( // r: ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv)))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_address + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8700; // p.r = 135
closure_r(p, c);
}
}
if ( // r: ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv)))
lchild.getOpcode() == INT_CONSTANT_opcode &&
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(rchild.child1).cost_address + STATE(rchild.child2.child1).cost_riv + STATE(rchild.child2.child2).cost_riv + 67;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8800; // p.r = 136
closure_r(p, c);
}
}
}
private void label_ATTEMPT_LONG(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // r: ATTEMPT_LONG(riv,OTHER_OPERAND(riv,OTHER_OPERAND(rlv,rlv)))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_riv + STATE(rchild.child1).cost_riv + STATE(rchild.child2.child1).cost_rlv + STATE(rchild.child2.child2).cost_rlv + 67;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8900; // p.r = 137
closure_r(p, c);
}
}
}
private void label_CALL(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: CALL(r,any)
c = STATE(lchild).cost_r + STATE(rchild).cost_any + 13;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8B00; // p.r = 139
closure_r(p, c);
}
if ( // r: CALL(BRANCH_TARGET,any)
lchild.getOpcode() == BRANCH_TARGET_opcode
) {
c = STATE(rchild).cost_any + 13;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8C00; // p.r = 140
closure_r(p, c);
}
}
if ( // r: CALL(INT_LOAD(riv,riv),any)
lchild.getOpcode() == INT_LOAD_opcode
) {
c = STATE(lchild.child1).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild).cost_any + 11;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8D00; // p.r = 141
closure_r(p, c);
}
}
}
private void label_SYSCALL(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// r: SYSCALL(r,any)
c = STATE(lchild).cost_r + STATE(rchild).cost_any + 13;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8E00; // p.r = 142
closure_r(p, c);
}
if ( // r: SYSCALL(INT_LOAD(riv,riv),any)
lchild.getOpcode() == INT_LOAD_opcode
) {
c = STATE(lchild.child1).cost_riv + STATE(lchild.child2).cost_riv + STATE(rchild).cost_any + 11;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x8F00; // p.r = 143
closure_r(p, c);
}
}
}
private void label_YIELDPOINT_PROLOGUE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: YIELDPOINT_PROLOGUE
if (10 < p.cost_stm) {
p.cost_stm = (char)(10);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x5; // p.stm = 5
}
}
private void label_YIELDPOINT_EPILOGUE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: YIELDPOINT_EPILOGUE
if (10 < p.cost_stm) {
p.cost_stm = (char)(10);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x6; // p.stm = 6
}
}
private void label_YIELDPOINT_BACKEDGE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: YIELDPOINT_BACKEDGE
if (10 < p.cost_stm) {
p.cost_stm = (char)(10);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x7; // p.stm = 7
}
}
private void label_YIELDPOINT_OSR(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// stm: YIELDPOINT_OSR(any,any)
c = STATE(lchild).cost_any + STATE(rchild).cost_any + 10;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x7E; // p.stm = 126
}
}
private void label_IR_PROLOGUE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: IR_PROLOGUE
if (11 < p.cost_stm) {
p.cost_stm = (char)(11);
p.word0 = (p.word0 & 0xFFFFFF00) | 0xC; // p.stm = 12
}
}
private void label_RESOLVE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: RESOLVE
if (10 < p.cost_stm) {
p.cost_stm = (char)(10);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x9; // p.stm = 9
}
}
private void label_GET_TIME_BASE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// r: GET_TIME_BASE
if (15 < p.cost_r) {
p.cost_r = (char)(15);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x9100; // p.r = 145
closure_r(p, 15);
}
}
private void label_TRAP_IF(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // stm: TRAP_IF(r,INT_CONSTANT)
rchild.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + 10;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0xF; // p.stm = 15
}
}
if ( // stm: TRAP_IF(r,LONG_CONSTANT)
rchild.getOpcode() == LONG_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + 10;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x10; // p.stm = 16
}
}
// stm: TRAP_IF(r,r)
c = STATE(lchild).cost_r + STATE(rchild).cost_r + 10;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x11; // p.stm = 17
}
// stm: TRAP_IF(load32,riv)
c = STATE(lchild).cost_load32 + STATE(rchild).cost_riv + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x12; // p.stm = 18
}
// stm: TRAP_IF(riv,load32)
c = STATE(lchild).cost_riv + STATE(rchild).cost_load32 + 15;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x13; // p.stm = 19
}
}
private void label_TRAP(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: TRAP
if (10 < p.cost_stm) {
p.cost_stm = (char)(10);
p.word0 = (p.word0 & 0xFFFFFF00) | 0xE; // p.stm = 14
}
}
private void label_FLOAT_AS_INT_BITS(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: FLOAT_AS_INT_BITS(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xB100; // p.r = 177
closure_r(p, c);
}
}
private void label_INT_BITS_AS_FLOAT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: INT_BITS_AS_FLOAT(riv)
c = STATE(lchild).cost_riv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xB300; // p.r = 179
closure_r(p, c);
}
}
private void label_DOUBLE_AS_LONG_BITS(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: DOUBLE_AS_LONG_BITS(r)
c = STATE(lchild).cost_r + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xB200; // p.r = 178
closure_r(p, c);
}
}
private void label_LONG_BITS_AS_DOUBLE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: LONG_BITS_AS_DOUBLE(rlv)
c = STATE(lchild).cost_rlv + 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xB400; // p.r = 180
closure_r(p, c);
}
}
private void label_LOWTABLESWITCH(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// stm: LOWTABLESWITCH(r)
c = STATE(lchild).cost_r + 10;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x8; // p.stm = 8
}
}
private void label_ADDRESS_CONSTANT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// any: ADDRESS_CONSTANT
if (0 < p.cost_any) {
p.cost_any = (char)(0);
p.word1 = (p.word1 & 0xFFFFFFE3) | 0xC; // p.any = 3
}
}
private void label_INT_CONSTANT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// riv: INT_CONSTANT
if (0 < p.cost_riv) {
p.cost_riv = (char)(0);
p.word0 = (p.word0 & 0x9FFFFFFF) | 0x40000000; // p.riv = 2
closure_riv(p, 0);
}
}
private void label_LONG_CONSTANT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// rlv: LONG_CONSTANT
if (0 < p.cost_rlv) {
p.cost_rlv = (char)(0);
p.word1 = (p.word1 & 0xFFFFFFFC) | 0x2; // p.rlv = 2
}
// any: LONG_CONSTANT
if (0 < p.cost_any) {
p.cost_any = (char)(0);
p.word1 = (p.word1 & 0xFFFFFFE3) | 0x10; // p.any = 4
}
}
private void label_REGISTER(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// r: REGISTER
if (0 < p.cost_r) {
p.cost_r = (char)(0);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x100; // p.r = 1
closure_r(p, 0);
}
}
private void label_OTHER_OPERAND(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
// any: OTHER_OPERAND(any,any)
c = STATE(lchild).cost_any + STATE(rchild).cost_any + 0;
if (c < p.cost_any) {
p.cost_any = (char)(c);
p.word1 = (p.word1 & 0xFFFFFFE3) | 0x14; // p.any = 5
}
}
private void label_NULL(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// any: NULL
if (0 < p.cost_any) {
p.cost_any = (char)(0);
p.word1 = (p.word1 & 0xFFFFFFE3) | 0x4; // p.any = 1
}
}
private void label_BRANCH_TARGET(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
}
private void label_MATERIALIZE_FP_CONSTANT(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
if ( // r: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
lchild.getOpcode() == INT_CONSTANT_opcode
) {
c = 20;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0xB500; // p.r = 181
closure_r(p, c);
}
}
}
private void label_GET_JTOC(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// r: GET_JTOC(r)
c = STATE(lchild).cost_r + 15;
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6100; // p.r = 97
closure_r(p, c);
}
}
private void label_GET_CURRENT_PROCESSOR(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// r: GET_CURRENT_PROCESSOR
if (15 < p.cost_r) {
p.cost_r = (char)(15);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x6000; // p.r = 96
closure_r(p, 15);
}
}
private void label_CLEAR_FLOATING_POINT_STATE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: CLEAR_FLOATING_POINT_STATE
if (0 < p.cost_stm) {
p.cost_stm = (char)(0);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x83; // p.stm = 131
}
}
private void label_PREFETCH(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild;
lchild = p.child1;
label(lchild);
int c;
// stm: PREFETCH(r)
c = STATE(lchild).cost_r + 11;
if (c < p.cost_stm) {
p.cost_stm = (char)(c);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x77; // p.stm = 119
}
}
private void label_PAUSE(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
// stm: PAUSE
if (11 < p.cost_stm) {
p.cost_stm = (char)(11);
p.word0 = (p.word0 & 0xFFFFFF00) | 0x78; // p.stm = 120
}
}
private void label_CMP_CMOV(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // r: CMP_CMOV(r,OTHER_OPERAND(riv,any))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_any + (13 + 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1C00; // p.r = 28
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,any))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child2).cost_any + (VRL(p) == 0 && EQ_NE(CondMove.getCond(P(p)))?(11 + 30):INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1D00; // p.r = 29
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1E00; // p.r = 30
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x1F00; // p.r = 31
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2000; // p.r = 32
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode &&
rchild.child2.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child2.child1.getOpcode() == INT_CONSTANT_opcode &&
rchild.child2.child2.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2100; // p.r = 33
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(load8,OTHER_OPERAND(INT_CONSTANT,any))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_load8 + STATE(rchild.child2).cost_any + FITS(CondMove.getVal2(P(p)), 8, (15 + 30));
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2200; // p.r = 34
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(uload8,OTHER_OPERAND(r,any))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_uload8 + STATE(rchild.child1).cost_r + STATE(rchild.child2).cost_any + (15 + 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2300; // p.r = 35
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(r,OTHER_OPERAND(uload8,any))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child1).cost_uload8 + STATE(rchild.child2).cost_any + (15 + 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2400; // p.r = 36
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(sload16,OTHER_OPERAND(INT_CONSTANT,any))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_sload16 + STATE(rchild.child2).cost_any + FITS(CondMove.getVal2(P(p)), 8, (15 + 30));
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2500; // p.r = 37
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(load32,OTHER_OPERAND(riv,any))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_load32 + STATE(rchild.child1).cost_riv + STATE(rchild.child2).cost_any + (15 + 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2600; // p.r = 38
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(r,OTHER_OPERAND(load32,any))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child1).cost_load32 + STATE(rchild.child2).cost_any + (15 + 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2700; // p.r = 39
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2800; // p.r = 40
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode
) {
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);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2900; // p.r = 41
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(bittest,OTHER_OPERAND(INT_CONSTANT,any))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_bittest + STATE(rchild.child2).cost_any + ((VRL(p) == 0 || VRL(p) == 1) && EQ_NE(CondMove.getCond(P(p))) ? 30 : INFINITE);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2A00; // p.r = 42
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(cz,OTHER_OPERAND(INT_CONSTANT,any))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_cz + STATE(rchild.child2).cost_any + isZERO(VRL(p), 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2B00; // p.r = 43
closure_r(p, c);
}
}
if ( // r: CMP_CMOV(szp,OTHER_OPERAND(INT_CONSTANT,any))
rchild.getOpcode() == OTHER_OPERAND_opcode &&
rchild.child1.getOpcode() == INT_CONSTANT_opcode
) {
c = STATE(lchild).cost_szp + STATE(rchild.child2).cost_any + isZERO(VRL(p), 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2C00; // p.r = 44
closure_r(p, c);
}
}
}
private void label_LCMP_CMOV(OPT_BURS_TreeNode p) {
p.word0 = 0;
p.initCost();
OPT_BURS_TreeNode lchild, rchild;
lchild = p.child1;
rchild = p.child2;
label(lchild);
label(rchild);
int c;
if ( // r: LCMP_CMOV(r,OTHER_OPERAND(rlv,any))
rchild.getOpcode() == OTHER_OPERAND_opcode
) {
c = STATE(lchild).cost_r + STATE(rchild.child1).cost_rlv + STATE(rchild.child2).cost_any + (8*13 + 30);
if (c < p.cost_r) {
p.cost_r = (char)(c);
p.word0 = (p.word0 & 0xFFFF00FF) | 0x2D00; // p.r = 45
closure_r(p, c);
}
}
}
public void label(OPT_BURS_TreeNode p) {
p.initCost();
switch (p.getOpcode()) {
case GET_CAUGHT_EXCEPTION_opcode: label_GET_CAUGHT_EXCEPTION(p); break;
case SET_CAUGHT_EXCEPTION_opcode: label_SET_CAUGHT_EXCEPTION(p); break;
case IG_PATCH_POINT_opcode: label_IG_PATCH_POINT(p); break;
case INT_ALOAD_opcode: label_INT_ALOAD(p); break;
case LONG_ALOAD_opcode: label_LONG_ALOAD(p); break;
case FLOAT_ALOAD_opcode: label_FLOAT_ALOAD(p); break;
case DOUBLE_ALOAD_opcode: label_DOUBLE_ALOAD(p); break;
case UBYTE_ALOAD_opcode: label_UBYTE_ALOAD(p); break;
case BYTE_ALOAD_opcode: label_BYTE_ALOAD(p); break;
case USHORT_ALOAD_opcode: label_USHORT_ALOAD(p); break;
case SHORT_ALOAD_opcode: label_SHORT_ALOAD(p); break;
case INT_ASTORE_opcode: label_INT_ASTORE(p); break;
case LONG_ASTORE_opcode: label_LONG_ASTORE(p); break;
case FLOAT_ASTORE_opcode: label_FLOAT_ASTORE(p); break;
case DOUBLE_ASTORE_opcode: label_DOUBLE_ASTORE(p); break;
case BYTE_ASTORE_opcode: label_BYTE_ASTORE(p); break;
case SHORT_ASTORE_opcode: label_SHORT_ASTORE(p); break;
case INT_IFCMP_opcode: label_INT_IFCMP(p); break;
case INT_IFCMP2_opcode: label_INT_IFCMP2(p); break;
case LONG_IFCMP_opcode: label_LONG_IFCMP(p); break;
case FLOAT_IFCMP_opcode: label_FLOAT_IFCMP(p); break;
case DOUBLE_IFCMP_opcode: label_DOUBLE_IFCMP(p); break;
case UNINT_BEGIN_opcode: label_UNINT_BEGIN(p); break;
case UNINT_END_opcode: label_UNINT_END(p); break;
case NOP_opcode: label_NOP(p); break;
case INT_MOVE_opcode: label_INT_MOVE(p); break;
case LONG_MOVE_opcode: label_LONG_MOVE(p); break;
case FLOAT_MOVE_opcode: label_FLOAT_MOVE(p); break;
case DOUBLE_MOVE_opcode: label_DOUBLE_MOVE(p); break;
case GUARD_MOVE_opcode: label_GUARD_MOVE(p); break;
case GUARD_COMBINE_opcode: label_GUARD_COMBINE(p); break;
case INT_ADD_opcode: label_INT_ADD(p); break;
case LONG_ADD_opcode: label_LONG_ADD(p); break;
case FLOAT_ADD_opcode: label_FLOAT_ADD(p); break;
case DOUBLE_ADD_opcode: label_DOUBLE_ADD(p); break;
case INT_SUB_opcode: label_INT_SUB(p); break;
case LONG_SUB_opcode: label_LONG_SUB(p); break;
case FLOAT_SUB_opcode: label_FLOAT_SUB(p); break;
case DOUBLE_SUB_opcode: label_DOUBLE_SUB(p); break;
case INT_MUL_opcode: label_INT_MUL(p); break;
case LONG_MUL_opcode: label_LONG_MUL(p); break;
case FLOAT_MUL_opcode: label_FLOAT_MUL(p); break;
case DOUBLE_MUL_opcode: label_DOUBLE_MUL(p); break;
case INT_DIV_opcode: label_INT_DIV(p); break;
case FLOAT_DIV_opcode: label_FLOAT_DIV(p); break;
case DOUBLE_DIV_opcode: label_DOUBLE_DIV(p); break;
case INT_REM_opcode: label_INT_REM(p); break;
case FLOAT_REM_opcode: label_FLOAT_REM(p); break;
case DOUBLE_REM_opcode: label_DOUBLE_REM(p); break;
case INT_NEG_opcode: label_INT_NEG(p); break;
case LONG_NEG_opcode: label_LONG_NEG(p); break;
case FLOAT_NEG_opcode: label_FLOAT_NEG(p); break;
case DOUBLE_NEG_opcode: label_DOUBLE_NEG(p); break;
case INT_SHL_opcode: label_INT_SHL(p); break;
case LONG_SHL_opcode: label_LONG_SHL(p); break;
case INT_SHR_opcode: label_INT_SHR(p); break;
case LONG_SHR_opcode: label_LONG_SHR(p); break;
case INT_USHR_opcode: label_INT_USHR(p); break;
case LONG_USHR_opcode: label_LONG_USHR(p); break;
case INT_AND_opcode: label_INT_AND(p); break;
case LONG_AND_opcode: label_LONG_AND(p); break;
case INT_OR_opcode: label_INT_OR(p); break;
case LONG_OR_opcode: label_LONG_OR(p); break;
case INT_XOR_opcode: label_INT_XOR(p); break;
case INT_NOT_opcode: label_INT_NOT(p); break;
case LONG_NOT_opcode: label_LONG_NOT(p); break;
case LONG_XOR_opcode: label_LONG_XOR(p); break;
case INT_2LONG_opcode: label_INT_2LONG(p); break;
case INT_2FLOAT_opcode: label_INT_2FLOAT(p); break;
case INT_2DOUBLE_opcode: label_INT_2DOUBLE(p); break;
case LONG_2INT_opcode: label_LONG_2INT(p); break;
case LONG_2FLOAT_opcode: label_LONG_2FLOAT(p); break;
case LONG_2DOUBLE_opcode: label_LONG_2DOUBLE(p); break;
case FLOAT_2INT_opcode: label_FLOAT_2INT(p); break;
case FLOAT_2LONG_opcode: label_FLOAT_2LONG(p); break;
case FLOAT_2DOUBLE_opcode: label_FLOAT_2DOUBLE(p); break;
case DOUBLE_2INT_opcode: label_DOUBLE_2INT(p); break;
case DOUBLE_2LONG_opcode: label_DOUBLE_2LONG(p); break;
case DOUBLE_2FLOAT_opcode: label_DOUBLE_2FLOAT(p); break;
case INT_2BYTE_opcode: label_INT_2BYTE(p); break;
case INT_2USHORT_opcode: label_INT_2USHORT(p); break;
case INT_2SHORT_opcode: label_INT_2SHORT(p); break;
case LONG_CMP_opcode: label_LONG_CMP(p); break;
case RETURN_opcode: label_RETURN(p); break;
case NULL_CHECK_opcode: label_NULL_CHECK(p); break;
case GOTO_opcode: label_GOTO(p); break;
case BOOLEAN_NOT_opcode: label_BOOLEAN_NOT(p); break;
case BOOLEAN_CMP_INT_opcode: label_BOOLEAN_CMP_INT(p); break;
case BOOLEAN_CMP_LONG_opcode: label_BOOLEAN_CMP_LONG(p); break;
case BYTE_LOAD_opcode: label_BYTE_LOAD(p); break;
case UBYTE_LOAD_opcode: label_UBYTE_LOAD(p); break;
case SHORT_LOAD_opcode: label_SHORT_LOAD(p); break;
case USHORT_LOAD_opcode: label_USHORT_LOAD(p); break;
case INT_LOAD_opcode: label_INT_LOAD(p); break;
case LONG_LOAD_opcode: label_LONG_LOAD(p); break;
case FLOAT_LOAD_opcode: label_FLOAT_LOAD(p); break;
case DOUBLE_LOAD_opcode: label_DOUBLE_LOAD(p); break;
case BYTE_STORE_opcode: label_BYTE_STORE(p); break;
case SHORT_STORE_opcode: label_SHORT_STORE(p); break;
case INT_STORE_opcode: label_INT_STORE(p); break;
case LONG_STORE_opcode: label_LONG_STORE(p); break;
case FLOAT_STORE_opcode: label_FLOAT_STORE(p); break;
case DOUBLE_STORE_opcode: label_DOUBLE_STORE(p); break;
case PREPARE_INT_opcode: label_PREPARE_INT(p); break;
case PREPARE_LONG_opcode: label_PREPARE_LONG(p); break;
case ATTEMPT_INT_opcode: label_ATTEMPT_INT(p); break;
case ATTEMPT_LONG_opcode: label_ATTEMPT_LONG(p); break;
case CALL_opcode: label_CALL(p); break;
case SYSCALL_opcode: label_SYSCALL(p); break;
case YIELDPOINT_PROLOGUE_opcode: label_YIELDPOINT_PROLOGUE(p); break;
case YIELDPOINT_EPILOGUE_opcode: label_YIELDPOINT_EPILOGUE(p); break;
case YIELDPOINT_BACKEDGE_opcode: label_YIELDPOINT_BACKEDGE(p); break;
case YIELDPOINT_OSR_opcode: label_YIELDPOINT_OSR(p); break;
case IR_PROLOGUE_opcode: label_IR_PROLOGUE(p); break;
case RESOLVE_opcode: label_RESOLVE(p); break;
case GET_TIME_BASE_opcode: label_GET_TIME_BASE(p); break;
case TRAP_IF_opcode: label_TRAP_IF(p); break;
case TRAP_opcode: label_TRAP(p); break;
case FLOAT_AS_INT_BITS_opcode: label_FLOAT_AS_INT_BITS(p); break;
case INT_BITS_AS_FLOAT_opcode: label_INT_BITS_AS_FLOAT(p); break;
case DOUBLE_AS_LONG_BITS_opcode: label_DOUBLE_AS_LONG_BITS(p); break;
case LONG_BITS_AS_DOUBLE_opcode: label_LONG_BITS_AS_DOUBLE(p); break;
case LOWTABLESWITCH_opcode: label_LOWTABLESWITCH(p); break;
case ADDRESS_CONSTANT_opcode: label_ADDRESS_CONSTANT(p); break;
case INT_CONSTANT_opcode: label_INT_CONSTANT(p); break;
case LONG_CONSTANT_opcode: label_LONG_CONSTANT(p); break;
case REGISTER_opcode: label_REGISTER(p); break;
case OTHER_OPERAND_opcode: label_OTHER_OPERAND(p); break;
case NULL_opcode: label_NULL(p); break;
case BRANCH_TARGET_opcode: label_BRANCH_TARGET(p); break;
case MATERIALIZE_FP_CONSTANT_opcode: label_MATERIALIZE_FP_CONSTANT(p); break;
case GET_JTOC_opcode: label_GET_JTOC(p); break;
case GET_CURRENT_PROCESSOR_opcode: label_GET_CURRENT_PROCESSOR(p); break;
case CLEAR_FLOATING_POINT_STATE_opcode: label_CLEAR_FLOATING_POINT_STATE(p); break;
case PREFETCH_opcode: label_PREFETCH(p); break;
case PAUSE_opcode: label_PAUSE(p); break;
case CMP_CMOV_opcode: label_CMP_CMOV(p); break;
case LCMP_CMOV_opcode: label_LCMP_CMOV(p); break;
default:
throw new OPT_OptimizingCompilerException("BURS","terminal not in grammar:",OPT_OperatorNames.operatorName[p.getOpcode()]); }
}
static OPT_BURS_TreeNode kids(OPT_BURS_TreeNode p, int eruleno, int kidnumber) {
if (OPT_BURS.DEBUG) {
switch (eruleno) {
case 37: // address: address1scaledreg
case 36: // address1scaledreg: address1reg
case 33: // load8_16_32: load8
case 32: // load8_16_32: load16_32
case 31: // load16_32: load32
case 30: // load16_32: load16
case 27: // load16: uload16
case 26: // load16: sload16
case 21: // load8: uload8
case 20: // load8: sload8
case 12: // any: riv
case 9: // rlv: r
case 7: // riv: r
case 6: // szp: szpr
case 5: // r: szpr
case 4: // cz: czr
case 3: // r: czr
case 1: // stm: r
if (kidnumber == 0) return p;
break;
case 424: // stm: CLEAR_FLOATING_POINT_STATE
case 423: // r: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
case 372: // r: GET_TIME_BASE
case 370: // r: GET_CAUGHT_EXCEPTION
case 364: // stm: RETURN(LONG_CONSTANT)
case 362: // stm: RETURN(INT_CONSTANT)
case 361: // stm: RETURN(NULL)
case 360: // stm: PAUSE
case 358: // stm: GOTO
case 264: // r: GET_CURRENT_PROCESSOR
case 263: // r: LONG_MOVE(LONG_CONSTANT)
case 70: // stm: TRAP
case 68: // r: GET_CAUGHT_EXCEPTION
case 67: // stm: IR_PROLOGUE
case 65: // r: GUARD_COMBINE
case 64: // r: GUARD_MOVE
case 63: // stm: NOP
case 62: // stm: RESOLVE
case 60: // stm: YIELDPOINT_BACKEDGE
case 59: // stm: YIELDPOINT_EPILOGUE
case 58: // stm: YIELDPOINT_PROLOGUE
case 57: // stm: UNINT_END
case 56: // stm: UNINT_BEGIN
case 55: // stm: IG_PATCH_POINT
case 14: // any: LONG_CONSTANT
case 13: // any: ADDRESS_CONSTANT
case 11: // any: NULL
case 10: // rlv: LONG_CONSTANT
case 8: // riv: INT_CONSTANT
case 2: // r: REGISTER
break;
case 426: // stm: DOUBLE_IFCMP(r,r)
case 425: // stm: FLOAT_IFCMP(r,r)
case 406: // r: FLOAT_ALOAD(riv,riv)
case 405: // r: FLOAT_LOAD(riv,riv)
case 404: // r: DOUBLE_ALOAD(riv,riv)
case 403: // r: DOUBLE_LOAD(riv,riv)
case 398: // r: DOUBLE_REM(r,r)
case 397: // r: FLOAT_REM(r,r)
case 395: // r: DOUBLE_DIV(r,r)
case 394: // r: DOUBLE_MUL(r,r)
case 393: // r: DOUBLE_SUB(r,r)
case 392: // r: DOUBLE_ADD(r,r)
case 391: // r: DOUBLE_ADD(r,r)
case 389: // r: FLOAT_DIV(r,r)
case 388: // r: FLOAT_MUL(r,r)
case 387: // r: FLOAT_MUL(r,r)
case 386: // r: FLOAT_SUB(r,r)
case 385: // r: FLOAT_ADD(r,r)
case 384: // r: FLOAT_ADD(r,r)
case 373: // stm: YIELDPOINT_OSR(any,any)
case 368: // r: SYSCALL(r,any)
case 365: // r: CALL(r,any)
case 357: // r: LONG_CMP(rlv,rlv)
case 356: // stm: LONG_IFCMP(rlv,rlv)
case 355: // stm: INT_IFCMP2(r,load32)
case 354: // stm: INT_IFCMP2(load32,riv)
case 353: // stm: INT_IFCMP2(r,riv)
case 347: // stm: INT_IFCMP(r,load32)
case 346: // stm: INT_IFCMP(load32,riv)
case 344: // stm: INT_IFCMP(r,uload8)
case 343: // stm: INT_IFCMP(uload8,r)
case 340: // stm: INT_IFCMP(r,riv)
case 298: // r: PREPARE_LONG(riv,riv)
case 295: // r: PREPARE_INT(address1reg,address1scaledreg)
case 294: // r: PREPARE_INT(address1scaledreg,address1reg)
case 293: // r: PREPARE_INT(address1scaledreg,r)
case 292: // r: PREPARE_INT(r,address1scaledreg)
case 291: // r: PREPARE_INT(riv,riv)
case 290: // r: LONG_ALOAD(riv,riv)
case 289: // r: LONG_LOAD(riv,riv)
case 288: // r: INT_ALOAD(riv,riv)
case 286: // r: INT_LOAD(address1reg,address1scaledreg)
case 285: // r: INT_LOAD(address1scaledreg,address1reg)
case 284: // r: INT_LOAD(address1scaledreg,riv)
case 283: // r: INT_LOAD(riv,address1scaledreg)
case 282: // r: INT_LOAD(riv,riv)
case 277: // r: USHORT_ALOAD(riv,riv)
case 276: // r: USHORT_LOAD(riv,riv)
case 275: // r: SHORT_ALOAD(riv,riv)
case 274: // r: SHORT_LOAD(riv,riv)
case 269: // r: UBYTE_ALOAD(riv,riv)
case 268: // r: UBYTE_LOAD(riv,riv)
case 267: // r: BYTE_ALOAD(riv,riv)
case 266: // r: BYTE_LOAD(riv,riv)
case 216: // r: LONG_XOR(r,rlv)
case 215: // r: LONG_OR(rlv,rlv)
case 214: // r: LONG_AND(rlv,rlv)
case 212: // r: LONG_USHR(rlv,riv)
case 210: // r: LONG_SHR(rlv,riv)
case 208: // r: LONG_SHL(rlv,riv)
case 206: // r: LONG_MUL(rlv,rlv)
case 205: // r: LONG_SUB(rlv,rlv)
case 204: // r: LONG_ADD(r,rlv)
case 196: // szpr: INT_XOR(load32,riv)
case 195: // szpr: INT_XOR(riv,load32)
case 194: // szpr: INT_XOR(riv,riv)
case 189: // szpr: INT_OR(load32,riv)
case 188: // szpr: INT_OR(riv,load32)
case 187: // szpr: INT_OR(riv,riv)
case 182: // szp: INT_AND(load32,riv)
case 181: // szp: INT_AND(riv,load32)
case 180: // szpr: INT_AND(load32,riv)
case 179: // szpr: INT_AND(riv,load32)
case 178: // szp: INT_AND(r,riv)
case 177: // szpr: INT_AND(riv,riv)
case 163: // szpr: INT_USHR(riv,riv)
case 156: // szpr: INT_SHR(riv,riv)
case 147: // szpr: INT_SHL(riv,riv)
case 142: // r: INT_REM(riv,riv)
case 141: // r: INT_DIV(riv,riv)
case 140: // r: INT_MUL(riv,riv)
case 135: // czr: INT_SUB(load32,riv)
case 134: // czr: INT_SUB(riv,load32)
case 133: // r: INT_SUB(load32,r)
case 132: // r: INT_SUB(riv,r)
case 131: // czr: INT_SUB(riv,r)
case 126: // czr: INT_ADD(load32,riv)
case 125: // czr: INT_ADD(riv,load32)
case 124: // r: INT_ADD(r,riv)
case 123: // czr: INT_ADD(r,riv)
case 104: // boolcmp: BOOLEAN_CMP_LONG(rlv,rlv)
case 103: // r: BOOLEAN_CMP_LONG(rlv,rlv)
case 100: // boolcmp: BOOLEAN_CMP_INT(r,load32)
case 99: // r: BOOLEAN_CMP_INT(r,load32)
case 98: // boolcmp: BOOLEAN_CMP_INT(load32,riv)
case 97: // r: BOOLEAN_CMP_INT(load32,riv)
case 80: // boolcmp: BOOLEAN_CMP_INT(r,riv)
case 79: // r: BOOLEAN_CMP_INT(r,riv)
case 75: // stm: TRAP_IF(riv,load32)
case 74: // stm: TRAP_IF(load32,riv)
case 73: // stm: TRAP_IF(r,r)
case 52: // r: INT_ADD(address1reg,address1scaledreg)
case 51: // r: INT_ADD(address1scaledreg,address1reg)
case 50: // r: INT_ADD(r,address1scaledreg)
case 49: // r: INT_ADD(address1scaledreg,r)
case 48: // address: INT_ADD(address1reg,address1scaledreg)
case 47: // address: INT_ADD(address1scaledreg,address1reg)
case 45: // address: INT_ADD(address1scaledreg,r)
case 44: // address: INT_ADD(r,address1scaledreg)
case 41: // address: INT_ADD(r,r)
case 35: // load64: LONG_ALOAD(riv,riv)
case 34: // load64: LONG_LOAD(riv,riv)
case 29: // load32: INT_ALOAD(riv,riv)
case 28: // load32: INT_LOAD(riv,riv)
case 25: // uload16: USHORT_ALOAD(riv,riv)
case 24: // uload16: USHORT_LOAD(riv,riv)
case 23: // sload16: SHORT_ALOAD(riv,riv)
case 22: // sload16: SHORT_LOAD(riv,riv)
case 19: // uload8: UBYTE_ALOAD(riv,riv)
case 18: // uload8: UBYTE_LOAD(riv,riv)
case 17: // sload8: BYTE_ALOAD(riv,riv)
case 16: // sload8: BYTE_LOAD(riv,riv)
case 15: // any: OTHER_OPERAND(any,any)
if (kidnumber == 0) return p.child1;
if (kidnumber == 1) return p.child2;
break;
case 422: // r: LONG_BITS_AS_DOUBLE(rlv)
case 421: // r: INT_BITS_AS_FLOAT(riv)
case 420: // r: DOUBLE_AS_LONG_BITS(r)
case 419: // r: FLOAT_AS_INT_BITS(r)
case 418: // r: DOUBLE_2LONG(r)
case 417: // r: DOUBLE_2INT(r)
case 416: // r: FLOAT_2LONG(r)
case 415: // r: FLOAT_2INT(r)
case 414: // r: DOUBLE_2FLOAT(r)
case 413: // r: FLOAT_2DOUBLE(r)
case 412: // r: INT_2DOUBLE(riv)
case 411: // r: INT_2FLOAT(riv)
case 402: // r: DOUBLE_MOVE(r)
case 401: // r: FLOAT_MOVE(r)
case 400: // r: LONG_2DOUBLE(r)
case 399: // r: LONG_2FLOAT(r)
case 396: // r: DOUBLE_NEG(r)
case 390: // r: FLOAT_NEG(r)
case 371: // stm: SET_CAUGHT_EXCEPTION(r)
case 363: // stm: RETURN(r)
case 359: // stm: PREFETCH(r)
case 352: // stm: INT_IFCMP(bittest,INT_CONSTANT)
case 351: // stm: INT_IFCMP(szp,INT_CONSTANT)
case 350: // stm: INT_IFCMP(cz,INT_CONSTANT)
case 349: // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
case 348: // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
case 345: // stm: INT_IFCMP(sload16,INT_CONSTANT)
case 342: // stm: INT_IFCMP(load8,INT_CONSTANT)
case 341: // stm: INT_IFCMP(r,INT_CONSTANT)
case 296: // r: PREPARE_INT(address,INT_CONSTANT)
case 287: // r: INT_LOAD(address,INT_CONSTANT)
case 280: // r: INT_2USHORT(load16_32)
case 279: // r: INT_2USHORT(load16_32)
case 278: // r: INT_AND(load16_32,INT_CONSTANT)
case 272: // r: INT_2BYTE(load8_16_32)
case 271: // r: INT_AND(load8_16_32,INT_CONSTANT)
case 270: // uload8: INT_AND(load8_16_32,INT_CONSTANT)
case 265: // r: GET_JTOC(r)
case 262: // r: LONG_MOVE(r)
case 261: // load64: LONG_MOVE(load64)
case 260: // load32: INT_MOVE(load32)
case 259: // load16: INT_MOVE(load16)
case 258: // uload16: INT_MOVE(uload16)
case 257: // sload16: INT_MOVE(sload16)
case 256: // load8: INT_MOVE(load8)
case 255: // uload8: INT_MOVE(uload8)
case 254: // sload8: INT_MOVE(sload8)
case 253: // address: INT_MOVE(address)
case 252: // address1scaledreg: INT_MOVE(address1scaledreg)
case 251: // address1reg: INT_MOVE(address1reg)
case 250: // szp: INT_MOVE(szp)
case 249: // szpr: INT_MOVE(szpr)
case 248: // cz: INT_MOVE(cz)
case 247: // czr: INT_MOVE(czr)
case 246: // r: INT_MOVE(riv)
case 239: // r: LONG_2INT(load64)
case 236: // r: LONG_2INT(r)
case 231: // r: INT_2LONG(load32)
case 230: // r: INT_2LONG(r)
case 227: // r: INT_2SHORT(load16_32)
case 226: // r: INT_2SHORT(r)
case 223: // r: INT_2USHORT(load16_32)
case 222: // szpr: INT_2USHORT(r)
case 219: // r: INT_2BYTE(load8_16_32)
case 218: // r: INT_2BYTE(r)
case 217: // r: LONG_NOT(r)
case 207: // r: LONG_NEG(r)
case 201: // r: INT_NOT(r)
case 164: // szpr: INT_USHR(riv,INT_CONSTANT)
case 157: // szpr: INT_SHR(riv,INT_CONSTANT)
case 149: // r: INT_SHL(r,INT_CONSTANT)
case 148: // szpr: INT_SHL(r,INT_CONSTANT)
case 143: // szpr: INT_NEG(r)
case 110: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
case 109: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
case 108: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
case 107: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
case 96: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
case 95: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
case 94: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
case 93: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
case 92: // boolcmp: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
case 91: // r: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
case 90: // boolcmp: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
case 89: // r: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
case 88: // boolcmp: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
case 87: // r: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
case 86: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
case 85: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
case 84: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
case 83: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
case 82: // boolcmp: BOOLEAN_CMP_INT(r,INT_CONSTANT)
case 81: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
case 76: // r: BOOLEAN_NOT(r)
case 72: // stm: TRAP_IF(r,LONG_CONSTANT)
case 71: // stm: TRAP_IF(r,INT_CONSTANT)
case 69: // stm: SET_CAUGHT_EXCEPTION(r)
case 66: // stm: NULL_CHECK(riv)
case 61: // stm: LOWTABLESWITCH(r)
case 54: // r: INT_MOVE(address)
case 53: // r: INT_ADD(address,INT_CONSTANT)
case 46: // address: INT_ADD(address1scaledreg,INT_CONSTANT)
case 43: // address1scaledreg: INT_ADD(address1scaledreg,INT_CONSTANT)
case 42: // address1reg: INT_ADD(address1reg,INT_CONSTANT)
case 40: // address1reg: INT_MOVE(r)
case 39: // address1reg: INT_ADD(r,INT_CONSTANT)
case 38: // address1scaledreg: INT_SHL(r,INT_CONSTANT)
if (kidnumber == 0) return p.child1;
break;
case 203: // stm: INT_ASTORE(INT_NOT(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 202: // stm: INT_STORE(INT_NOT(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 168: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 166: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 161: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 159: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 154: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 152: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 145: // stm: INT_ASTORE(INT_NEG(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 144: // stm: INT_STORE(INT_NEG(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 78: // stm: BYTE_ASTORE(BOOLEAN_NOT(UBYTE_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 77: // stm: BYTE_STORE(BOOLEAN_NOT(UBYTE_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
if (kidnumber == 0) return p.child1.child1.child1;
if (kidnumber == 1) return p.child1.child1.child2;
if (kidnumber == 2) return p.child2.child1;
if (kidnumber == 3) return p.child2.child2;
break;
case 410: // stm: FLOAT_ASTORE(r,OTHER_OPERAND(riv,riv))
case 409: // stm: FLOAT_STORE(r,OTHER_OPERAND(riv,riv))
case 408: // stm: DOUBLE_ASTORE(r,OTHER_OPERAND(riv,riv))
case 407: // stm: DOUBLE_STORE(r,OTHER_OPERAND(riv,riv))
case 338: // stm: LONG_ASTORE(r,OTHER_OPERAND(riv,riv))
case 336: // stm: LONG_STORE(r,OTHER_OPERAND(riv,riv))
case 335: // stm: INT_ASTORE(riv,OTHER_OPERAND(riv,riv))
case 333: // stm: INT_STORE(riv,OTHER_OPERAND(address1reg,address1scaledreg))
case 332: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,address1reg))
case 331: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,riv))
case 330: // stm: INT_STORE(riv,OTHER_OPERAND(riv,address1scaledreg))
case 329: // stm: INT_STORE(riv,OTHER_OPERAND(riv,riv))
case 328: // stm: SHORT_ASTORE(load16,OTHER_OPERAND(riv,riv))
case 327: // stm: SHORT_ASTORE(riv,OTHER_OPERAND(riv,riv))
case 326: // stm: SHORT_STORE(load16,OTHER_OPERAND(riv,riv))
case 325: // stm: SHORT_STORE(riv,OTHER_OPERAND(riv,riv))
case 324: // stm: BYTE_ASTORE(load8,OTHER_OPERAND(riv,riv))
case 323: // stm: BYTE_ASTORE(riv,OTHER_OPERAND(riv,riv))
case 322: // stm: BYTE_STORE(load8,OTHER_OPERAND(riv,riv))
case 321: // stm: BYTE_STORE(riv,OTHER_OPERAND(riv,riv))
case 122: // r: LCMP_CMOV(r,OTHER_OPERAND(rlv,any))
case 116: // r: CMP_CMOV(r,OTHER_OPERAND(load32,any))
case 115: // r: CMP_CMOV(load32,OTHER_OPERAND(riv,any))
case 113: // r: CMP_CMOV(r,OTHER_OPERAND(uload8,any))
case 112: // r: CMP_CMOV(uload8,OTHER_OPERAND(r,any))
case 105: // r: CMP_CMOV(r,OTHER_OPERAND(riv,any))
case 102: // stm: BYTE_ASTORE(boolcmp,OTHER_OPERAND(riv,riv))
case 101: // stm: BYTE_STORE(boolcmp,OTHER_OPERAND(riv,riv))
if (kidnumber == 0) return p.child1;
if (kidnumber == 1) return p.child2.child1;
if (kidnumber == 2) return p.child2.child2;
break;
case 121: // r: CMP_CMOV(szp,OTHER_OPERAND(INT_CONSTANT,any))
case 120: // r: CMP_CMOV(cz,OTHER_OPERAND(INT_CONSTANT,any))
case 119: // r: CMP_CMOV(bittest,OTHER_OPERAND(INT_CONSTANT,any))
case 118: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
case 117: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
case 114: // r: CMP_CMOV(sload16,OTHER_OPERAND(INT_CONSTANT,any))
case 111: // r: CMP_CMOV(load8,OTHER_OPERAND(INT_CONSTANT,any))
case 106: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,any))
if (kidnumber == 0) return p.child1;
if (kidnumber == 1) return p.child2.child2;
break;
case 199: // stm: INT_ASTORE(INT_XOR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 197: // stm: INT_STORE(INT_XOR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 192: // stm: INT_ASTORE(INT_OR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 190: // stm: INT_STORE(INT_OR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 185: // stm: INT_ASTORE(INT_AND(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 183: // stm: INT_STORE(INT_AND(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 138: // stm: INT_ASTORE(INT_SUB(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 136: // stm: INT_STORE(INT_SUB(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 129: // stm: INT_ASTORE(INT_ADD(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 127: // stm: INT_STORE(INT_ADD(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
if (kidnumber == 0) return p.child1.child1.child1;
if (kidnumber == 1) return p.child1.child1.child2;
if (kidnumber == 2) return p.child1.child2;
if (kidnumber == 3) return p.child2.child1;
if (kidnumber == 4) return p.child2.child2;
break;
case 200: // stm: INT_ASTORE(INT_XOR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 198: // stm: INT_STORE(INT_XOR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 193: // stm: INT_ASTORE(INT_OR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 191: // stm: INT_STORE(INT_OR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 186: // stm: INT_ASTORE(INT_AND(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 184: // stm: INT_STORE(INT_AND(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 139: // stm: INT_ASTORE(INT_SUB(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 137: // stm: INT_STORE(INT_SUB(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 130: // stm: INT_ASTORE(INT_ADD(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 128: // stm: INT_STORE(INT_ADD(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
if (kidnumber == 0) return p.child1.child1;
if (kidnumber == 1) return p.child1.child2.child1;
if (kidnumber == 2) return p.child1.child2.child2;
if (kidnumber == 3) return p.child2.child1;
if (kidnumber == 4) return p.child2.child2;
break;
case 334: // stm: INT_STORE(riv,OTHER_OPERAND(address,INT_CONSTANT))
case 213: // r: LONG_USHR(rlv,INT_AND(riv,INT_CONSTANT))
case 211: // r: LONG_SHR(rlv,INT_AND(riv,INT_CONSTANT))
case 209: // r: LONG_SHL(rlv,INT_AND(riv,INT_CONSTANT))
case 162: // szpr: INT_USHR(riv,INT_AND(r,INT_CONSTANT))
case 155: // szpr: INT_SHR(riv,INT_AND(r,INT_CONSTANT))
case 146: // szpr: INT_SHL(riv,INT_AND(r,INT_CONSTANT))
if (kidnumber == 0) return p.child1;
if (kidnumber == 1) return p.child2.child1;
break;
case 379: // bittest: INT_AND(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
case 376: // bittest: INT_AND(INT_USHR(r,INT_CONSTANT),INT_CONSTANT)
case 281: // r: INT_USHR(INT_SHL(load16_32,INT_CONSTANT),INT_CONSTANT)
case 273: // r: INT_USHR(INT_SHL(load8_16_32,INT_CONSTANT),INT_CONSTANT)
case 245: // load32: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
case 244: // load32: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
case 243: // r: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
case 242: // r: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
case 241: // r: LONG_2INT(LONG_SHR(r,INT_CONSTANT))
case 240: // r: LONG_2INT(LONG_USHR(r,INT_CONSTANT))
case 235: // r: LONG_SHL(INT_2LONG(load64),INT_CONSTANT)
case 234: // r: LONG_SHL(INT_2LONG(r),INT_CONSTANT)
case 233: // r: LONG_AND(INT_2LONG(load32),LONG_CONSTANT)
case 232: // r: LONG_AND(INT_2LONG(r),LONG_CONSTANT)
case 150: // szpr: INT_SHL(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
if (kidnumber == 0) return p.child1.child1;
break;
case 167: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
case 165: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
case 160: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
case 158: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
case 153: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
case 151: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
if (kidnumber == 0) return p.child1.child1.child1;
if (kidnumber == 1) return p.child1.child1.child2;
if (kidnumber == 2) return p.child1.child2.child1;
if (kidnumber == 3) return p.child2.child1;
if (kidnumber == 4) return p.child2.child2;
break;
case 172: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
case 171: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
case 170: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
case 169: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
if (kidnumber == 0) return p.child1.child1;
if (kidnumber == 1) return p.child2.child1;
break;
case 176: // r: INT_OR(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
case 173: // r: INT_OR(INT_SHL(r,INT_AND(r,INT_CONSTANT)),INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
if (kidnumber == 0) return p.child1.child1;
if (kidnumber == 1) return p.child1.child2.child1;
if (kidnumber == 2) return p.child2.child1;
if (kidnumber == 3) return p.child2.child2.child1.child1;
break;
case 175: // r: INT_OR(INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_USHR(r,INT_AND(r,INT_CONSTANT)))
case 174: // r: INT_OR(INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_SHL(r,INT_AND(r,INT_CONSTANT)))
if (kidnumber == 0) return p.child1.child1;
if (kidnumber == 1) return p.child1.child2.child1.child1;
if (kidnumber == 2) return p.child2.child1;
if (kidnumber == 3) return p.child2.child2.child1;
break;
case 238: // stm: INT_ASTORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
case 237: // stm: INT_STORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
case 229: // stm: SHORT_ASTORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
case 228: // stm: SHORT_STORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
case 225: // stm: SHORT_ASTORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
case 224: // stm: SHORT_STORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
case 221: // stm: BYTE_ASTORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
case 220: // stm: BYTE_STORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
if (kidnumber == 0) return p.child1.child1;
if (kidnumber == 1) return p.child2.child1;
if (kidnumber == 2) return p.child2.child2;
break;
case 366: // r: CALL(BRANCH_TARGET,any)
case 297: // r: PREPARE_INT(INT_CONSTANT,address)
if (kidnumber == 0) return p.child2;
break;
case 320: // r: ATTEMPT_LONG(riv,OTHER_OPERAND(riv,OTHER_OPERAND(rlv,rlv)))
case 303: // r: ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
case 302: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv)))
case 301: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv)))
case 300: // r: ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
case 299: // r: ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv)))
if (kidnumber == 0) return p.child1;
if (kidnumber == 1) return p.child2.child1;
if (kidnumber == 2) return p.child2.child2.child1;
if (kidnumber == 3) return p.child2.child2.child2;
break;
case 304: // r: ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv)))
if (kidnumber == 0) return p.child1;
if (kidnumber == 1) return p.child2.child2.child1;
if (kidnumber == 2) return p.child2.child2.child2;
break;
case 305: // r: ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv)))
if (kidnumber == 0) return p.child2.child1;
if (kidnumber == 1) return p.child2.child2.child1;
if (kidnumber == 2) return p.child2.child2.child2;
break;
case 317: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 316: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 315: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 314: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 313: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 310: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 309: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 308: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 307: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 306: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
if (kidnumber == 0) return p.child1.child1;
if (kidnumber == 1) return p.child1.child2.child1;
if (kidnumber == 2) return p.child1.child2.child2.child1;
if (kidnumber == 3) return p.child1.child2.child2.child2;
break;
case 318: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 311: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
if (kidnumber == 0) return p.child1.child1;
if (kidnumber == 1) return p.child1.child2.child2.child1;
if (kidnumber == 2) return p.child1.child2.child2.child2;
break;
case 319: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 312: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
if (kidnumber == 0) return p.child1.child2.child1;
if (kidnumber == 1) return p.child1.child2.child2.child1;
if (kidnumber == 2) return p.child1.child2.child2.child2;
break;
case 339: // stm: LONG_ASTORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
case 337: // stm: LONG_STORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
if (kidnumber == 0) return p.child2.child1;
if (kidnumber == 1) return p.child2.child2;
break;
case 369: // r: SYSCALL(INT_LOAD(riv,riv),any)
case 367: // r: CALL(INT_LOAD(riv,riv),any)
if (kidnumber == 0) return p.child1.child1;
if (kidnumber == 1) return p.child1.child2;
if (kidnumber == 2) return p.child2;
break;
case 378: // bittest: INT_AND(INT_SHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
case 377: // bittest: INT_AND(INT_SHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
case 375: // bittest: INT_AND(INT_USHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
case 374: // bittest: INT_AND(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
if (kidnumber == 0) return p.child1.child1;
if (kidnumber == 1) return p.child1.child2.child1;
break;
case 381: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)),load32)
case 380: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(riv,INT_CONSTANT)),r)
if (kidnumber == 0) return p.child1.child2.child1;
if (kidnumber == 1) return p.child2;
break;
case 383: // bittest: INT_AND(load32,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
case 382: // bittest: INT_AND(r,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
if (kidnumber == 0) return p.child1;
if (kidnumber == 1) return p.child2.child2.child1;
break;
}
throw new OPT_OptimizingCompilerException("BURS","Bad rule number ",Integer.toString(eruleno));
} else return null;
}
static void mark_kids(OPT_BURS_TreeNode p, int eruleno)
{
byte[] ntsrule = nts[eruleno];
switch (eruleno) {
case 37: // address: address1scaledreg
case 36: // address1scaledreg: address1reg
case 33: // load8_16_32: load8
case 32: // load8_16_32: load16_32
case 31: // load16_32: load32
case 30: // load16_32: load16
case 27: // load16: uload16
case 26: // load16: sload16
case 21: // load8: uload8
case 20: // load8: sload8
case 12: // any: riv
case 9: // rlv: r
case 7: // riv: r
case 6: // szp: szpr
case 5: // r: szpr
case 4: // cz: czr
case 3: // r: czr
case 1: // stm: r
mark(p, ntsrule[0]);
break;
case 424: // stm: CLEAR_FLOATING_POINT_STATE
case 423: // r: MATERIALIZE_FP_CONSTANT(INT_CONSTANT)
case 372: // r: GET_TIME_BASE
case 370: // r: GET_CAUGHT_EXCEPTION
case 364: // stm: RETURN(LONG_CONSTANT)
case 362: // stm: RETURN(INT_CONSTANT)
case 361: // stm: RETURN(NULL)
case 360: // stm: PAUSE
case 358: // stm: GOTO
case 264: // r: GET_CURRENT_PROCESSOR
case 263: // r: LONG_MOVE(LONG_CONSTANT)
case 70: // stm: TRAP
case 68: // r: GET_CAUGHT_EXCEPTION
case 67: // stm: IR_PROLOGUE
case 65: // r: GUARD_COMBINE
case 64: // r: GUARD_MOVE
case 63: // stm: NOP
case 62: // stm: RESOLVE
case 60: // stm: YIELDPOINT_BACKEDGE
case 59: // stm: YIELDPOINT_EPILOGUE
case 58: // stm: YIELDPOINT_PROLOGUE
case 57: // stm: UNINT_END
case 56: // stm: UNINT_BEGIN
case 55: // stm: IG_PATCH_POINT
case 14: // any: LONG_CONSTANT
case 13: // any: ADDRESS_CONSTANT
case 11: // any: NULL
case 10: // rlv: LONG_CONSTANT
case 8: // riv: INT_CONSTANT
case 2: // r: REGISTER
break;
case 426: // stm: DOUBLE_IFCMP(r,r)
case 425: // stm: FLOAT_IFCMP(r,r)
case 406: // r: FLOAT_ALOAD(riv,riv)
case 405: // r: FLOAT_LOAD(riv,riv)
case 404: // r: DOUBLE_ALOAD(riv,riv)
case 403: // r: DOUBLE_LOAD(riv,riv)
case 398: // r: DOUBLE_REM(r,r)
case 397: // r: FLOAT_REM(r,r)
case 395: // r: DOUBLE_DIV(r,r)
case 394: // r: DOUBLE_MUL(r,r)
case 393: // r: DOUBLE_SUB(r,r)
case 392: // r: DOUBLE_ADD(r,r)
case 391: // r: DOUBLE_ADD(r,r)
case 389: // r: FLOAT_DIV(r,r)
case 388: // r: FLOAT_MUL(r,r)
case 387: // r: FLOAT_MUL(r,r)
case 386: // r: FLOAT_SUB(r,r)
case 385: // r: FLOAT_ADD(r,r)
case 384: // r: FLOAT_ADD(r,r)
case 373: // stm: YIELDPOINT_OSR(any,any)
case 368: // r: SYSCALL(r,any)
case 365: // r: CALL(r,any)
case 357: // r: LONG_CMP(rlv,rlv)
case 356: // stm: LONG_IFCMP(rlv,rlv)
case 355: // stm: INT_IFCMP2(r,load32)
case 354: // stm: INT_IFCMP2(load32,riv)
case 353: // stm: INT_IFCMP2(r,riv)
case 347: // stm: INT_IFCMP(r,load32)
case 346: // stm: INT_IFCMP(load32,riv)
case 344: // stm: INT_IFCMP(r,uload8)
case 343: // stm: INT_IFCMP(uload8,r)
case 340: // stm: INT_IFCMP(r,riv)
case 298: // r: PREPARE_LONG(riv,riv)
case 295: // r: PREPARE_INT(address1reg,address1scaledreg)
case 294: // r: PREPARE_INT(address1scaledreg,address1reg)
case 293: // r: PREPARE_INT(address1scaledreg,r)
case 292: // r: PREPARE_INT(r,address1scaledreg)
case 291: // r: PREPARE_INT(riv,riv)
case 290: // r: LONG_ALOAD(riv,riv)
case 289: // r: LONG_LOAD(riv,riv)
case 288: // r: INT_ALOAD(riv,riv)
case 286: // r: INT_LOAD(address1reg,address1scaledreg)
case 285: // r: INT_LOAD(address1scaledreg,address1reg)
case 284: // r: INT_LOAD(address1scaledreg,riv)
case 283: // r: INT_LOAD(riv,address1scaledreg)
case 282: // r: INT_LOAD(riv,riv)
case 277: // r: USHORT_ALOAD(riv,riv)
case 276: // r: USHORT_LOAD(riv,riv)
case 275: // r: SHORT_ALOAD(riv,riv)
case 274: // r: SHORT_LOAD(riv,riv)
case 269: // r: UBYTE_ALOAD(riv,riv)
case 268: // r: UBYTE_LOAD(riv,riv)
case 267: // r: BYTE_ALOAD(riv,riv)
case 266: // r: BYTE_LOAD(riv,riv)
case 216: // r: LONG_XOR(r,rlv)
case 215: // r: LONG_OR(rlv,rlv)
case 214: // r: LONG_AND(rlv,rlv)
case 212: // r: LONG_USHR(rlv,riv)
case 210: // r: LONG_SHR(rlv,riv)
case 208: // r: LONG_SHL(rlv,riv)
case 206: // r: LONG_MUL(rlv,rlv)
case 205: // r: LONG_SUB(rlv,rlv)
case 204: // r: LONG_ADD(r,rlv)
case 196: // szpr: INT_XOR(load32,riv)
case 195: // szpr: INT_XOR(riv,load32)
case 194: // szpr: INT_XOR(riv,riv)
case 189: // szpr: INT_OR(load32,riv)
case 188: // szpr: INT_OR(riv,load32)
case 187: // szpr: INT_OR(riv,riv)
case 182: // szp: INT_AND(load32,riv)
case 181: // szp: INT_AND(riv,load32)
case 180: // szpr: INT_AND(load32,riv)
case 179: // szpr: INT_AND(riv,load32)
case 178: // szp: INT_AND(r,riv)
case 177: // szpr: INT_AND(riv,riv)
case 163: // szpr: INT_USHR(riv,riv)
case 156: // szpr: INT_SHR(riv,riv)
case 147: // szpr: INT_SHL(riv,riv)
case 142: // r: INT_REM(riv,riv)
case 141: // r: INT_DIV(riv,riv)
case 140: // r: INT_MUL(riv,riv)
case 135: // czr: INT_SUB(load32,riv)
case 134: // czr: INT_SUB(riv,load32)
case 133: // r: INT_SUB(load32,r)
case 132: // r: INT_SUB(riv,r)
case 131: // czr: INT_SUB(riv,r)
case 126: // czr: INT_ADD(load32,riv)
case 125: // czr: INT_ADD(riv,load32)
case 124: // r: INT_ADD(r,riv)
case 123: // czr: INT_ADD(r,riv)
case 104: // boolcmp: BOOLEAN_CMP_LONG(rlv,rlv)
case 103: // r: BOOLEAN_CMP_LONG(rlv,rlv)
case 100: // boolcmp: BOOLEAN_CMP_INT(r,load32)
case 99: // r: BOOLEAN_CMP_INT(r,load32)
case 98: // boolcmp: BOOLEAN_CMP_INT(load32,riv)
case 97: // r: BOOLEAN_CMP_INT(load32,riv)
case 80: // boolcmp: BOOLEAN_CMP_INT(r,riv)
case 79: // r: BOOLEAN_CMP_INT(r,riv)
case 75: // stm: TRAP_IF(riv,load32)
case 74: // stm: TRAP_IF(load32,riv)
case 73: // stm: TRAP_IF(r,r)
case 52: // r: INT_ADD(address1reg,address1scaledreg)
case 51: // r: INT_ADD(address1scaledreg,address1reg)
case 50: // r: INT_ADD(r,address1scaledreg)
case 49: // r: INT_ADD(address1scaledreg,r)
case 48: // address: INT_ADD(address1reg,address1scaledreg)
case 47: // address: INT_ADD(address1scaledreg,address1reg)
case 45: // address: INT_ADD(address1scaledreg,r)
case 44: // address: INT_ADD(r,address1scaledreg)
case 41: // address: INT_ADD(r,r)
case 35: // load64: LONG_ALOAD(riv,riv)
case 34: // load64: LONG_LOAD(riv,riv)
case 29: // load32: INT_ALOAD(riv,riv)
case 28: // load32: INT_LOAD(riv,riv)
case 25: // uload16: USHORT_ALOAD(riv,riv)
case 24: // uload16: USHORT_LOAD(riv,riv)
case 23: // sload16: SHORT_ALOAD(riv,riv)
case 22: // sload16: SHORT_LOAD(riv,riv)
case 19: // uload8: UBYTE_ALOAD(riv,riv)
case 18: // uload8: UBYTE_LOAD(riv,riv)
case 17: // sload8: BYTE_ALOAD(riv,riv)
case 16: // sload8: BYTE_LOAD(riv,riv)
case 15: // any: OTHER_OPERAND(any,any)
mark(p.child1, ntsrule[0]);
mark(p.child2, ntsrule[1]);
break;
case 422: // r: LONG_BITS_AS_DOUBLE(rlv)
case 421: // r: INT_BITS_AS_FLOAT(riv)
case 420: // r: DOUBLE_AS_LONG_BITS(r)
case 419: // r: FLOAT_AS_INT_BITS(r)
case 418: // r: DOUBLE_2LONG(r)
case 417: // r: DOUBLE_2INT(r)
case 416: // r: FLOAT_2LONG(r)
case 415: // r: FLOAT_2INT(r)
case 414: // r: DOUBLE_2FLOAT(r)
case 413: // r: FLOAT_2DOUBLE(r)
case 412: // r: INT_2DOUBLE(riv)
case 411: // r: INT_2FLOAT(riv)
case 402: // r: DOUBLE_MOVE(r)
case 401: // r: FLOAT_MOVE(r)
case 400: // r: LONG_2DOUBLE(r)
case 399: // r: LONG_2FLOAT(r)
case 396: // r: DOUBLE_NEG(r)
case 390: // r: FLOAT_NEG(r)
case 371: // stm: SET_CAUGHT_EXCEPTION(r)
case 363: // stm: RETURN(r)
case 359: // stm: PREFETCH(r)
case 352: // stm: INT_IFCMP(bittest,INT_CONSTANT)
case 351: // stm: INT_IFCMP(szp,INT_CONSTANT)
case 350: // stm: INT_IFCMP(cz,INT_CONSTANT)
case 349: // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
case 348: // stm: INT_IFCMP(boolcmp,INT_CONSTANT)
case 345: // stm: INT_IFCMP(sload16,INT_CONSTANT)
case 342: // stm: INT_IFCMP(load8,INT_CONSTANT)
case 341: // stm: INT_IFCMP(r,INT_CONSTANT)
case 296: // r: PREPARE_INT(address,INT_CONSTANT)
case 287: // r: INT_LOAD(address,INT_CONSTANT)
case 280: // r: INT_2USHORT(load16_32)
case 279: // r: INT_2USHORT(load16_32)
case 278: // r: INT_AND(load16_32,INT_CONSTANT)
case 272: // r: INT_2BYTE(load8_16_32)
case 271: // r: INT_AND(load8_16_32,INT_CONSTANT)
case 270: // uload8: INT_AND(load8_16_32,INT_CONSTANT)
case 265: // r: GET_JTOC(r)
case 262: // r: LONG_MOVE(r)
case 261: // load64: LONG_MOVE(load64)
case 260: // load32: INT_MOVE(load32)
case 259: // load16: INT_MOVE(load16)
case 258: // uload16: INT_MOVE(uload16)
case 257: // sload16: INT_MOVE(sload16)
case 256: // load8: INT_MOVE(load8)
case 255: // uload8: INT_MOVE(uload8)
case 254: // sload8: INT_MOVE(sload8)
case 253: // address: INT_MOVE(address)
case 252: // address1scaledreg: INT_MOVE(address1scaledreg)
case 251: // address1reg: INT_MOVE(address1reg)
case 250: // szp: INT_MOVE(szp)
case 249: // szpr: INT_MOVE(szpr)
case 248: // cz: INT_MOVE(cz)
case 247: // czr: INT_MOVE(czr)
case 246: // r: INT_MOVE(riv)
case 239: // r: LONG_2INT(load64)
case 236: // r: LONG_2INT(r)
case 231: // r: INT_2LONG(load32)
case 230: // r: INT_2LONG(r)
case 227: // r: INT_2SHORT(load16_32)
case 226: // r: INT_2SHORT(r)
case 223: // r: INT_2USHORT(load16_32)
case 222: // szpr: INT_2USHORT(r)
case 219: // r: INT_2BYTE(load8_16_32)
case 218: // r: INT_2BYTE(r)
case 217: // r: LONG_NOT(r)
case 207: // r: LONG_NEG(r)
case 201: // r: INT_NOT(r)
case 164: // szpr: INT_USHR(riv,INT_CONSTANT)
case 157: // szpr: INT_SHR(riv,INT_CONSTANT)
case 149: // r: INT_SHL(r,INT_CONSTANT)
case 148: // szpr: INT_SHL(r,INT_CONSTANT)
case 143: // szpr: INT_NEG(r)
case 110: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
case 109: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
case 108: // r: CMP_CMOV(load32,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
case 107: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(INT_CONSTANT,INT_CONSTANT)))
case 96: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
case 95: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
case 94: // boolcmp: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
case 93: // r: BOOLEAN_CMP_INT(boolcmp,INT_CONSTANT)
case 92: // boolcmp: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
case 91: // r: BOOLEAN_CMP_INT(bittest,INT_CONSTANT)
case 90: // boolcmp: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
case 89: // r: BOOLEAN_CMP_INT(szp,INT_CONSTANT)
case 88: // boolcmp: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
case 87: // r: BOOLEAN_CMP_INT(cz,INT_CONSTANT)
case 86: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
case 85: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
case 84: // r: BOOLEAN_CMP_INT(load32,INT_CONSTANT)
case 83: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
case 82: // boolcmp: BOOLEAN_CMP_INT(r,INT_CONSTANT)
case 81: // r: BOOLEAN_CMP_INT(r,INT_CONSTANT)
case 76: // r: BOOLEAN_NOT(r)
case 72: // stm: TRAP_IF(r,LONG_CONSTANT)
case 71: // stm: TRAP_IF(r,INT_CONSTANT)
case 69: // stm: SET_CAUGHT_EXCEPTION(r)
case 66: // stm: NULL_CHECK(riv)
case 61: // stm: LOWTABLESWITCH(r)
case 54: // r: INT_MOVE(address)
case 53: // r: INT_ADD(address,INT_CONSTANT)
case 46: // address: INT_ADD(address1scaledreg,INT_CONSTANT)
case 43: // address1scaledreg: INT_ADD(address1scaledreg,INT_CONSTANT)
case 42: // address1reg: INT_ADD(address1reg,INT_CONSTANT)
case 40: // address1reg: INT_MOVE(r)
case 39: // address1reg: INT_ADD(r,INT_CONSTANT)
case 38: // address1scaledreg: INT_SHL(r,INT_CONSTANT)
mark(p.child1, ntsrule[0]);
break;
case 203: // stm: INT_ASTORE(INT_NOT(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 202: // stm: INT_STORE(INT_NOT(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 168: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 166: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 161: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 159: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 154: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 152: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_CONSTANT),OTHER_OPERAND(riv,riv))
case 145: // stm: INT_ASTORE(INT_NEG(INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 144: // stm: INT_STORE(INT_NEG(INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 78: // stm: BYTE_ASTORE(BOOLEAN_NOT(UBYTE_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 77: // stm: BYTE_STORE(BOOLEAN_NOT(UBYTE_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
mark(p.child1.child1.child1, ntsrule[0]);
mark(p.child1.child1.child2, ntsrule[1]);
mark(p.child2.child1, ntsrule[2]);
mark(p.child2.child2, ntsrule[3]);
break;
case 410: // stm: FLOAT_ASTORE(r,OTHER_OPERAND(riv,riv))
case 409: // stm: FLOAT_STORE(r,OTHER_OPERAND(riv,riv))
case 408: // stm: DOUBLE_ASTORE(r,OTHER_OPERAND(riv,riv))
case 407: // stm: DOUBLE_STORE(r,OTHER_OPERAND(riv,riv))
case 338: // stm: LONG_ASTORE(r,OTHER_OPERAND(riv,riv))
case 336: // stm: LONG_STORE(r,OTHER_OPERAND(riv,riv))
case 335: // stm: INT_ASTORE(riv,OTHER_OPERAND(riv,riv))
case 333: // stm: INT_STORE(riv,OTHER_OPERAND(address1reg,address1scaledreg))
case 332: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,address1reg))
case 331: // stm: INT_STORE(riv,OTHER_OPERAND(address1scaledreg,riv))
case 330: // stm: INT_STORE(riv,OTHER_OPERAND(riv,address1scaledreg))
case 329: // stm: INT_STORE(riv,OTHER_OPERAND(riv,riv))
case 328: // stm: SHORT_ASTORE(load16,OTHER_OPERAND(riv,riv))
case 327: // stm: SHORT_ASTORE(riv,OTHER_OPERAND(riv,riv))
case 326: // stm: SHORT_STORE(load16,OTHER_OPERAND(riv,riv))
case 325: // stm: SHORT_STORE(riv,OTHER_OPERAND(riv,riv))
case 324: // stm: BYTE_ASTORE(load8,OTHER_OPERAND(riv,riv))
case 323: // stm: BYTE_ASTORE(riv,OTHER_OPERAND(riv,riv))
case 322: // stm: BYTE_STORE(load8,OTHER_OPERAND(riv,riv))
case 321: // stm: BYTE_STORE(riv,OTHER_OPERAND(riv,riv))
case 122: // r: LCMP_CMOV(r,OTHER_OPERAND(rlv,any))
case 116: // r: CMP_CMOV(r,OTHER_OPERAND(load32,any))
case 115: // r: CMP_CMOV(load32,OTHER_OPERAND(riv,any))
case 113: // r: CMP_CMOV(r,OTHER_OPERAND(uload8,any))
case 112: // r: CMP_CMOV(uload8,OTHER_OPERAND(r,any))
case 105: // r: CMP_CMOV(r,OTHER_OPERAND(riv,any))
case 102: // stm: BYTE_ASTORE(boolcmp,OTHER_OPERAND(riv,riv))
case 101: // stm: BYTE_STORE(boolcmp,OTHER_OPERAND(riv,riv))
mark(p.child1, ntsrule[0]);
mark(p.child2.child1, ntsrule[1]);
mark(p.child2.child2, ntsrule[2]);
break;
case 121: // r: CMP_CMOV(szp,OTHER_OPERAND(INT_CONSTANT,any))
case 120: // r: CMP_CMOV(cz,OTHER_OPERAND(INT_CONSTANT,any))
case 119: // r: CMP_CMOV(bittest,OTHER_OPERAND(INT_CONSTANT,any))
case 118: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
case 117: // r: CMP_CMOV(boolcmp,OTHER_OPERAND(INT_CONSTANT,any))
case 114: // r: CMP_CMOV(sload16,OTHER_OPERAND(INT_CONSTANT,any))
case 111: // r: CMP_CMOV(load8,OTHER_OPERAND(INT_CONSTANT,any))
case 106: // r: CMP_CMOV(r,OTHER_OPERAND(INT_CONSTANT,any))
mark(p.child1, ntsrule[0]);
mark(p.child2.child2, ntsrule[1]);
break;
case 199: // stm: INT_ASTORE(INT_XOR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 197: // stm: INT_STORE(INT_XOR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 192: // stm: INT_ASTORE(INT_OR(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 190: // stm: INT_STORE(INT_OR(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 185: // stm: INT_ASTORE(INT_AND(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 183: // stm: INT_STORE(INT_AND(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 138: // stm: INT_ASTORE(INT_SUB(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 136: // stm: INT_STORE(INT_SUB(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 129: // stm: INT_ASTORE(INT_ADD(INT_ALOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
case 127: // stm: INT_STORE(INT_ADD(INT_LOAD(riv,riv),riv),OTHER_OPERAND(riv,riv))
mark(p.child1.child1.child1, ntsrule[0]);
mark(p.child1.child1.child2, ntsrule[1]);
mark(p.child1.child2, ntsrule[2]);
mark(p.child2.child1, ntsrule[3]);
mark(p.child2.child2, ntsrule[4]);
break;
case 200: // stm: INT_ASTORE(INT_XOR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 198: // stm: INT_STORE(INT_XOR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 193: // stm: INT_ASTORE(INT_OR(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 191: // stm: INT_STORE(INT_OR(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 186: // stm: INT_ASTORE(INT_AND(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 184: // stm: INT_STORE(INT_AND(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 139: // stm: INT_ASTORE(INT_SUB(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 137: // stm: INT_STORE(INT_SUB(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 130: // stm: INT_ASTORE(INT_ADD(riv,INT_ALOAD(riv,riv)),OTHER_OPERAND(riv,riv))
case 128: // stm: INT_STORE(INT_ADD(riv,INT_LOAD(riv,riv)),OTHER_OPERAND(riv,riv))
mark(p.child1.child1, ntsrule[0]);
mark(p.child1.child2.child1, ntsrule[1]);
mark(p.child1.child2.child2, ntsrule[2]);
mark(p.child2.child1, ntsrule[3]);
mark(p.child2.child2, ntsrule[4]);
break;
case 334: // stm: INT_STORE(riv,OTHER_OPERAND(address,INT_CONSTANT))
case 213: // r: LONG_USHR(rlv,INT_AND(riv,INT_CONSTANT))
case 211: // r: LONG_SHR(rlv,INT_AND(riv,INT_CONSTANT))
case 209: // r: LONG_SHL(rlv,INT_AND(riv,INT_CONSTANT))
case 162: // szpr: INT_USHR(riv,INT_AND(r,INT_CONSTANT))
case 155: // szpr: INT_SHR(riv,INT_AND(r,INT_CONSTANT))
case 146: // szpr: INT_SHL(riv,INT_AND(r,INT_CONSTANT))
mark(p.child1, ntsrule[0]);
mark(p.child2.child1, ntsrule[1]);
break;
case 379: // bittest: INT_AND(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
case 376: // bittest: INT_AND(INT_USHR(r,INT_CONSTANT),INT_CONSTANT)
case 281: // r: INT_USHR(INT_SHL(load16_32,INT_CONSTANT),INT_CONSTANT)
case 273: // r: INT_USHR(INT_SHL(load8_16_32,INT_CONSTANT),INT_CONSTANT)
case 245: // load32: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
case 244: // load32: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
case 243: // r: LONG_2INT(LONG_SHR(load64,INT_CONSTANT))
case 242: // r: LONG_2INT(LONG_USHR(load64,INT_CONSTANT))
case 241: // r: LONG_2INT(LONG_SHR(r,INT_CONSTANT))
case 240: // r: LONG_2INT(LONG_USHR(r,INT_CONSTANT))
case 235: // r: LONG_SHL(INT_2LONG(load64),INT_CONSTANT)
case 234: // r: LONG_SHL(INT_2LONG(r),INT_CONSTANT)
case 233: // r: LONG_AND(INT_2LONG(load32),LONG_CONSTANT)
case 232: // r: LONG_AND(INT_2LONG(r),LONG_CONSTANT)
case 150: // szpr: INT_SHL(INT_SHR(r,INT_CONSTANT),INT_CONSTANT)
mark(p.child1.child1, ntsrule[0]);
break;
case 167: // stm: INT_ASTORE(INT_USHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
case 165: // stm: INT_STORE(INT_USHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
case 160: // stm: INT_ASTORE(INT_SHR(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
case 158: // stm: INT_STORE(INT_SHR(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
case 153: // stm: INT_ASTORE(INT_SHL(INT_ALOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
case 151: // stm: INT_STORE(INT_SHL(INT_LOAD(riv,riv),INT_AND(r,INT_CONSTANT)),OTHER_OPERAND(riv,riv))
mark(p.child1.child1.child1, ntsrule[0]);
mark(p.child1.child1.child2, ntsrule[1]);
mark(p.child1.child2.child1, ntsrule[2]);
mark(p.child2.child1, ntsrule[3]);
mark(p.child2.child2, ntsrule[4]);
break;
case 172: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
case 171: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
case 170: // r: INT_OR(INT_USHR(r,INT_CONSTANT),INT_SHL(r,INT_CONSTANT))
case 169: // r: INT_OR(INT_SHL(r,INT_CONSTANT),INT_USHR(r,INT_CONSTANT))
mark(p.child1.child1, ntsrule[0]);
mark(p.child2.child1, ntsrule[1]);
break;
case 176: // r: INT_OR(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
case 173: // r: INT_OR(INT_SHL(r,INT_AND(r,INT_CONSTANT)),INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)))
mark(p.child1.child1, ntsrule[0]);
mark(p.child1.child2.child1, ntsrule[1]);
mark(p.child2.child1, ntsrule[2]);
mark(p.child2.child2.child1.child1, ntsrule[3]);
break;
case 175: // r: INT_OR(INT_SHL(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_USHR(r,INT_AND(r,INT_CONSTANT)))
case 174: // r: INT_OR(INT_USHR(r,INT_AND(INT_NEG(r),INT_CONSTANT)),INT_SHL(r,INT_AND(r,INT_CONSTANT)))
mark(p.child1.child1, ntsrule[0]);
mark(p.child1.child2.child1.child1, ntsrule[1]);
mark(p.child2.child1, ntsrule[2]);
mark(p.child2.child2.child1, ntsrule[3]);
break;
case 238: // stm: INT_ASTORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
case 237: // stm: INT_STORE(LONG_2INT(r),OTHER_OPERAND(riv,riv))
case 229: // stm: SHORT_ASTORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
case 228: // stm: SHORT_STORE(INT_2SHORT(r),OTHER_OPERAND(riv,riv))
case 225: // stm: SHORT_ASTORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
case 224: // stm: SHORT_STORE(INT_2USHORT(r),OTHER_OPERAND(riv,riv))
case 221: // stm: BYTE_ASTORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
case 220: // stm: BYTE_STORE(INT_2BYTE(r),OTHER_OPERAND(riv,riv))
mark(p.child1.child1, ntsrule[0]);
mark(p.child2.child1, ntsrule[1]);
mark(p.child2.child2, ntsrule[2]);
break;
case 366: // r: CALL(BRANCH_TARGET,any)
case 297: // r: PREPARE_INT(INT_CONSTANT,address)
mark(p.child2, ntsrule[0]);
break;
case 320: // r: ATTEMPT_LONG(riv,OTHER_OPERAND(riv,OTHER_OPERAND(rlv,rlv)))
case 303: // r: ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
case 302: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv)))
case 301: // r: ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv)))
case 300: // r: ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv)))
case 299: // r: ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv)))
mark(p.child1, ntsrule[0]);
mark(p.child2.child1, ntsrule[1]);
mark(p.child2.child2.child1, ntsrule[2]);
mark(p.child2.child2.child2, ntsrule[3]);
break;
case 304: // r: ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv)))
mark(p.child1, ntsrule[0]);
mark(p.child2.child2.child1, ntsrule[1]);
mark(p.child2.child2.child2, ntsrule[2]);
break;
case 305: // r: ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv)))
mark(p.child2.child1, ntsrule[0]);
mark(p.child2.child2.child1, ntsrule[1]);
mark(p.child2.child2.child2, ntsrule[2]);
break;
case 317: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 316: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 315: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 314: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 313: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 310: // stm: INT_IFCMP(ATTEMPT_INT(address1reg,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 309: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(address1reg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 308: // stm: INT_IFCMP(ATTEMPT_INT(address1scaledreg,OTHER_OPERAND(r,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 307: // stm: INT_IFCMP(ATTEMPT_INT(r,OTHER_OPERAND(address1scaledreg,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 306: // stm: INT_IFCMP(ATTEMPT_INT(riv,OTHER_OPERAND(riv,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
mark(p.child1.child1, ntsrule[0]);
mark(p.child1.child2.child1, ntsrule[1]);
mark(p.child1.child2.child2.child1, ntsrule[2]);
mark(p.child1.child2.child2.child2, ntsrule[3]);
break;
case 318: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 311: // stm: INT_IFCMP(ATTEMPT_INT(address,OTHER_OPERAND(INT_CONSTANT,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
mark(p.child1.child1, ntsrule[0]);
mark(p.child1.child2.child2.child1, ntsrule[1]);
mark(p.child1.child2.child2.child2, ntsrule[2]);
break;
case 319: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
case 312: // stm: INT_IFCMP(ATTEMPT_INT(INT_CONSTANT,OTHER_OPERAND(address,OTHER_OPERAND(riv,riv))),INT_CONSTANT)
mark(p.child1.child2.child1, ntsrule[0]);
mark(p.child1.child2.child2.child1, ntsrule[1]);
mark(p.child1.child2.child2.child2, ntsrule[2]);
break;
case 339: // stm: LONG_ASTORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
case 337: // stm: LONG_STORE(LONG_CONSTANT,OTHER_OPERAND(riv,riv))
mark(p.child2.child1, ntsrule[0]);
mark(p.child2.child2, ntsrule[1]);
break;
case 369: // r: SYSCALL(INT_LOAD(riv,riv),any)
case 367: // r: CALL(INT_LOAD(riv,riv),any)
mark(p.child1.child1, ntsrule[0]);
mark(p.child1.child2, ntsrule[1]);
mark(p.child2, ntsrule[2]);
break;
case 378: // bittest: INT_AND(INT_SHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
case 377: // bittest: INT_AND(INT_SHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
case 375: // bittest: INT_AND(INT_USHR(load32,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
case 374: // bittest: INT_AND(INT_USHR(r,INT_AND(r,INT_CONSTANT)),INT_CONSTANT)
mark(p.child1.child1, ntsrule[0]);
mark(p.child1.child2.child1, ntsrule[1]);
break;
case 381: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)),load32)
case 380: // bittest: INT_AND(INT_SHL(INT_CONSTANT,INT_AND(riv,INT_CONSTANT)),r)
mark(p.child1.child2.child1, ntsrule[0]);
mark(p.child2, ntsrule[1]);
break;
case 383: // bittest: INT_AND(load32,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
case 382: // bittest: INT_AND(r,INT_SHL(INT_CONSTANT,INT_AND(r,INT_CONSTANT)))
mark(p.child1, ntsrule[0]);
mark(p.child2.child2.child1, ntsrule[1]);
break;
}
}
public static final byte[] action={0
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,NOFLAGS
,NOFLAGS
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,NOFLAGS
,NOFLAGS
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,NOFLAGS
,NOFLAGS
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,NOFLAGS
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,NOFLAGS
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
,EMIT_INSTRUCTION | RIGHT_CHILD_FIRST
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,NOFLAGS
,EMIT_INSTRUCTION
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,NOFLAGS
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
,EMIT_INSTRUCTION
};
void code16(OPT_BURS_TreeNode p) {
pushMO(MO_L(P(p), B));
}
void code17(OPT_BURS_TreeNode p) {
pushMO(MO_AL(P(p), B_S, B));
}
void code18(OPT_BURS_TreeNode p) {
pushMO(MO_L(P(p), B));
}
void code19(OPT_BURS_TreeNode p) {
pushMO(MO_AL(P(p), B_S, B));
}
void code22(OPT_BURS_TreeNode p) {
pushMO(MO_L(P(p), W));
}
void code23(OPT_BURS_TreeNode p) {
pushMO(MO_AL(P(p), W_S, W));
}
void code24(OPT_BURS_TreeNode p) {
pushMO(MO_L(P(p), W));
}
void code25(OPT_BURS_TreeNode p) {
pushMO(MO_AL(P(p), W_S, W));
}
void code28(OPT_BURS_TreeNode p) {
pushMO(MO_L(P(p), DW));
}
void code29(OPT_BURS_TreeNode p) {
pushMO(MO_AL(P(p), DW_S, DW));
}
void code34(OPT_BURS_TreeNode p) {
pushMO(MO_L(P(p), QW));
}
void code35(OPT_BURS_TreeNode p) {
pushMO(MO_AL(P(p), QW_S, QW));
}
void code38(OPT_BURS_TreeNode p) {
pushAddress(null, Binary.getVal1(P(p)).asRegister(), LEA_SHIFT(Binary.getVal2(P(p))), Offset.zero());
}
void code39(OPT_BURS_TreeNode p) {
pushAddress(R(Binary.getVal1(P(p))), null, B_S, Offset.fromIntSignExtend(VR(p)));
}
void code40(OPT_BURS_TreeNode p) {
pushAddress(R(Move.getVal(P(p))), null, B_S, Offset.zero());
}
void code41(OPT_BURS_TreeNode p) {
pushAddress(R(Binary.getVal1(P(p))), R(Binary.getVal2(P(p))), B_S, Offset.zero());
}
void code42(OPT_BURS_TreeNode p) {
augmentAddress(Binary.getVal2(P(p)));
}
void code43(OPT_BURS_TreeNode p) {
augmentAddress(Binary.getVal2(P(p)));
}
void code44(OPT_BURS_TreeNode p) {
augmentAddress(Binary.getVal1(P(p)));
}
void code45(OPT_BURS_TreeNode p) {
augmentAddress(Binary.getVal2(P(p)));
}
void code46(OPT_BURS_TreeNode p) {
augmentAddress(Binary.getVal2(P(p)));
}
void code47(OPT_BURS_TreeNode p) {
combineAddresses();
}
void code48(OPT_BURS_TreeNode p) {
combineAddresses();
}
void code49(OPT_BURS_TreeNode p) {
augmentAddress(Binary.getVal2(P(p)));
EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
}
void code50(OPT_BURS_TreeNode p) {
augmentAddress(Binary.getVal1(P(p)));
EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
}
void code51(OPT_BURS_TreeNode p) {
combineAddresses();
EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
}
void code52(OPT_BURS_TreeNode p) {
combineAddresses();
EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
}
void code53(OPT_BURS_TreeNode p) {
augmentAddress(Binary.getVal2(P(p)));
EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
}
void code54(OPT_BURS_TreeNode p) {
EMIT_Lea(P(p), Move.getResult(P(p)), consumeAddress(DW, null, null));
}
void code55(OPT_BURS_TreeNode p) {
EMIT(InlineGuard.mutate(P(p), IG_PATCH_POINT, null, null, null, InlineGuard.getTarget(P(p)), InlineGuard.getBranchProfile(P(p))));
}
void code56(OPT_BURS_TreeNode p) {
EMIT(P(p));
}
void code57(OPT_BURS_TreeNode p) {
EMIT(P(p));
}
void code58(OPT_BURS_TreeNode p) {
EMIT(P(p));
}
void code59(OPT_BURS_TreeNode p) {
EMIT(P(p));
}
void code60(OPT_BURS_TreeNode p) {
EMIT(P(p));
}
void code61(OPT_BURS_TreeNode p) {
LOWTABLESWITCH(P(p));
}
void code62(OPT_BURS_TreeNode p) {
RESOLVE(P(p));
}
void code64(OPT_BURS_TreeNode p) {
EMIT(P(p));
}
void code65(OPT_BURS_TreeNode p) {
EMIT(P(p));
}
void code66(OPT_BURS_TreeNode p) {
EMIT(P(p));
}
void code67(OPT_BURS_TreeNode p) {
PROLOGUE(P(p));
}
void code68(OPT_BURS_TreeNode p) {
GET_EXCEPTION_OBJECT(P(p));
}
void code69(OPT_BURS_TreeNode p) {
SET_EXCEPTION_OBJECT(P(p));
}
void code70(OPT_BURS_TreeNode p) {
EMIT(MIR_Trap.mutate(P(p), IA32_INT, Trap.getGuardResult(P(p)), Trap.getTCode(P(p))));
}
void code71(OPT_BURS_TreeNode p) {
TRAP_IF_IMM(P(p), false);
}
void code72(OPT_BURS_TreeNode p) {
TRAP_IF_IMM(P(p), true);
}
void code73(OPT_BURS_TreeNode p) {
EMIT(MIR_TrapIf.mutate(P(p), IA32_TRAPIF,
TrapIf.getGuardResult(P(p)),
TrapIf.getVal1(P(p)),
TrapIf.getVal2(P(p)),
COND(TrapIf.getCond(P(p))),
TrapIf.getTCode(P(p))));
}
void code74(OPT_BURS_TreeNode p) {
EMIT(MIR_TrapIf.mutate(P(p), IA32_TRAPIF,
TrapIf.getGuardResult(P(p)),
consumeMO(),
TrapIf.getVal2(P(p)),
COND(TrapIf.getCond(P(p))),
TrapIf.getTCode(P(p))));
}
void code75(OPT_BURS_TreeNode p) {
EMIT(MIR_TrapIf.mutate(P(p), IA32_TRAPIF,
TrapIf.getGuardResult(P(p)),
TrapIf.getVal1(P(p)),
consumeMO(),
COND(TrapIf.getCond(P(p))),
TrapIf.getTCode(P(p))));
}
void code76(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_XOR, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)), IC(1));
}
void code77(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_XOR, P(p), MO_S(P(p), B), MO_S(P(p), B), IC(1));
}
void code78(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_XOR, P(p), MO_AS(P(p), B_S, B), MO_AS(P(p), B_S, B), IC(1));
}
void code79(OPT_BURS_TreeNode p) {
BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)),
BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p)),
BooleanCmp.getCond(P(p)));
}
void code80(OPT_BURS_TreeNode p) {
pushCOND(BooleanCmp.getCond(P(p)));
EMIT(MIR_Compare.mutate(P(p), IA32_CMP, BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p))));
}
void code81(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p),MIR_Test.create(IA32_TEST, BooleanCmp.getVal1(P(p)), BooleanCmp.getVal1(P(p)).copy())));
BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getCond(P(p)));
}
void code82(OPT_BURS_TreeNode p) {
pushCOND(BooleanCmp.getCond(P(p)));
EMIT(CPOS(P(p),MIR_Test.create(IA32_TEST, BooleanCmp.getVal1(P(p)), BooleanCmp.getVal1(P(p)).copy())));
}
void code83(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_SHR, P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getVal1(P(p)), IC(31));
}
void code84(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_SHR, P(p), BooleanCmp.getResult(P(p)), consumeMO(), IC(31));
}
void code85(OPT_BURS_TreeNode p) {
OPT_RegisterOperand result = BooleanCmp.getResult(P(p));
EMIT_Commutative(IA32_SHR, P(p), result, BooleanCmp.getVal1(P(p)), IC(31));
EMIT(CPOS(P(p),MIR_BinaryAcc.create(IA32_XOR, result.copyRO(), IC(1))));
}
void code86(OPT_BURS_TreeNode p) {
OPT_RegisterOperand result = BooleanCmp.getResult(P(p));
EMIT_Commutative(IA32_SHR, P(p), result, consumeMO(), IC(31));
EMIT(CPOS(P(p),MIR_BinaryAcc.create(IA32_XOR, result.copyRO(), IC(1))));
}
void code87(OPT_BURS_TreeNode p) {
BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getCond(P(p)));
}
void code88(OPT_BURS_TreeNode p) {
pushCOND(BooleanCmp.getCond(P(p)));
}
void code89(OPT_BURS_TreeNode p) {
BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getCond(P(p)));
}
void code90(OPT_BURS_TreeNode p) {
pushCOND(BooleanCmp.getCond(P(p)));
}
void code91(OPT_BURS_TreeNode p) {
BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), BIT_TEST(VR(p),BooleanCmp.getCond(P(p))));
}
void code92(OPT_BURS_TreeNode p) {
pushCOND(BIT_TEST(VR(p),BooleanCmp.getCond(P(p))));
}
void code93(OPT_BURS_TreeNode p) {
BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), consumeCOND());
}
void code95(OPT_BURS_TreeNode p) {
BOOLEAN_CMP_INT(P(p), BooleanCmp.getResult(P(p)), consumeCOND().flipCode());
}
void code96(OPT_BURS_TreeNode p) {
pushCOND(consumeCOND().flipCode()); // invert already pushed condition
}
void code97(OPT_BURS_TreeNode p) {
BOOLEAN_CMP_INT(PL(p), BooleanCmp.getResult(P(p)),
consumeMO(), BooleanCmp.getVal2(P(p)),
BooleanCmp.getCond(P(p)));
}
void code98(OPT_BURS_TreeNode p) {
pushCOND(BooleanCmp.getCond(P(p)));
EMIT(MIR_Compare.mutate(PL(p), IA32_CMP, consumeMO(), BooleanCmp.getVal2(P(p))));
}
void code99(OPT_BURS_TreeNode p) {
BOOLEAN_CMP_INT(PR(p), BooleanCmp.getResult(P(p)),
BooleanCmp.getVal1(P(p)), consumeMO(),
BooleanCmp.getCond(P(p)));
}
void code100(OPT_BURS_TreeNode p) {
pushCOND(BooleanCmp.getCond(P(p)));
EMIT(MIR_Compare.mutate(PR(p), IA32_CMP, BooleanCmp.getVal1(P(p)), consumeMO()));
}
void code101(OPT_BURS_TreeNode p) {
EMIT(MIR_Set.mutate(P(p), IA32_SET__B, MO_S(P(p),B), COND(consumeCOND())));
}
void code102(OPT_BURS_TreeNode p) {
EMIT(MIR_Set.mutate(P(p), IA32_SET__B, MO_AS(P(p),B_S,B), COND(consumeCOND())));
}
void code103(OPT_BURS_TreeNode p) {
BOOLEAN_CMP_LONG(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p)), BooleanCmp.getCond(P(p)));
}
void code104(OPT_BURS_TreeNode p) {
pushCOND(BooleanCmp.getCond(P(p)));
LONG_CMP(P(p), BooleanCmp.getResult(P(p)), BooleanCmp.getVal1(P(p)), BooleanCmp.getVal2(P(p)));
EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, BooleanCmp.getResult(P(p)), IC(0))));
}
void code105(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, CondMove.getVal1(P(p)), CondMove.getVal2(P(p)))));
CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code106(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Test.create(IA32_TEST, CondMove.getVal1(P(p)), CondMove.getVal1(P(p)).copy())));
CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code107(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_SAR, P(p), CondMove.getResult(P(p)), CondMove.getVal1(P(p)), IC(31));
}
void code108(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_SAR, P(p), CondMove.getResult(P(p)), consumeMO(), IC(31));
}
void code109(OPT_BURS_TreeNode p) {
OPT_RegisterOperand result = CondMove.getResult(P(p));
EMIT_Commutative(IA32_SAR, P(p), result, CondMove.getVal1(P(p)), IC(31));
EMIT(CPOS(P(p),MIR_UnaryAcc.create(IA32_NOT, result.copyRO())));
}
void code110(OPT_BURS_TreeNode p) {
OPT_RegisterOperand result = CondMove.getResult(P(p));
EMIT_Commutative(IA32_SAR, P(p), result, consumeMO(), IC(31));
EMIT(CPOS(P(p),MIR_UnaryAcc.create(IA32_NOT, result.copyRO())));
}
void code111(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p)))));
CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code112(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p)))));
CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code113(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p)))));
CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code114(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p)))));
CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code115(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), CondMove.getVal2(P(p)))));
CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code116(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, CondMove.getVal1(P(p)), consumeMO())));
CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code117(OPT_BURS_TreeNode p) {
CMOV_MOV(P(p), CondMove.getResult(P(p)), consumeCOND(),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code118(OPT_BURS_TreeNode p) {
CMOV_MOV(P(p), CondMove.getResult(P(p)), consumeCOND().flipCode(),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code119(OPT_BURS_TreeNode p) {
CMOV_MOV(P(p), CondMove.getResult(P(p)), BIT_TEST(VRL(p), CondMove.getCond(P(p))),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code120(OPT_BURS_TreeNode p) {
CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code121(OPT_BURS_TreeNode p) {
CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)),
CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p)));
}
void code122(OPT_BURS_TreeNode p) {
LCMP_CMOV(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)));
}
void code123(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code124(OPT_BURS_TreeNode p) {
if (Binary.getVal2(P(p)).isIntConstant()) {
pushAddress(R(Binary.getVal1(P(p))), null, B_S, Offset.fromIntSignExtend(VR(p)));
} else {
pushAddress(R(Binary.getVal1(P(p))), R(Binary.getVal2(P(p))), B_S, Offset.zero());
}
EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
}
void code125(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
}
void code126(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO());
}
void code127(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_ADD, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p)));
}
void code128(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_ADD, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p)));
}
void code129(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_ADD, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)));
}
void code130(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_ADD, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p)));
}
void code131(OPT_BURS_TreeNode p) {
EMIT_NonCommutative(IA32_SUB, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code132(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, Binary.getResult(P(p)))));
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, Binary.getResult(P(p)), Binary.getVal1(P(p))));
}
void code133(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, Binary.getResult(P(p)))));
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, Binary.getResult(P(p)), consumeMO()));
}
void code134(OPT_BURS_TreeNode p) {
EMIT_NonCommutative(IA32_SUB, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
}
void code135(OPT_BURS_TreeNode p) {
EMIT_NonCommutative(IA32_SUB, P(p), Binary.getResult(P(p)), consumeMO(), Binary.getVal2(P(p)));
}
void code136(OPT_BURS_TreeNode p) {
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SUB, MO_S(P(p), DW), Binary.getVal2(PL(p))));
}
void code137(OPT_BURS_TreeNode p) {
OPT_MemoryOperand result = MO_S(P(p), DW);
EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, result)));
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, result.copy(), Binary.getVal1(PL(p))));
}
void code138(OPT_BURS_TreeNode p) {
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SUB, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p))));
}
void code139(OPT_BURS_TreeNode p) {
OPT_MemoryOperand result = MO_AS(P(p), DW_S, DW);
EMIT(CPOS(P(p), MIR_UnaryAcc.create(IA32_NEG, result)));
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_ADD, result.copy(), Binary.getVal1(PL(p))));
}
void code140(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_IMUL2, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code141(OPT_BURS_TreeNode p) {
INT_DIVIDES(P(p), GuardedBinary.getResult(P(p)), GuardedBinary.getVal1(P(p)),
GuardedBinary.getVal2(P(p)), true);
}
void code142(OPT_BURS_TreeNode p) {
INT_DIVIDES(P(p), GuardedBinary.getResult(P(p)), GuardedBinary.getVal1(P(p)),
GuardedBinary.getVal2(P(p)), false);
}
void code143(OPT_BURS_TreeNode p) {
EMIT_Unary(IA32_NEG, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
}
void code144(OPT_BURS_TreeNode p) {
EMIT_Unary(IA32_NEG, P(p), MO_S(P(p), DW), MO_S(P(p), DW));
}
void code145(OPT_BURS_TreeNode p) {
EMIT_Unary(IA32_NEG, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW));
}
void code146(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PR(p)))));
EMIT_NonCommutative(IA32_SHL, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int));
}
void code147(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal2(P(p)))));
EMIT_NonCommutative(IA32_SHL, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int));
}
void code148(OPT_BURS_TreeNode p) {
if (VM.VerifyAssertions) VM._assert((VR(p) & 0x7FFFFFFF) <= 31); if(Binary.getVal2(P(p)).asIntConstant().value == 1) {
EMIT_NonCommutative(IA32_ADD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(P(p)).copy());
} else {
EMIT_NonCommutative(IA32_SHL, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
}
void code149(OPT_BURS_TreeNode p) {
pushAddress(null, Binary.getVal1(P(p)).asRegister(), LEA_SHIFT(Binary.getVal2(P(p))), Offset.zero());
EMIT_Lea(P(p), Binary.getResult(P(p)), consumeAddress(DW, null, null));
}
void code150(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)), IC(0xffffffff << VR(p)));
}
void code151(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PLR(p)))));
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_S(P(p), DW), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int)));
}
void code152(OPT_BURS_TreeNode p) {
if (VM.VerifyAssertions) VM._assert((VLR(p) & 0x7FFFFFFF) <= 31);
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_S(P(p), DW), Binary.getVal2(PL(p))));
}
void code153(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PLR(p))));
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_AS(P(p), DW_S, DW), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int)));
}
void code154(OPT_BURS_TreeNode p) {
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHL, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p))));
}
void code155(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PR(p)))));
EMIT_NonCommutative(IA32_SAR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int));
}
void code156(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal2(P(p)))));
EMIT_NonCommutative(IA32_SAR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int));
}
void code157(OPT_BURS_TreeNode p) {
if (VM.VerifyAssertions) VM._assert((VR(p) & 0x7FFFFFFF) <= 31);
EMIT_NonCommutative(IA32_SAR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code158(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PLR(p)))));
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_S(P(p), DW), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int)));
}
void code159(OPT_BURS_TreeNode p) {
if (VM.VerifyAssertions) VM._assert((VLR(p) & 0x7FFFFFFF) <= 31);
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_S(P(p), DW), Binary.getVal2(PL(p))));
}
void code160(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PLR(p))));
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_AS(P(p), DW_S, DW), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int)));
}
void code161(OPT_BURS_TreeNode p) {
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SAR, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p))));
}
void code162(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PR(p)))));
EMIT_NonCommutative(IA32_SHR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int));
}
void code163(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal2(P(p)))));
EMIT_NonCommutative(IA32_SHR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int));
}
void code164(OPT_BURS_TreeNode p) {
if (VM.VerifyAssertions) VM._assert((VR(p) & 0x7FFFFFFF) <= 31);
EMIT_NonCommutative(IA32_SHR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code165(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PLR(p)))));
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_S(P(p), DW), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int)));
}
void code166(OPT_BURS_TreeNode p) {
if (VM.VerifyAssertions) VM._assert((VLR(p) & 0x7FFFFFFF) <= 31);
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_S(P(p), DW), Binary.getVal2(PL(p))));
}
void code167(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PLR(p))));
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_AS(P(p), DW_S, DW), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int)));
}
void code168(OPT_BURS_TreeNode p) {
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_SHR, MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p))));
}
void code169(OPT_BURS_TreeNode p) {
EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(VLR(p)&0x1f));
}
void code170(OPT_BURS_TreeNode p) {
EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(VRR(p)&0x1f));
}
void code171(OPT_BURS_TreeNode p) {
EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(1));
}
void code172(OPT_BURS_TreeNode p) {
EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), IC(1));
}
void code173(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PLR(p)))));
EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int));
}
void code174(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PRR(p)))));
EMIT_NonCommutative(IA32_ROL, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int));
}
void code175(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PRR(p)))));
EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int));
}
void code176(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(getECX(), VM_TypeReference.Int), Binary.getVal1(PLR(p)))));
EMIT_NonCommutative(IA32_ROR, P(p), Binary.getResult(P(p)), Binary.getVal1(PL(p)).copy(), new OPT_RegisterOperand(getECX(), VM_TypeReference.Int));
}
void code177(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code178(OPT_BURS_TreeNode p) {
EMIT(MIR_Test.mutate(P(p), IA32_TEST, Binary.getVal1(P(p)), Binary.getVal2(P(p))));
}
void code179(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO());
}
void code180(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_AND, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO());
}
void code181(OPT_BURS_TreeNode p) {
EMIT(MIR_Test.mutate(P(p), IA32_TEST, consumeMO(), Binary.getVal1(P(p))));
}
void code182(OPT_BURS_TreeNode p) {
EMIT(MIR_Test.mutate(P(p), IA32_TEST, consumeMO(), Binary.getVal2(P(p))));
}
void code183(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_AND, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p)) );
}
void code184(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_AND, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p)) );
}
void code185(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_AND, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)) );
}
void code186(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_AND, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p)) );
}
void code187(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_OR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code188(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_OR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO() );
}
void code189(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_OR, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO() );
}
void code190(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_OR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p)) );
}
void code191(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_OR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p)) );
}
void code192(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_OR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)) );
}
void code193(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_OR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p)) );
}
void code194(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_XOR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code195(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_XOR, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), consumeMO() );
}
void code196(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_XOR, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO() );
}
void code197(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_XOR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal2(PL(p)) );
}
void code198(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_XOR, P(p), MO_S(P(p), DW), MO_S(P(p), DW), Binary.getVal1(PL(p)) );
}
void code199(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_XOR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal2(PL(p)) );
}
void code200(OPT_BURS_TreeNode p) {
EMIT_Commutative(IA32_XOR, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW), Binary.getVal1(PL(p)) );
}
void code201(OPT_BURS_TreeNode p) {
EMIT_Unary(IA32_NOT, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
}
void code202(OPT_BURS_TreeNode p) {
EMIT_Unary(IA32_NOT, P(p), MO_S(P(p), DW), MO_S(P(p), DW));
}
void code203(OPT_BURS_TreeNode p) {
EMIT_Unary(IA32_NOT, P(p), MO_AS(P(p), DW_S, DW), MO_AS(P(p), DW_S, DW));
}
void code204(OPT_BURS_TreeNode p) {
LONG_ADD(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code205(OPT_BURS_TreeNode p) {
LONG_SUB(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code206(OPT_BURS_TreeNode p) {
LONG_MUL(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code207(OPT_BURS_TreeNode p) {
LONG_NEG(P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
}
void code208(OPT_BURS_TreeNode p) {
LONG_SHL(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)), false);
}
void code209(OPT_BURS_TreeNode p) {
if (VM.VerifyAssertions) VM._assert((VRR(p) & 0x7FFFFFFF) <= 63);
LONG_SHL(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(PR(p)), true);
}
void code210(OPT_BURS_TreeNode p) {
LONG_SHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)), false);
}
void code211(OPT_BURS_TreeNode p) {
if (VM.VerifyAssertions) VM._assert((VRR(p) & 0x7FFFFFFF) <= 63);
LONG_SHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(PR(p)), true);
}
void code212(OPT_BURS_TreeNode p) {
LONG_USHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)), false);
}
void code213(OPT_BURS_TreeNode p) {
if (VM.VerifyAssertions) VM._assert((VRR(p) & 0x7FFFFFFF) <= 63);
LONG_USHR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal1(PR(p)), true);
}
void code214(OPT_BURS_TreeNode p) {
LONG_AND(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code215(OPT_BURS_TreeNode p) {
LONG_OR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code216(OPT_BURS_TreeNode p) {
LONG_XOR(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code217(OPT_BURS_TreeNode p) {
LONG_NOT(P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
}
void code218(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Unary.getResult(P(p)), Unary.getVal(P(p))));
}
void code219(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Unary.getResult(P(p)), consumeMO()));
}
void code220(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), B), Unary.getVal(PL(p))));
}
void code221(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), B_S, B), Unary.getVal(PL(p))));
}
void code222(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, Unary.getResult(P(p)), Unary.getVal(P(p)))));
EMIT(MIR_BinaryAcc.mutate(P(p), IA32_AND, Unary.getResult(P(p)).copyRO(), IC(0xFFFF)));
}
void code223(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Unary.getResult(P(p)), setSize(consumeMO(),2)));
}
void code224(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), Unary.getVal(PL(p))));
}
void code225(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), Unary.getVal(PL(p))));
}
void code226(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Unary.getResult(P(p)), Unary.getVal(P(p))));
}
void code227(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Unary.getResult(P(p)), consumeMO()));
}
void code228(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), Unary.getVal(PL(p))));
}
void code229(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), Unary.getVal(PL(p))));
}
void code230(OPT_BURS_TreeNode p) {
INT_2LONG(P(p), Unary.getResult(P(p)), Unary.getVal(P(p)), true);
}
void code231(OPT_BURS_TreeNode p) {
INT_2LONG(P(p), Unary.getResult(P(p)), consumeMO(), true);
}
void code232(OPT_BURS_TreeNode p) {
INT_2LONG(P(p), Binary.getResult(P(p)), Unary.getVal(PL(p)), false);
}
void code233(OPT_BURS_TreeNode p) {
INT_2LONG(P(p), Binary.getResult(P(p)), consumeMO(), false);
}
void code234(OPT_BURS_TreeNode p) {
OPT_Register hr = Binary.getResult(P(p)).getRegister();
OPT_Register lr = regpool.getSecondReg(hr);
EMIT(MIR_Move.mutate(P(p), IA32_MOV, new OPT_RegisterOperand(hr, VM_TypeReference.Int), Unary.getVal(PL(p)).copy()));
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(lr, VM_TypeReference.Int), IC(0))));
}
void code235(OPT_BURS_TreeNode p) {
OPT_Register hr = Binary.getResult(P(p)).getRegister();
OPT_Register lr = regpool.getSecondReg(hr);
EMIT(MIR_Move.mutate(P(p), IA32_MOV, new OPT_RegisterOperand(hr, VM_TypeReference.Int), setSize(consumeMO(),4)));
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(lr, VM_TypeReference.Int), IC(0))));
}
void code236(OPT_BURS_TreeNode p) {
OPT_Register lh = regpool.getSecondReg(R(Unary.getVal(P(p))).getRegister());
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), new OPT_RegisterOperand(lh, VM_TypeReference.Int)));
}
void code237(OPT_BURS_TreeNode p) {
OPT_Register lh = regpool.getSecondReg(R(Unary.getVal(PL(p))).getRegister());
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), new OPT_RegisterOperand(lh, VM_TypeReference.Int)));
}
void code238(OPT_BURS_TreeNode p) {
OPT_Register lh = regpool.getSecondReg(R(Unary.getVal(PL(p))).getRegister());
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), DW_S, DW), new OPT_RegisterOperand(lh, VM_TypeReference.Int)));
}
void code239(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), consumeMO()));
}
void code240(OPT_BURS_TreeNode p) {
OPT_Register uh = Binary.getVal1(PL(p)).asRegister().getRegister();
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), new OPT_RegisterOperand(uh, VM_TypeReference.Int)));
}
void code241(OPT_BURS_TreeNode p) {
OPT_Register uh = Binary.getVal1(PL(p)).asRegister().getRegister();
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), new OPT_RegisterOperand(uh, VM_TypeReference.Int)));
}
void code242(OPT_BURS_TreeNode p) {
OPT_MemoryOperand mo = consumeMO();
mo.disp = mo.disp.plus(4);
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), mo));
}
void code243(OPT_BURS_TreeNode p) {
OPT_MemoryOperand mo = consumeMO();
mo.disp = mo.disp.plus(4);
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), mo));
}
void code244(OPT_BURS_TreeNode p) {
OPT_MemoryOperand mo = consumeMO();
mo.disp = mo.disp.plus(4);
pushMO(mo);
}
void code245(OPT_BURS_TreeNode p) {
OPT_MemoryOperand mo = consumeMO();
mo.disp = mo.disp.plus(4);
pushMO(mo);
}
void code246(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Move.getResult(P(p)), Move.getVal(P(p))));
}
void code247(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Move.getResult(P(p)), Move.getVal(P(p))));
}
void code249(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Move.getResult(P(p)), Move.getVal(P(p))));
}
void code262(OPT_BURS_TreeNode p) {
OPT_Register res1 = Move.getResult(P(p)).getRegister();
OPT_Register res2 = regpool.getSecondReg(res1);
OPT_Register val1 = Move.getVal(P(p)).asRegister().getRegister();
OPT_Register val2 = regpool.getSecondReg(val1);
EMIT(MIR_Move.mutate(P(p), IA32_MOV, new OPT_RegisterOperand(res1, VM_TypeReference.Int),
new OPT_RegisterOperand(val1, VM_TypeReference.Int)));
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(res2, VM_TypeReference.Int),
new OPT_RegisterOperand(val2, VM_TypeReference.Int))));
}
void code263(OPT_BURS_TreeNode p) {
OPT_Register res1 = Move.getResult(P(p)).getRegister();
OPT_Register res2 = regpool.getSecondReg(res1);
OPT_LongConstantOperand val = LC(Move.getVal(P(p)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, new OPT_RegisterOperand(res1, VM_TypeReference.Int), IC(val.upper32())));
EMIT(CPOS(P(p),MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(res2, VM_TypeReference.Int), IC(val.lower32()))));
}
void code264(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Nullary.getResult(P(p)), new OPT_RegisterOperand(getESI(), VM_TypeReference.Int)));
}
void code265(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)),
MO_BD(Unary.getVal(P(p)), VM_ArchEntrypoints.jtocField.getOffset(), DW, null, null)));
}
void code266(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Load.getResult(P(p)), MO_L(P(p), B)));
}
void code267(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, ALoad.getResult(P(p)), MO_AL(P(p), B_S, B)));
}
void code268(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, Load.getResult(P(p)), MO_L(P(p), B)));
}
void code269(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, ALoad.getResult(P(p)), MO_AL(P(p), B_S, B)));
}
void code270(OPT_BURS_TreeNode p) {
pushMO(setSize(consumeMO(),1));
}
void code271(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, Binary.getResult(P(p)), setSize(consumeMO(),1)));
}
void code272(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__B, Unary.getResult(P(p)), setSize(consumeMO(),1)));
}
void code273(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__B, Binary.getResult(P(p)), setSize(consumeMO(),1)));
}
void code274(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Load.getResult(P(p)), MO_L(P(p), W)));
}
void code275(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, ALoad.getResult(P(p)), MO_AL(P(p), W_S, W)));
}
void code276(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Load.getResult(P(p)), MO_L(P(p), W)));
}
void code277(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, ALoad.getResult(P(p)), MO_AL(P(p), W_S, W)));
}
void code278(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Binary.getResult(P(p)), setSize(consumeMO(),2)));
}
void code279(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Unary.getResult(P(p)), setSize(consumeMO(),2)));
}
void code280(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVSX__W, Unary.getResult(P(p)), setSize(consumeMO(),2)));
}
void code281(OPT_BURS_TreeNode p) {
EMIT(MIR_Unary.mutate(P(p), IA32_MOVZX__W, Binary.getResult(P(p)), setSize(consumeMO(),2)));
}
void code282(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)), MO_L(P(p), DW)));
}
void code283(OPT_BURS_TreeNode p) {
augmentAddress(Load.getAddress(P(p)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)),
consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p)))));
}
void code284(OPT_BURS_TreeNode p) {
augmentAddress(Load.getOffset(P(p)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)),
consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p)))));
}
void code285(OPT_BURS_TreeNode p) {
combineAddresses();
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)),
consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p)))));
}
void code286(OPT_BURS_TreeNode p) {
combineAddresses();
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)),
consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p)))));
}
void code287(OPT_BURS_TreeNode p) {
augmentAddress(Load.getOffset(P(p)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Load.getResult(P(p)),
consumeAddress(DW, Load.getLocation(P(p)), Load.getGuard(P(p)))));
}
void code288(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, ALoad.getResult(P(p)), MO_AL(P(p), DW_S, DW)));
}
void code289(OPT_BURS_TreeNode p) {
OPT_RegisterOperand hres = Load.getResult(P(p));
OPT_RegisterOperand lres = new OPT_RegisterOperand(regpool.getSecondReg(hres.getRegister()), VM_TypeReference.Int);
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, hres, MO_L(P(p), DW, DW).copy())));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, lres, MO_L(P(p), DW)));
}
void code290(OPT_BURS_TreeNode p) {
OPT_RegisterOperand hres = ALoad.getResult(P(p));
OPT_RegisterOperand lres = new OPT_RegisterOperand(regpool.getSecondReg(hres.getRegister()), VM_TypeReference.Int);
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, hres, MO_AL(P(p), QW_S, DW, DW).copy())));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, lres, MO_AL(P(p), QW_S, DW)));
}
void code291(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
MO(Prepare.getAddress(P(p)), Prepare.getOffset(P(p)), DW,
Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
}
void code292(OPT_BURS_TreeNode p) {
augmentAddress(Prepare.getAddress(P(p)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
}
void code293(OPT_BURS_TreeNode p) {
augmentAddress(Prepare.getOffset(P(p)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
}
void code294(OPT_BURS_TreeNode p) {
combineAddresses();
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
}
void code295(OPT_BURS_TreeNode p) {
combineAddresses();
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
}
void code296(OPT_BURS_TreeNode p) {
augmentAddress(Prepare.getOffset(P(p)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
}
void code297(OPT_BURS_TreeNode p) {
augmentAddress(Prepare.getAddress(P(p)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, Prepare.getResult(P(p)),
consumeAddress(DW, Prepare.getLocation(P(p)), Prepare.getGuard(P(p)))));
}
void code298(OPT_BURS_TreeNode p) {
OPT_RegisterOperand hres = Prepare.getResult(P(p));
OPT_MemoryOperand hmo = MO(Prepare.getAddress(P(p)), Prepare.getOffset(P(p)), DW,
Prepare.getLocation(P(p)), Prepare.getGuard(P(p)), DW);
OPT_RegisterOperand lres = new OPT_RegisterOperand(regpool.getSecondReg(hres.getRegister()), VM_TypeReference.Int);
OPT_MemoryOperand lmo = MO(Prepare.getAddress(P(p)), Prepare.getOffset(P(p)), DW,
Prepare.getLocation(P(p)), Prepare.getGuard(P(p)));
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, hres, hmo)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, lres, lmo));
}
void code299(OPT_BURS_TreeNode p) {
ATTEMPT(Attempt.getResult(P(p)),
MO(Attempt.getAddress(P(p)), Attempt.getOffset(P(p)), DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
}
void code300(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getAddress(P(p)));
ATTEMPT(Attempt.getResult(P(p)),
consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
}
void code301(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getOffset(P(p)));
ATTEMPT(Attempt.getResult(P(p)),
consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
}
void code302(OPT_BURS_TreeNode p) {
combineAddresses();
ATTEMPT(Attempt.getResult(P(p)),
consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
}
void code303(OPT_BURS_TreeNode p) {
combineAddresses();
ATTEMPT(Attempt.getResult(P(p)),
consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
}
void code304(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getOffset(P(p)));
ATTEMPT(Attempt.getResult(P(p)),
consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
}
void code305(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getAddress(P(p)));
ATTEMPT(Attempt.getResult(P(p)),
consumeAddress(DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
}
void code306(OPT_BURS_TreeNode p) {
ATTEMPT_IFCMP(MO(Attempt.getAddress(PL(p)), Attempt.getOffset(PL(p)), DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code307(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getAddress(PL(p)));
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code308(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getOffset(PL(p)));
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code309(OPT_BURS_TreeNode p) {
combineAddresses();
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code310(OPT_BURS_TreeNode p) {
combineAddresses();
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code311(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getOffset(PL(p)));
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code312(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getAddress(PL(p)));
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)).flipCode(), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code313(OPT_BURS_TreeNode p) {
ATTEMPT_IFCMP(MO(Attempt.getAddress(PL(p)), Attempt.getOffset(PL(p)), DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code314(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getAddress(PL(p)));
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code315(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getOffset(PL(p)));
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code316(OPT_BURS_TreeNode p) {
combineAddresses();
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code317(OPT_BURS_TreeNode p) {
combineAddresses();
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code318(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getOffset(PL(p)));
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code319(OPT_BURS_TreeNode p) {
augmentAddress(Attempt.getAddress(PL(p)));
ATTEMPT_IFCMP(consumeAddress(DW, Attempt.getLocation(PL(p)), Attempt.getGuard(PL(p))),
Attempt.getOldValue(PL(p)), Attempt.getNewValue(PL(p)),
IfCmp.getCond(P(p)), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p)));
}
void code320(OPT_BURS_TreeNode p) {
ATTEMPT_LONG(Attempt.getResult(P(p)),
MO(Attempt.getAddress(P(p)), Attempt.getOffset(P(p)), DW, Attempt.getLocation(P(p)), Attempt.getGuard(P(p))),
Attempt.getOldValue(P(p)), Attempt.getNewValue(P(p)));
}
void code321(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), B), Store.getValue(P(p))));
}
void code322(OPT_BURS_TreeNode p) {
OPT_Register tmp = regpool.getInteger();
EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), consumeMO())));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), B), new OPT_RegisterOperand(tmp, VM_TypeReference.Int)));
}
void code323(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), B_S, B), AStore.getValue(P(p))));
}
void code324(OPT_BURS_TreeNode p) {
OPT_Register tmp = regpool.getInteger();
EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), consumeMO())));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), B_S, B), new OPT_RegisterOperand(tmp, VM_TypeReference.Int)));
}
void code325(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), Store.getValue(P(p))));
}
void code326(OPT_BURS_TreeNode p) {
OPT_Register tmp = regpool.getInteger();
EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), consumeMO())));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), W), new OPT_RegisterOperand(tmp, VM_TypeReference.Int)));
}
void code327(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), AStore.getValue(P(p))));
}
void code328(OPT_BURS_TreeNode p) {
OPT_Register tmp = regpool.getInteger();
EMIT(CPOS(PL(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), consumeMO())));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), W_S, W), new OPT_RegisterOperand(tmp, VM_TypeReference.Int)));
}
void code329(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), Store.getValue(P(p))));
}
void code330(OPT_BURS_TreeNode p) {
augmentAddress(Store.getAddress(P(p)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV,
consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))),
Store.getValue(P(p))));
}
void code331(OPT_BURS_TreeNode p) {
augmentAddress(Store.getOffset(P(p)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV,
consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))),
Store.getValue(P(p))));
}
void code332(OPT_BURS_TreeNode p) {
combineAddresses();
EMIT(MIR_Move.mutate(P(p), IA32_MOV,
consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))),
Store.getValue(P(p))));
}
void code333(OPT_BURS_TreeNode p) {
combineAddresses();
EMIT(MIR_Move.mutate(P(p), IA32_MOV,
consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))),
Store.getValue(P(p))));
}
void code334(OPT_BURS_TreeNode p) {
augmentAddress(Store.getOffset(P(p)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV,
consumeAddress(DW, Store.getLocation(P(p)), Store.getGuard(P(p))),
Store.getValue(P(p))));
}
void code335(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), DW_S, DW), AStore.getValue(P(p))));
}
void code336(OPT_BURS_TreeNode p) {
OPT_RegisterOperand hval = (OPT_RegisterOperand)Store.getValue(P(p));
OPT_RegisterOperand lval = new OPT_RegisterOperand(regpool.getSecondReg(hval.getRegister()), VM_TypeReference.Int);
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_S(P(p), DW, DW).copy(), hval)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), lval));
}
void code337(OPT_BURS_TreeNode p) {
OPT_LongConstantOperand val = LC(Store.getValue(P(p)));
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_S(P(p), DW, DW).copy(), IC(val.upper32()))));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_S(P(p), DW), IC(val.lower32())));
}
void code338(OPT_BURS_TreeNode p) {
OPT_RegisterOperand hval = (OPT_RegisterOperand)AStore.getValue(P(p));
OPT_RegisterOperand lval = new OPT_RegisterOperand(regpool.getSecondReg(hval.getRegister()), VM_TypeReference.Int);
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_AS(P(p), QW_S, DW, DW).copy(), hval)));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), QW_S, DW), lval));
}
void code339(OPT_BURS_TreeNode p) {
OPT_LongConstantOperand val = LC(AStore.getValue(P(p)));
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, MO_AS(P(p), QW_S, DW, DW).copy(), IC(val.upper32()))));
EMIT(MIR_Move.mutate(P(p), IA32_MOV, MO_AS(P(p), QW_S, DW), IC(val.lower32())));
}
void code340(OPT_BURS_TreeNode p) {
IFCMP(P(p), IfCmp.getGuardResult(P(p)), IfCmp.getVal1(P(p)), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p)));
}
void code341(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new OPT_TrueGuardOperand())));
EMIT(CPOS(P(p), MIR_Test.create(IA32_TEST, IfCmp.getVal1(P(p)), IfCmp.getVal1(P(p)).copy())));
EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(IfCmp.getCond(P(p))), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))));
}
void code342(OPT_BURS_TreeNode p) {
IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p)));
}
void code343(OPT_BURS_TreeNode p) {
IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p)));
}
void code344(OPT_BURS_TreeNode p) {
IFCMP(P(p), IfCmp.getGuardResult(P(p)), IfCmp.getVal1(P(p)), consumeMO(), IfCmp.getCond(P(p)));
}
void code345(OPT_BURS_TreeNode p) {
IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p)));
}
void code346(OPT_BURS_TreeNode p) {
IFCMP(P(p), IfCmp.getGuardResult(P(p)), consumeMO(), IfCmp.getVal2(P(p)), IfCmp.getCond(P(p)));
}
void code347(OPT_BURS_TreeNode p) {
IFCMP(P(p), IfCmp.getGuardResult(P(p)), IfCmp.getVal1(P(p)), consumeMO(), IfCmp.getCond(P(p)));
}
void code348(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new OPT_TrueGuardOperand())));
EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(consumeCOND()), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))));
}
void code349(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new OPT_TrueGuardOperand())));
EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(consumeCOND().flipCode()), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))));
}
void code350(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new OPT_TrueGuardOperand())));
EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(IfCmp.getCond(P(p))), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))));
}
void code351(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new OPT_TrueGuardOperand())));
EMIT(MIR_CondBranch.mutate(P(p), IA32_JCC, COND(IfCmp.getCond(P(p))), IfCmp.getTarget(P(p)), IfCmp.getBranchProfile(P(p))));
}
void code352(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp.getGuardResult(P(p)), new OPT_TrueGuardOperand())));
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))));
}
void code353(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp2.getGuardResult(P(p)), new OPT_TrueGuardOperand())));
EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, IfCmp2.getVal1(P(p)), IfCmp2.getVal2(P(p)))));
EMIT(MIR_CondBranch2.mutate(P(p), IA32_JCC2,
COND(IfCmp2.getCond1(P(p))), IfCmp2.getTarget1(P(p)),IfCmp2.getBranchProfile1(P(p)),
COND(IfCmp2.getCond2(P(p))), IfCmp2.getTarget2(P(p)), IfCmp2.getBranchProfile2(P(p))));
}
void code354(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp2.getGuardResult(P(p)), new OPT_TrueGuardOperand())));
EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, consumeMO(), IfCmp2.getVal2(P(p)))));
EMIT(MIR_CondBranch2.mutate(P(p), IA32_JCC2,
COND(IfCmp2.getCond1(P(p))), IfCmp2.getTarget1(P(p)),IfCmp2.getBranchProfile1(P(p)),
COND(IfCmp2.getCond2(P(p))), IfCmp2.getTarget2(P(p)), IfCmp2.getBranchProfile2(P(p))));
}
void code355(OPT_BURS_TreeNode p) {
EMIT(CPOS(P(p), Move.create(GUARD_MOVE, IfCmp2.getGuardResult(P(p)), new OPT_TrueGuardOperand())));
EMIT(CPOS(P(p), MIR_Compare.create(IA32_CMP, IfCmp2.getVal1(P(p)), consumeMO())));
EMIT(MIR_CondBranch2.mutate(P(p), IA32_JCC2,
COND(IfCmp2.getCond1(P(p))), IfCmp2.getTarget1(P(p)),IfCmp2.getBranchProfile1(P(p)),
COND(IfCmp2.getCond2(P(p))), IfCmp2.getTarget2(P(p)), IfCmp2.getBranchProfile2(P(p))));
}
void code356(OPT_BURS_TreeNode p) {
EMIT(P(p)); // Leave for OPT_ComplexLIR2MIRExpansion
}
void code357(OPT_BURS_TreeNode p) {
LONG_CMP(P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code358(OPT_BURS_TreeNode p) {
EMIT(MIR_Branch.mutate(P(p), IA32_JMP, Goto.getTarget(P(p))));
}
void code359(OPT_BURS_TreeNode p) {
EMIT(MIR_CacheOp.mutate(P(p), IA32_PREFETCHNTA, R(CacheOp.getRef(P(p)))));
}
void code360(OPT_BURS_TreeNode p) {
EMIT(MIR_Empty.mutate(P(p), IA32_PAUSE));
}
void code361(OPT_BURS_TreeNode p) {
EMIT(MIR_Return.mutate(P(p), IA32_RET, null, null, null));
}
void code362(OPT_BURS_TreeNode p) {
EMIT(MIR_Return.mutate(P(p), IA32_RET, null, Return.getVal(P(p)), null));
}
void code363(OPT_BURS_TreeNode p) {
OPT_RegisterOperand ret = R(Return.getVal(P(p)));
OPT_RegisterOperand ret2 = null;
if (ret.getType().isLongType()) {
ret.setType(VM_TypeReference.Int);
ret2 = new OPT_RegisterOperand(regpool.getSecondReg(ret.getRegister()), VM_TypeReference.Int);
}
EMIT(MIR_Return.mutate(P(p), IA32_RET, null, ret, ret2));
}
void code364(OPT_BURS_TreeNode p) {
OPT_LongConstantOperand val = LC(Return.getVal(P(p)));
EMIT(MIR_Return.mutate(P(p), IA32_RET, null, IC(val.upper32()), IC(val.lower32())));
}
void code365(OPT_BURS_TreeNode p) {
CALL(P(p), Call.getAddress(P(p)));
}
void code366(OPT_BURS_TreeNode p) {
CALL(P(p), Call.getAddress(P(p)));
}
void code367(OPT_BURS_TreeNode p) {
CALL(P(p), MO_L(PL(p), DW));
}
void code368(OPT_BURS_TreeNode p) {
SYSCALL(P(p), Call.getAddress(P(p)));
}
void code369(OPT_BURS_TreeNode p) {
SYSCALL(P(p), MO_L(PL(p), DW));
}
void code370(OPT_BURS_TreeNode p) {
GET_EXCEPTION_OBJECT(P(p));
}
void code371(OPT_BURS_TreeNode p) {
SET_EXCEPTION_OBJECT(P(p));
}
void code372(OPT_BURS_TreeNode p) {
GET_TIME_BASE(P(p), Nullary.getResult(P(p)));
}
void code373(OPT_BURS_TreeNode p) {
OSR(burs, P(p));
}
void code374(OPT_BURS_TreeNode p) {
EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), Binary.getVal1(PLR(p)).copy()));
}
void code375(OPT_BURS_TreeNode p) {
OPT_Register tmp = regpool.getInteger();
if (VM.VerifyAssertions) VM._assert((VLRR(p) & 0x7FFFFFFF) <= 31);
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), Binary.getVal1(PLR(p)))));
EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), IC(VLRR(p)))));
EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new OPT_RegisterOperand(tmp, VM_TypeReference.Int)));
}
void code376(OPT_BURS_TreeNode p) {
EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), IC(VLR(p))));
}
void code377(OPT_BURS_TreeNode p) {
EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), Binary.getVal1(PLR(p)).copy()));
}
void code378(OPT_BURS_TreeNode p) {
OPT_Register tmp = regpool.getInteger();
if (VM.VerifyAssertions) VM._assert((VLRR(p) & 0x7FFFFFFF) <= 31);
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), Binary.getVal1(PLR(p)))));
EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), IC(VLRR(p)))));
EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new OPT_RegisterOperand(tmp, VM_TypeReference.Int)));
}
void code379(OPT_BURS_TreeNode p) {
EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(PL(p)).copy(), IC(VLR(p))));
}
void code380(OPT_BURS_TreeNode p) {
EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal2(P(p)), Binary.getVal1(PLR(p)).copy()));
}
void code381(OPT_BURS_TreeNode p) {
OPT_Register tmp = regpool.getInteger();
if (VM.VerifyAssertions) VM._assert((VLRR(p) & 0x7FFFFFFF) <= 31);
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), Binary.getVal1(PLR(p)))));
EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), IC(VLRR(p)))));
EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new OPT_RegisterOperand(tmp, VM_TypeReference.Int)));
}
void code382(OPT_BURS_TreeNode p) {
EMIT(MIR_Test.mutate(P(p), IA32_BT, Binary.getVal1(P(p)), Binary.getVal1(PRR(p)).copy()));
}
void code383(OPT_BURS_TreeNode p) {
OPT_Register tmp = regpool.getInteger();
if (VM.VerifyAssertions) VM._assert((VRRR(p) & 0x7FFFFFFF) <= 31);
EMIT(CPOS(P(p), MIR_Move.create(IA32_MOV, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), Binary.getVal1(PRR(p)))));
EMIT(CPOS(P(p), MIR_BinaryAcc.create(IA32_AND, new OPT_RegisterOperand(tmp, VM_TypeReference.Int), IC(VRRR(p)))));
EMIT(MIR_Test.mutate(P(p), IA32_BT, consumeMO(), new OPT_RegisterOperand(tmp, VM_TypeReference.Int)));
}
void code384(OPT_BURS_TreeNode p) {
SSE2_COP(IA32_ADDSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code385(OPT_BURS_TreeNode p) {
SSE2_COP(IA32_ADDSS, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), Binary.getVal1(P(p)));
}
void code386(OPT_BURS_TreeNode p) {
SSE2_NCOP(IA32_SUBSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code387(OPT_BURS_TreeNode p) {
SSE2_COP(IA32_MULSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code388(OPT_BURS_TreeNode p) {
SSE2_COP(IA32_MULSS, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), Binary.getVal1(P(p)));
}
void code389(OPT_BURS_TreeNode p) {
SSE2_NCOP(IA32_DIVSS, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code390(OPT_BURS_TreeNode p) {
SSE2_NEG(IA32_XORPS, IA32_SUBSS, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
}
void code391(OPT_BURS_TreeNode p) {
SSE2_COP(IA32_ADDSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code392(OPT_BURS_TreeNode p) {
SSE2_COP(IA32_ADDSD, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), Binary.getVal1(P(p)));
}
void code393(OPT_BURS_TreeNode p) {
SSE2_NCOP(IA32_SUBSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code394(OPT_BURS_TreeNode p) {
SSE2_COP(IA32_MULSD, P(p), Binary.getResult(P(p)), Binary.getVal2(P(p)), Binary.getVal1(P(p)));
}
void code395(OPT_BURS_TreeNode p) {
SSE2_NCOP(IA32_DIVSD, P(p), Binary.getResult(P(p)), Binary.getVal1(P(p)), Binary.getVal2(P(p)));
}
void code396(OPT_BURS_TreeNode p) {
SSE2_NEG(IA32_XORPD, IA32_SUBSD, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
}
void code397(OPT_BURS_TreeNode p) {
SSE2_X87_REM(P(p));
}
void code398(OPT_BURS_TreeNode p) {
SSE2_X87_REM(P(p));
}
void code399(OPT_BURS_TreeNode p) {
SSE2_X87_FROMLONG(P(p));
}
void code400(OPT_BURS_TreeNode p) {
SSE2_X87_FROMLONG(P(p));
}
void code401(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, Move.getResult(P(p)), Move.getVal(P(p))));
}
void code402(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOVSD, Move.getResult(P(p)), Move.getVal(P(p))));
}
void code403(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOVSD, Load.getResult(P(p)), MO_L(P(p), QW)));
}
void code404(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOVSD, ALoad.getResult(P(p)), MO_AL(P(p), QW_S, QW)));
}
void code405(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, Load.getResult(P(p)), MO_L(P(p), DW)));
}
void code406(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, ALoad.getResult(P(p)), MO_AL(P(p), DW_S, DW)));
}
void code407(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOVSD, MO_S(P(p), QW), Store.getValue(P(p))));
}
void code408(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOVSD, MO_AS(P(p), QW_S, QW), AStore.getValue(P(p))));
}
void code409(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, MO_S(P(p), DW), Store.getValue(P(p))));
}
void code410(OPT_BURS_TreeNode p) {
EMIT(MIR_Move.mutate(P(p), IA32_MOVSS, MO_AS(P(p), DW_S, DW), AStore.getValue(P(p))));
}
void code411(OPT_BURS_TreeNode p) {
SSE2_CONV(IA32_CVTSI2SS, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
}
void code412(OPT_BURS_TreeNode p) {
SSE2_CONV(IA32_CVTSI2SD, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
}
void code413(OPT_BURS_TreeNode p) {
SSE2_CONV(IA32_CVTSS2SD, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
}
void code414(OPT_BURS_TreeNode p) {
SSE2_CONV(IA32_CVTSD2SS, P(p), Unary.getResult(P(p)), Unary.getVal(P(p)));
}
void code415(OPT_BURS_TreeNode p) {
EMIT(P(p)); /* leave for complex operators */
}
void code416(OPT_BURS_TreeNode p) {
EMIT(P(p)); /* leave for complex operators */
}
void code417(OPT_BURS_TreeNode p) {
EMIT(P(p)); /* leave for complex operators */
}
void code418(OPT_BURS_TreeNode p) {
EMIT(P(p)); /* leave for complex operators */
}
void code419(OPT_BURS_TreeNode p) {
SSE2_FPR2GPR_32(P(p));
}
void code420(OPT_BURS_TreeNode p) {
SSE2_FPR2GPR_64(P(p));
}
void code421(OPT_BURS_TreeNode p) {
SSE2_GPR2FPR_32(P(p));
}
void code422(OPT_BURS_TreeNode p) {
SSE2_GPR2FPR_64(P(p));
}
void code423(OPT_BURS_TreeNode p) {
SSE2_FPCONSTANT(P(p));
}
void code424(OPT_BURS_TreeNode p) {
EMIT(MIR_Empty.mutate(P(p), IA32_FNINIT));
}
void code425(OPT_BURS_TreeNode p) {
SSE2_IFCMP(IA32_UCOMISS, P(p), IfCmp.getClearVal1(P(p)), IfCmp.getClearVal2(P(p)));
}
void code426(OPT_BURS_TreeNode p) {
SSE2_IFCMP(IA32_UCOMISD, P(p), IfCmp.getClearVal1(P(p)), IfCmp.getClearVal2(P(p)));
}
public void code(OPT_BURS_TreeNode p, int n, int ruleno) {
switch(ruleno) {
case 16: code16(p); break;
case 17: code17(p); break;
case 18: code18(p); break;
case 19: code19(p); break;
case 22: code22(p); break;
case 23: code23(p); break;
case 24: code24(p); break;
case 25: code25(p); break;
case 28: code28(p); break;
case 29: code29(p); break;
case 34: code34(p); break;
case 35: code35(p); break;
case 38: code38(p); break;
case 39: code39(p); break;
case 40: code40(p); break;
case 41: code41(p); break;
case 42: code42(p); break;
case 43: code43(p); break;
case 44: code44(p); break;
case 45: code45(p); break;
case 46: code46(p); break;
case 47: code47(p); break;
case 48: code48(p); break;
case 49: code49(p); break;
case 50: code50(p); break;
case 51: code51(p); break;
case 52: code52(p); break;
case 53: code53(p); break;
case 54: code54(p); break;
case 55: code55(p); break;
case 56: code56(p); break;
case 57: code57(p); break;
case 58: code58(p); break;
case 59: code59(p); break;
case 60: code60(p); break;
case 61: code61(p); break;
case 62: code62(p); break;
case 64: code64(p); break;
case 65: code65(p); break;
case 66: code66(p); break;
case 67: code67(p); break;
case 68: code68(p); break;
case 69: code69(p); break;
case 70: code70(p); break;
case 71: code71(p); break;
case 72: code72(p); break;
case 73: code73(p); break;
case 74: code74(p); break;
case 75: code75(p); break;
case 76: code76(p); break;
case 77: code77(p); break;
case 78: code78(p); break;
case 79: code79(p); break;
case 80: code80(p); break;
case 81: code81(p); break;
case 82: code82(p); break;
case 83: code83(p); break;
case 84: code84(p); break;
case 85: code85(p); break;
case 86: code86(p); break;
case 87: code87(p); break;
case 88: code88(p); break;
case 89: code89(p); break;
case 90: code90(p); break;
case 91: code91(p); break;
case 92: code92(p); break;
case 93: code93(p); break;
case 95: code95(p); break;
case 96: code96(p); break;
case 97: code97(p); break;
case 98: code98(p); break;
case 99: code99(p); break;
case 100: code100(p); break;
case 101: code101(p); break;
case 102: code102(p); break;
case 103: code103(p); break;
case 104: code104(p); break;
case 105: code105(p); break;
case 106: code106(p); break;
case 107: code107(p); break;
case 108: code108(p); break;
case 109: code109(p); break;
case 110: code110(p); break;
case 111: code111(p); break;
case 112: code112(p); break;
case 113: code113(p); break;
case 114: code114(p); break;
case 115: code115(p); break;
case 116: code116(p); break;
case 117: code117(p); break;
case 118: code118(p); break;
case 119: code119(p); break;
case 120: code120(p); break;
case 121: code121(p); break;
case 122: code122(p); break;
case 123: code123(p); break;
case 124: code124(p); break;
case 125: code125(p); break;
case 126: code126(p); break;
case 127: code127(p); break;
case 128: code128(p); break;
case 129: code129(p); break;
case 130: code130(p); break;
case 131: code131(p); break;
case 132: code132(p); break;
case 133: code133(p); break;
case 134: code134(p); break;
case 135: code135(p); break;
case 136: code136(p); break;
case 137: code137(p); break;
case 138: code138(p); break;
case 139: code139(p); break;
case 140: code140(p); break;
case 141: code141(p); break;
case 142: code142(p); break;
case 143: code143(p); break;
case 144: code144(p); break;
case 145: code145(p); break;
case 146: code146(p); break;
case 147: code147(p); break;
case 148: code148(p); break;
case 149: code149(p); break;
case 150: code150(p); break;
case 151: code151(p); break;
case 152: code152(p); break;
case 153: code153(p); break;
case 154: code154(p); break;
case 155: code155(p); break;
case 156: code156(p); break;
case 157: code157(p); break;
case 158: code158(p); break;
case 159: code159(p); break;
case 160: code160(p); break;
case 161: code161(p); break;
case 162: code162(p); break;
case 163: code163(p); break;
case 164: code164(p); break;
case 165: code165(p); break;
case 166: code166(p); break;
case 167: code167(p); break;
case 168: code168(p); break;
case 169: code169(p); break;
case 170: code170(p); break;
case 171: code171(p); break;
case 172: code172(p); break;
case 173: code173(p); break;
case 174: code174(p); break;
case 175: code175(p); break;
case 176: code176(p); break;
case 177: code177(p); break;
case 178: code178(p); break;
case 179: code179(p); break;
case 180: code180(p); break;
case 181: code181(p); break;
case 182: code182(p); break;
case 183: code183(p); break;
case 184: code184(p); break;
case 185: code185(p); break;
case 186: code186(p); break;
case 187: code187(p); break;
case 188: code188(p); break;
case 189: code189(p); break;
case 190: code190(p); break;
case 191: code191(p); break;
case 192: code192(p); break;
case 193: code193(p); break;
case 194: code194(p); break;
case 195: code195(p); break;
case 196: code196(p); break;
case 197: code197(p); break;
case 198: code198(p); break;
case 199: code199(p); break;
case 200: code200(p); break;
case 201: code201(p); break;
case 202: code202(p); break;
case 203: code203(p); break;
case 204: code204(p); break;
case 205: code205(p); break;
case 206: code206(p); break;
case 207: code207(p); break;
case 208: code208(p); break;
case 209: code209(p); break;
case 210: code210(p); break;
case 211: code211(p); break;
case 212: code212(p); break;
case 213: code213(p); break;
case 214: code214(p); break;
case 215: code215(p); break;
case 216: code216(p); break;
case 217: code217(p); break;
case 218: code218(p); break;
case 219: code219(p); break;
case 220: code220(p); break;
case 221: code221(p); break;
case 222: code222(p); break;
case 223: code223(p); break;
case 224: code224(p); break;
case 225: code225(p); break;
case 226: code226(p); break;
case 227: code227(p); break;
case 228: code228(p); break;
case 229: code229(p); break;
case 230: code230(p); break;
case 231: code231(p); break;
case 232: code232(p); break;
case 233: code233(p); break;
case 234: code234(p); break;
case 235: code235(p); break;
case 236: code236(p); break;
case 237: code237(p); break;
case 238: code238(p); break;
case 239: code239(p); break;
case 240: code240(p); break;
case 241: code241(p); break;
case 242: code242(p); break;
case 243: code243(p); break;
case 244: code244(p); break;
case 245: code245(p); break;
case 246: code246(p); break;
case 247: code247(p); break;
case 249: code249(p); break;
case 262: code262(p); break;
case 263: code263(p); break;
case 264: code264(p); break;
case 265: code265(p); break;
case 266: code266(p); break;
case 267: code267(p); break;
case 268: code268(p); break;
case 269: code269(p); break;
case 270: code270(p); break;
case 271: code271(p); break;
case 272: code272(p); break;
case 273: code273(p); break;
case 274: code274(p); break;
case 275: code275(p); break;
case 276: code276(p); break;
case 277: code277(p); break;
case 278: code278(p); break;
case 279: code279(p); break;
case 280: code280(p); break;
case 281: code281(p); break;
case 282: code282(p); break;
case 283: code283(p); break;
case 284: code284(p); break;
case 285: code285(p); break;
case 286: code286(p); break;
case 287: code287(p); break;
case 288: code288(p); break;
case 289: code289(p); break;
case 290: code290(p); break;
case 291: code291(p); break;
case 292: code292(p); break;
case 293: code293(p); break;
case 294: code294(p); break;
case 295: code295(p); break;
case 296: code296(p); break;
case 297: code297(p); break;
case 298: code298(p); break;
case 299: code299(p); break;
case 300: code300(p); break;
case 301: code301(p); break;
case 302: code302(p); break;
case 303: code303(p); break;
case 304: code304(p); break;
case 305: code305(p); break;
case 306: code306(p); break;
case 307: code307(p); break;
case 308: code308(p); break;
case 309: code309(p); break;
case 310: code310(p); break;
case 311: code311(p); break;
case 312: code312(p); break;
case 313: code313(p); break;
case 314: code314(p); break;
case 315: code315(p); break;
case 316: code316(p); break;
case 317: code317(p); break;
case 318: code318(p); break;
case 319: code319(p); break;
case 320: code320(p); break;
case 321: code321(p); break;
case 322: code322(p); break;
case 323: code323(p); break;
case 324: code324(p); break;
case 325: code325(p); break;
case 326: code326(p); break;
case 327: code327(p); break;
case 328: code328(p); break;
case 329: code329(p); break;
case 330: code330(p); break;
case 331: code331(p); break;
case 332: code332(p); break;
case 333: code333(p); break;
case 334: code334(p); break;
case 335: code335(p); break;
case 336: code336(p); break;
case 337: code337(p); break;
case 338: code338(p); break;
case 339: code339(p); break;
case 340: code340(p); break;
case 341: code341(p); break;
case 342: code342(p); break;
case 343: code343(p); break;
case 344: code344(p); break;
case 345: code345(p); break;
case 346: code346(p); break;
case 347: code347(p); break;
case 348: code348(p); break;
case 349: code349(p); break;
case 350: code350(p); break;
case 351: code351(p); break;
case 352: code352(p); break;
case 353: code353(p); break;
case 354: code354(p); break;
case 355: code355(p); break;
case 356: code356(p); break;
case 357: code357(p); break;
case 358: code358(p); break;
case 359: code359(p); break;
case 360: code360(p); break;
case 361: code361(p); break;
case 362: code362(p); break;
case 363: code363(p); break;
case 364: code364(p); break;
case 365: code365(p); break;
case 366: code366(p); break;
case 367: code367(p); break;
case 368: code368(p); break;
case 369: code369(p); break;
case 370: code370(p); break;
case 371: code371(p); break;
case 372: code372(p); break;
case 373: code373(p); break;
case 374: code374(p); break;
case 375: code375(p); break;
case 376: code376(p); break;
case 377: code377(p); break;
case 378: code378(p); break;
case 379: code379(p); break;
case 380: code380(p); break;
case 381: code381(p); break;
case 382: code382(p); break;
case 383: code383(p); break;
case 384: code384(p); break;
case 385: code385(p); break;
case 386: code386(p); break;
case 387: code387(p); break;
case 388: code388(p); break;
case 389: code389(p); break;
case 390: code390(p); break;
case 391: code391(p); break;
case 392: code392(p); break;
case 393: code393(p); break;
case 394: code394(p); break;
case 395: code395(p); break;
case 396: code396(p); break;
case 397: code397(p); break;
case 398: code398(p); break;
case 399: code399(p); break;
case 400: code400(p); break;
case 401: code401(p); break;
case 402: code402(p); break;
case 403: code403(p); break;
case 404: code404(p); break;
case 405: code405(p); break;
case 406: code406(p); break;
case 407: code407(p); break;
case 408: code408(p); break;
case 409: code409(p); break;
case 410: code410(p); break;
case 411: code411(p); break;
case 412: code412(p); break;
case 413: code413(p); break;
case 414: code414(p); break;
case 415: code415(p); break;
case 416: code416(p); break;
case 417: code417(p); break;
case 418: code418(p); break;
case 419: code419(p); break;
case 420: code420(p); break;
case 421: code421(p); break;
case 422: code422(p); break;
case 423: code423(p); break;
case 424: code424(p); break;
case 425: code425(p); break;
case 426: code426(p); break;
default:
throw new OPT_OptimizingCompilerException("BURS","rule without emit code:",OPT_BURS_Debug.string[ruleno]);
}
}
}