Program: 149761
Project: 149761
Buggy source:
/** 
 * Main code generation loop.
 */
protected final MachineCode genCode(){
  emit_prologue();
  while (bcodes.hasMoreBytecodes()) {
    biStart=bcodes.index();
    bytecodeMap[biStart]=asm.getMachineCodeIndex();
    asm.resolveForwardReferences(biStart);
    starting_bytecode();
    int code=bcodes.nextInstruction();
switch (code) {
case JBC_nop:
{
        if (shouldPrint)         asm.noteBytecode(biStart,"String_Node_Str");
        break;
      }
case JBC_aconst_null:
{
      if (shouldPrint)       asm.noteBytecode(biStart,"String_Node_Str");
      emit_aconst_null();
      break;
    }
case JBC_iconst_m1:
{
    if (shouldPrint)     asm.noteBytecode(biStart,"String_Node_Str");
    emit_iconst(-1);
    break;
  }
case JBC_iconst_0:
{
  if (shouldPrint)   asm.noteBytecode(biStart,"String_Node_Str");
  emit_iconst(0);
  break;
}
case JBC_iconst_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iconst(1);
break;
}
case JBC_iconst_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iconst(2);
break;
}
case JBC_iconst_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iconst(3);
break;
}
case JBC_iconst_4:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iconst(4);
break;
}
case JBC_iconst_5:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iconst(5);
break;
}
case JBC_lconst_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lconst(0);
break;
}
case JBC_lconst_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lconst(1);
break;
}
case JBC_fconst_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fconst_0();
break;
}
case JBC_fconst_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fconst_1();
break;
}
case JBC_fconst_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fconst_2();
break;
}
case JBC_dconst_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dconst_0();
break;
}
case JBC_dconst_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dconst_1();
break;
}
case JBC_bipush:
{
int val=bcodes.getByteValue();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",val);
emit_iconst(val);
break;
}
case JBC_sipush:
{
int val=bcodes.getShortValue();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",val);
emit_iconst(val);
break;
}
case JBC_ldc:
{
int index=bcodes.getConstantIndex();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
Offset offset=klass.getLiteralOffset(index);
byte type=klass.getLiteralDescription(index);
emit_ldc(offset,type);
break;
}
case JBC_ldc_w:
{
int index=bcodes.getWideConstantIndex();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
Offset offset=klass.getLiteralOffset(index);
byte type=klass.getLiteralDescription(index);
emit_ldc(offset,type);
break;
}
case JBC_ldc2_w:
{
int index=bcodes.getWideConstantIndex();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
Offset offset=klass.getLiteralOffset(index);
byte type=klass.getLiteralDescription(index);
emit_ldc2(offset,type);
break;
}
case JBC_iload:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_iload(index);
break;
}
case JBC_lload:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_lload(index);
break;
}
case JBC_fload:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_fload(index);
break;
}
case JBC_dload:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_dload(index);
break;
}
case JBC_aload:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_aload(index);
break;
}
case JBC_iload_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iload(0);
break;
}
case JBC_iload_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iload(1);
break;
}
case JBC_iload_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iload(2);
break;
}
case JBC_iload_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iload(3);
break;
}
case JBC_lload_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lload(0);
break;
}
case JBC_lload_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lload(1);
break;
}
case JBC_lload_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lload(2);
break;
}
case JBC_lload_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lload(3);
break;
}
case JBC_fload_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fload(0);
break;
}
case JBC_fload_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fload(1);
break;
}
case JBC_fload_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fload(2);
break;
}
case JBC_fload_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fload(3);
break;
}
case JBC_dload_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dload(0);
break;
}
case JBC_dload_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dload(1);
break;
}
case JBC_dload_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dload(2);
break;
}
case JBC_dload_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dload(3);
break;
}
case JBC_aload_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_aload(0);
break;
}
case JBC_aload_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_aload(1);
break;
}
case JBC_aload_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_aload(2);
break;
}
case JBC_aload_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_aload(3);
break;
}
case JBC_iaload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iaload();
break;
}
case JBC_laload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_laload();
break;
}
case JBC_faload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_faload();
break;
}
case JBC_daload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_daload();
break;
}
case JBC_aaload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_aaload();
break;
}
case JBC_baload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_baload();
break;
}
case JBC_caload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_caload();
break;
}
case JBC_saload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_saload();
break;
}
case JBC_istore:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_istore(index);
break;
}
case JBC_lstore:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_lstore(index);
break;
}
case JBC_fstore:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_fstore(index);
break;
}
case JBC_dstore:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_dstore(index);
break;
}
case JBC_astore:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_astore(index);
break;
}
case JBC_istore_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_istore(0);
break;
}
case JBC_istore_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_istore(1);
break;
}
case JBC_istore_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_istore(2);
break;
}
case JBC_istore_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_istore(3);
break;
}
case JBC_lstore_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lstore(0);
break;
}
case JBC_lstore_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lstore(1);
break;
}
case JBC_lstore_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lstore(2);
break;
}
case JBC_lstore_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lstore(3);
break;
}
case JBC_fstore_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fstore(0);
break;
}
case JBC_fstore_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fstore(1);
break;
}
case JBC_fstore_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fstore(2);
break;
}
case JBC_fstore_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fstore(3);
break;
}
case JBC_dstore_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dstore(0);
break;
}
case JBC_dstore_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dstore(1);
break;
}
case JBC_dstore_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dstore(2);
break;
}
case JBC_dstore_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dstore(3);
break;
}
case JBC_astore_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_astore(0);
break;
}
case JBC_astore_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_astore(1);
break;
}
case JBC_astore_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_astore(2);
break;
}
case JBC_astore_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_astore(3);
break;
}
case JBC_iastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iastore();
break;
}
case JBC_lastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lastore();
break;
}
case JBC_fastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fastore();
break;
}
case JBC_dastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dastore();
break;
}
case JBC_aastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.VerifyUnint && isUninterruptible && doesCheckStore) forbiddenBytecode("String_Node_Str",bcodes.index());
emit_aastore();
break;
}
case JBC_bastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_bastore();
break;
}
case JBC_castore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_castore();
break;
}
case JBC_sastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_sastore();
break;
}
case JBC_pop:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_pop();
break;
}
case JBC_pop2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_pop2();
break;
}
case JBC_dup:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup();
break;
}
case JBC_dup_x1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup_x1();
break;
}
case JBC_dup_x2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup_x2();
break;
}
case JBC_dup2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup2();
break;
}
case JBC_dup2_x1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup2_x1();
break;
}
case JBC_dup2_x2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup2_x2();
break;
}
case JBC_swap:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_swap();
break;
}
case JBC_iadd:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iadd();
break;
}
case JBC_ladd:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ladd();
break;
}
case JBC_fadd:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fadd();
break;
}
case JBC_dadd:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dadd();
break;
}
case JBC_isub:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_isub();
break;
}
case JBC_lsub:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lsub();
break;
}
case JBC_fsub:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fsub();
break;
}
case JBC_dsub:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dsub();
break;
}
case JBC_imul:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_imul();
break;
}
case JBC_lmul:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lmul();
break;
}
case JBC_fmul:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fmul();
break;
}
case JBC_dmul:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dmul();
break;
}
case JBC_idiv:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_idiv();
break;
}
case JBC_ldiv:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ldiv();
break;
}
case JBC_fdiv:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fdiv();
break;
}
case JBC_ddiv:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ddiv();
break;
}
case JBC_irem:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_irem();
break;
}
case JBC_lrem:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lrem();
break;
}
case JBC_frem:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_frem();
break;
}
case JBC_drem:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_drem();
break;
}
case JBC_ineg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ineg();
break;
}
case JBC_lneg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lneg();
break;
}
case JBC_fneg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fneg();
break;
}
case JBC_dneg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dneg();
break;
}
case JBC_ishl:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ishl();
break;
}
case JBC_lshl:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lshl();
break;
}
case JBC_ishr:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ishr();
break;
}
case JBC_lshr:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lshr();
break;
}
case JBC_iushr:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iushr();
break;
}
case JBC_lushr:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lushr();
break;
}
case JBC_iand:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iand();
break;
}
case JBC_land:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_land();
break;
}
case JBC_ior:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ior();
break;
}
case JBC_lor:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lor();
break;
}
case JBC_ixor:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ixor();
break;
}
case JBC_lxor:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lxor();
break;
}
case JBC_iinc:
{
int index=bcodes.getLocalNumber();
int val=bcodes.getIncrement();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index,val);
emit_iinc(index,val);
break;
}
case JBC_i2l:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2l();
break;
}
case JBC_i2f:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2f();
break;
}
case JBC_i2d:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2d();
break;
}
case JBC_l2i:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_l2i();
break;
}
case JBC_l2f:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_l2f();
break;
}
case JBC_l2d:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_l2d();
break;
}
case JBC_f2i:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_f2i();
break;
}
case JBC_f2l:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_f2l();
break;
}
case JBC_f2d:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_f2d();
break;
}
case JBC_d2i:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_d2i();
break;
}
case JBC_d2l:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_d2l();
break;
}
case JBC_d2f:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_d2f();
break;
}
case JBC_int2byte:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2b();
break;
}
case JBC_int2char:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2c();
break;
}
case JBC_int2short:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2s();
break;
}
case JBC_lcmp:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lcmp();
break;
}
case JBC_fcmpl:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fcmpl();
break;
}
case JBC_fcmpg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fcmpg();
break;
}
case JBC_dcmpl:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dcmpl();
break;
}
case JBC_dcmpg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dcmpg();
break;
}
case JBC_ifeq:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifeq(bTarget);
break;
}
case JBC_ifne:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifne(bTarget);
break;
}
case JBC_iflt:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_iflt(bTarget);
break;
}
case JBC_ifge:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifge(bTarget);
break;
}
case JBC_ifgt:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifgt(bTarget);
break;
}
case JBC_ifle:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifle(bTarget);
break;
}
case JBC_if_icmpeq:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmpeq(bTarget);
break;
}
case JBC_if_icmpne:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmpne(bTarget);
break;
}
case JBC_if_icmplt:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmplt(bTarget);
break;
}
case JBC_if_icmpge:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmpge(bTarget);
break;
}
case JBC_if_icmpgt:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmpgt(bTarget);
break;
}
case JBC_if_icmple:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmple(bTarget);
break;
}
case JBC_if_acmpeq:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_acmpeq(bTarget);
break;
}
case JBC_if_acmpne:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_acmpne(bTarget);
break;
}
case JBC_goto:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_goto(bTarget);
break;
}
case JBC_jsr:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
emit_jsr(bTarget);
break;
}
case JBC_ret:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_ret(index);
break;
}
case JBC_tableswitch:
{
bcodes.alignSwitch();
int defaultval=bcodes.getDefaultSwitchOffset();
int low=bcodes.getLowSwitchValue();
int high=bcodes.getHighSwitchValue();
if (shouldPrint) asm.noteTableswitchBytecode(biStart,low,high,defaultval);
emit_tableswitch(defaultval,low,high);
break;
}
case JBC_lookupswitch:
{
bcodes.alignSwitch();
int defaultval=bcodes.getDefaultSwitchOffset();
int npairs=bcodes.getSwitchLength();
if (shouldPrint) asm.noteLookupswitchBytecode(biStart,npairs,defaultval);
emit_lookupswitch(defaultval,npairs);
break;
}
case JBC_ireturn:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_ireturn();
break;
}
case JBC_lreturn:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_lreturn();
break;
}
case JBC_freturn:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_freturn();
break;
}
case JBC_dreturn:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_dreturn();
break;
}
case JBC_areturn:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_areturn();
break;
}
case JBC_return:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_return();
break;
}
case JBC_getstatic:
{
FieldReference fieldRef=bcodes.getFieldReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",fieldRef);
if (fieldRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",fieldRef,bcodes.index());
emit_unresolved_getstatic(fieldRef);
}
 else {
emit_resolved_getstatic(fieldRef);
}
break;
}
case JBC_putstatic:
{
FieldReference fieldRef=bcodes.getFieldReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",fieldRef);
if (fieldRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",fieldRef,bcodes.index());
emit_unresolved_putstatic(fieldRef);
}
 else {
emit_resolved_putstatic(fieldRef);
}
break;
}
case JBC_getfield:
{
FieldReference fieldRef=bcodes.getFieldReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",fieldRef);
if (fieldRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",fieldRef,bcodes.index());
emit_unresolved_getfield(fieldRef);
}
 else {
emit_resolved_getfield(fieldRef);
}
break;
}
case JBC_putfield:
{
FieldReference fieldRef=bcodes.getFieldReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",fieldRef);
if (fieldRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",fieldRef,bcodes.index());
emit_unresolved_putfield(fieldRef);
}
 else {
emit_resolved_putfield(fieldRef);
}
break;
}
case JBC_invokevirtual:
{
ForwardReference xx=null;
if (biStart == this.pendingIdx) {
ForwardReference x=emit_pending_goto(0);
this.pendingRef.resolve(asm);
CompiledMethod cm=CompiledMethods.getCompiledMethod(this.pendingCMID);
if (VM.VerifyAssertions) VM._assert(cm.isSpecialForOSR());
emit_invoke_compiledmethod(cm);
xx=emit_pending_goto(0);
x.resolve(asm);
}
MethodReference methodRef=bcodes.getMethodReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
if (methodRef.getType().isMagicType()) {
if (emit_Magic(methodRef)) {
break;
}
}
if (methodRef.isMiranda()) {
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",methodRef,bcodes.index());
emit_invokeinterface(methodRef);
}
 else {
if (methodRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",methodRef,bcodes.index());
emit_unresolved_invokevirtual(methodRef);
}
 else {
if (VM.VerifyUnint && !isInterruptible) checkTarget(methodRef.peekResolvedMethod(),bcodes.index());
emit_resolved_invokevirtual(methodRef);
}
}
if (xx != null) {
xx.resolve(asm);
}
break;
}
case JBC_invokespecial:
{
ForwardReference xx=null;
if (biStart == this.pendingIdx) {
ForwardReference x=emit_pending_goto(0);
this.pendingRef.resolve(asm);
CompiledMethod cm=CompiledMethods.getCompiledMethod(this.pendingCMID);
if (VM.VerifyAssertions) VM._assert(cm.isSpecialForOSR());
emit_invoke_compiledmethod(cm);
xx=emit_pending_goto(0);
x.resolve(asm);
}
MethodReference methodRef=bcodes.getMethodReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
RVMMethod target=methodRef.resolveInvokeSpecial();
if (target != null) {
if (VM.VerifyUnint && !isInterruptible) checkTarget(target,bcodes.index());
emit_resolved_invokespecial(methodRef,target);
}
 else {
emit_unresolved_invokespecial(methodRef);
}
if (xx != null) {
xx.resolve(asm);
}
break;
}
case JBC_invokestatic:
{
ForwardReference xx=null;
if (biStart == this.pendingIdx) {
ForwardReference x=emit_pending_goto(0);
this.pendingRef.resolve(asm);
CompiledMethod cm=CompiledMethods.getCompiledMethod(this.pendingCMID);
if (VM.VerifyAssertions) VM._assert(cm.isSpecialForOSR());
emit_invoke_compiledmethod(cm);
xx=emit_pending_goto(0);
x.resolve(asm);
}
MethodReference methodRef=bcodes.getMethodReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
if (methodRef.isMagic()) {
if (emit_Magic(methodRef)) {
break;
}
}
if (methodRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",methodRef,bcodes.index());
emit_unresolved_invokestatic(methodRef);
}
 else {
if (VM.VerifyUnint && !isInterruptible) checkTarget(methodRef.peekResolvedMethod(),bcodes.index());
emit_resolved_invokestatic(methodRef);
}
if (xx != null) {
xx.resolve(asm);
}
break;
}
case JBC_invokeinterface:
{
ForwardReference xx=null;
if (biStart == this.pendingIdx) {
ForwardReference x=emit_pending_goto(0);
this.pendingRef.resolve(asm);
CompiledMethod cm=CompiledMethods.getCompiledMethod(this.pendingCMID);
if (VM.VerifyAssertions) VM._assert(cm.isSpecialForOSR());
emit_invoke_compiledmethod(cm);
xx=emit_pending_goto(0);
x.resolve(asm);
}
MethodReference methodRef=bcodes.getMethodReference();
bcodes.alignInvokeInterface();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",methodRef,bcodes.index());
emit_invokeinterface(methodRef);
if (xx != null) {
xx.resolve(asm);
}
break;
}
case JBC_xxxunusedxxx:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
break;
}
case JBC_new:
{
TypeReference typeRef=bcodes.getTypeReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",typeRef);
if (VM.VerifyUnint && isUninterruptible) forbiddenBytecode("String_Node_Str",typeRef,bcodes.index());
RVMType type=typeRef.peekType();
if (type != null && (type.isInitialized() || type.isInBootImage())) {
emit_resolved_new(type.asClass());
}
 else {
if (VM.VerifyUnint && isUnpreemptible) forbiddenBytecode("String_Node_Str",typeRef,bcodes.index());
emit_unresolved_new(typeRef);
}
break;
}
case JBC_newarray:
{
int atype=bcodes.getArrayElementType();
RVMArray array=RVMArray.getPrimitiveArrayType(atype);
if (VM.VerifyAssertions) VM._assert(array.isResolved());
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",array.getTypeRef());
if (VM.VerifyUnint && isUninterruptible) forbiddenBytecode("String_Node_Str",array,bcodes.index());
emit_resolved_newarray(array);
break;
}
case JBC_anewarray:
{
TypeReference elementTypeRef=bcodes.getTypeReference();
TypeReference arrayRef=elementTypeRef.getArrayTypeForElementType();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",arrayRef);
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",arrayRef,bcodes.index());
if (VM.VerifyAssertions && elementTypeRef.isUnboxedType()) {
VM._assert(false,"String_Node_Str" + method + "String_Node_Str"+ elementTypeRef+ "String_Node_Str"+ "String_Node_Str");
}
RVMArray array=(RVMArray)arrayRef.peekType();
if (array != null && !(array.isInitialized() || array.isInBootImage()) && RVMType.JavaLangObjectType.isInstantiated()) {
RVMType elementType=elementTypeRef.peekType();
if (elementType != null && (elementType.isInitialized() || elementType.isInBootImage())) {
array.resolve();
array.instantiate();
}
if (array.isInitialized() || array.isInBootImage()) {
emit_resolved_newarray(array);
break;
}
}
emit_unresolved_newarray(arrayRef);
break;
}
case JBC_arraylength:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_arraylength();
break;
}
case JBC_athrow:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
if (VM.VerifyUnint && isUninterruptible) forbiddenBytecode("String_Node_Str",bcodes.index());
emit_athrow();
break;
}
case JBC_checkcast:
{
TypeReference typeRef=bcodes.getTypeReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",typeRef);
RVMType type=typeRef.peekType();
if (type != null) {
if (type.isClassType()) {
RVMClass cType=type.asClass();
if (cType.isFinal()) {
emit_checkcast_final(cType);
break;
}
 else if (cType.isResolved()) {
if (cType.isInterface()) {
emit_checkcast_resolvedInterface(cType);
}
 else {
emit_checkcast_resolvedClass(cType);
}
break;
}
}
 else if (type.isArrayType()) {
RVMType elemType=type.asArray().getElementType();
if (elemType.isPrimitiveType() || elemType.isUnboxedType() || (elemType.isClassType() && elemType.asClass().isFinal())) {
emit_checkcast_final(type);
break;
}
}
 else {
if (VM.VerifyAssertions) VM._assert(type.getTypeRef().isUnboxedType());
break;
}
}
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",typeRef,bcodes.index());
emit_checkcast(typeRef);
break;
}
case JBC_instanceof:
{
TypeReference typeRef=bcodes.getTypeReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",typeRef);
RVMType type=typeRef.peekType();
if (type != null) {
if (type.isClassType()) {
RVMClass cType=type.asClass();
if (cType.isFinal()) {
emit_instanceof_final(type);
break;
}
 else if (cType.isResolved()) {
if (cType.isInterface()) {
emit_instanceof_resolvedInterface(cType);
}
 else {
emit_instanceof_resolvedClass(cType);
}
break;
}
}
 else if (type.isArrayType()) {
RVMType elemType=type.asArray().getElementType();
if (elemType.isPrimitiveType() || elemType.isUnboxedType() || (elemType.isClassType() && elemType.asClass().isFinal())) {
emit_instanceof_final(type);
break;
}
}
}
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",typeRef,bcodes.index());
emit_instanceof(typeRef);
break;
}
case JBC_monitorenter:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.VerifyUnint && isUninterruptible) forbiddenBytecode("String_Node_Str",bcodes.index());
emit_monitorenter();
break;
}
case JBC_monitorexit:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.VerifyUnint && isUninterruptible) forbiddenBytecode("String_Node_Str",bcodes.index());
emit_monitorexit();
break;
}
case JBC_wide:
{
int widecode=bcodes.getWideOpcode();
int index=bcodes.getWideLocalNumber();
switch (widecode) {
case JBC_iload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_iload(index);
break;
}
case JBC_lload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_lload(index);
break;
}
case JBC_fload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_fload(index);
break;
}
case JBC_dload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_dload(index);
break;
}
case JBC_aload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_aload(index);
break;
}
case JBC_istore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_istore(index);
break;
}
case JBC_lstore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_lstore(index);
break;
}
case JBC_fstore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_fstore(index);
break;
}
case JBC_dstore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_dstore(index);
break;
}
case JBC_astore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_astore(index);
break;
}
case JBC_iinc:
{
int val=bcodes.getWideIncrement();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index,val);
emit_iinc(index,val);
break;
}
case JBC_ret:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_ret(index);
break;
}
default :
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
}
break;
}
case JBC_multianewarray:
{
TypeReference typeRef=bcodes.getTypeReference();
int dimensions=bcodes.getArrayDimension();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",typeRef);
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",bcodes.index());
emit_multianewarray(typeRef,dimensions);
break;
}
case JBC_ifnull:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifnull(bTarget);
break;
}
case JBC_ifnonnull:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifnonnull(bTarget);
break;
}
case JBC_goto_w:
{
int offset=bcodes.getWideBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_goto(bTarget);
break;
}
case JBC_jsr_w:
{
int offset=bcodes.getWideBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
emit_jsr(bTarget);
break;
}
case JBC_impdep1:
{
if (VM.BuildForAdaptiveSystem) {
int pseudo_opcode=bcodes.nextPseudoInstruction();
switch (pseudo_opcode) {
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadIntConst:
{
int value=bcodes.readIntConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",value);
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateIntSizeLiteral(value));
emit_ldc(offset,CP_INT);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadLongConst:
{
long value=bcodes.readLongConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",value);
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateLongSizeLiteral(value));
emit_ldc2(offset,CP_LONG);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadWordConst:
{
if (VM.BuildFor32Addr) {
int value=bcodes.readIntConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str" + Integer.toHexString(value));
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateIntSizeLiteral(value));
emit_ldc(offset,CP_INT);
}
 else {
long value=bcodes.readLongConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str" + Long.toHexString(value));
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateLongSizeLiteral(value));
emit_ldc2(offset,CP_LONG);
emit_l2i();
}
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadFloatConst:
{
int ibits=bcodes.readIntConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",ibits);
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateIntSizeLiteral(ibits));
emit_ldc(offset,CP_FLOAT);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadDoubleConst:
{
long lbits=bcodes.readLongConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",lbits);
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateLongSizeLiteral(lbits));
emit_ldc2(offset,CP_DOUBLE);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadRetAddrConst:
{
int bcIndex=bcodes.readIntConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",bcIndex);
emit_loadretaddrconst(bcIndex);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_InvokeStatic:
{
int targetidx=bcodes.readIntConst();
RVMMethod methodRef=InvokeStatic.targetMethod(targetidx);
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
emit_resolved_invokestatic(methodRef.getMemberRef().asMethodReference());
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_InvokeCompiledMethod:
{
int cmid=bcodes.readIntConst();
int origIdx=bcodes.readIntConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",cmid);
this.pendingCMID=cmid;
this.pendingIdx=origIdx + this.method.getOsrPrologueLength();
this.pendingRef=emit_pending_goto(this.pendingIdx);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_ParamInitEnd:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_deferred_prologue();
break;
}
default :
if (VM.TraceOnStackReplacement) {
VM.sysWrite("String_Node_Str" + VM.intAsHexString(pseudo_opcode) + "String_Node_Str");
}
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
break;
}
}
 else {
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
}
break;
}
default :
VM.sysWrite("String_Node_Str" + Services.getHexString(code,false) + "String_Node_Str");
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
}
ending_bytecode();
}
bytecodeMap[bcodes.length()]=asm.getMachineCodeIndex();
return asm.finalizeMachineCode(bytecodeMap);
}

Fixed version (ground truth):
/** 
 * Main code generation loop.
 */
protected final MachineCode genCode(){
  emit_prologue();
  while (bcodes.hasMoreBytecodes()) {
    biStart=bcodes.index();
    bytecodeMap[biStart]=asm.getMachineCodeIndex();
    asm.resolveForwardReferences(biStart);
    starting_bytecode();
    int code=bcodes.nextInstruction();
switch (code) {
case JBC_nop:
{
        if (shouldPrint)         asm.noteBytecode(biStart,"String_Node_Str");
        break;
      }
case JBC_aconst_null:
{
      if (shouldPrint)       asm.noteBytecode(biStart,"String_Node_Str");
      emit_aconst_null();
      break;
    }
case JBC_iconst_m1:
{
    if (shouldPrint)     asm.noteBytecode(biStart,"String_Node_Str");
    emit_iconst(-1);
    break;
  }
case JBC_iconst_0:
{
  if (shouldPrint)   asm.noteBytecode(biStart,"String_Node_Str");
  emit_iconst(0);
  break;
}
case JBC_iconst_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iconst(1);
break;
}
case JBC_iconst_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iconst(2);
break;
}
case JBC_iconst_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iconst(3);
break;
}
case JBC_iconst_4:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iconst(4);
break;
}
case JBC_iconst_5:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iconst(5);
break;
}
case JBC_lconst_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lconst(0);
break;
}
case JBC_lconst_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lconst(1);
break;
}
case JBC_fconst_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fconst_0();
break;
}
case JBC_fconst_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fconst_1();
break;
}
case JBC_fconst_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fconst_2();
break;
}
case JBC_dconst_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dconst_0();
break;
}
case JBC_dconst_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dconst_1();
break;
}
case JBC_bipush:
{
int val=bcodes.getByteValue();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",val);
emit_iconst(val);
break;
}
case JBC_sipush:
{
int val=bcodes.getShortValue();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",val);
emit_iconst(val);
break;
}
case JBC_ldc:
{
int index=bcodes.getConstantIndex();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
Offset offset=klass.getLiteralOffset(index);
byte type=klass.getLiteralDescription(index);
emit_ldc(offset,type);
break;
}
case JBC_ldc_w:
{
int index=bcodes.getWideConstantIndex();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
Offset offset=klass.getLiteralOffset(index);
byte type=klass.getLiteralDescription(index);
emit_ldc(offset,type);
break;
}
case JBC_ldc2_w:
{
int index=bcodes.getWideConstantIndex();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
Offset offset=klass.getLiteralOffset(index);
byte type=klass.getLiteralDescription(index);
emit_ldc2(offset,type);
break;
}
case JBC_iload:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_iload(index);
break;
}
case JBC_lload:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_lload(index);
break;
}
case JBC_fload:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_fload(index);
break;
}
case JBC_dload:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_dload(index);
break;
}
case JBC_aload:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_aload(index);
break;
}
case JBC_iload_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iload(0);
break;
}
case JBC_iload_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iload(1);
break;
}
case JBC_iload_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iload(2);
break;
}
case JBC_iload_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iload(3);
break;
}
case JBC_lload_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lload(0);
break;
}
case JBC_lload_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lload(1);
break;
}
case JBC_lload_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lload(2);
break;
}
case JBC_lload_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lload(3);
break;
}
case JBC_fload_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fload(0);
break;
}
case JBC_fload_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fload(1);
break;
}
case JBC_fload_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fload(2);
break;
}
case JBC_fload_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fload(3);
break;
}
case JBC_dload_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dload(0);
break;
}
case JBC_dload_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dload(1);
break;
}
case JBC_dload_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dload(2);
break;
}
case JBC_dload_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dload(3);
break;
}
case JBC_aload_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_aload(0);
break;
}
case JBC_aload_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_aload(1);
break;
}
case JBC_aload_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_aload(2);
break;
}
case JBC_aload_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_aload(3);
break;
}
case JBC_iaload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iaload();
break;
}
case JBC_laload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_laload();
break;
}
case JBC_faload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_faload();
break;
}
case JBC_daload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_daload();
break;
}
case JBC_aaload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_aaload();
break;
}
case JBC_baload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_baload();
break;
}
case JBC_caload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_caload();
break;
}
case JBC_saload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_saload();
break;
}
case JBC_istore:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_istore(index);
break;
}
case JBC_lstore:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_lstore(index);
break;
}
case JBC_fstore:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_fstore(index);
break;
}
case JBC_dstore:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_dstore(index);
break;
}
case JBC_astore:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_astore(index);
break;
}
case JBC_istore_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_istore(0);
break;
}
case JBC_istore_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_istore(1);
break;
}
case JBC_istore_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_istore(2);
break;
}
case JBC_istore_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_istore(3);
break;
}
case JBC_lstore_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lstore(0);
break;
}
case JBC_lstore_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lstore(1);
break;
}
case JBC_lstore_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lstore(2);
break;
}
case JBC_lstore_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lstore(3);
break;
}
case JBC_fstore_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fstore(0);
break;
}
case JBC_fstore_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fstore(1);
break;
}
case JBC_fstore_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fstore(2);
break;
}
case JBC_fstore_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fstore(3);
break;
}
case JBC_dstore_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dstore(0);
break;
}
case JBC_dstore_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dstore(1);
break;
}
case JBC_dstore_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dstore(2);
break;
}
case JBC_dstore_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dstore(3);
break;
}
case JBC_astore_0:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_astore(0);
break;
}
case JBC_astore_1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_astore(1);
break;
}
case JBC_astore_2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_astore(2);
break;
}
case JBC_astore_3:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_astore(3);
break;
}
case JBC_iastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iastore();
break;
}
case JBC_lastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lastore();
break;
}
case JBC_fastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fastore();
break;
}
case JBC_dastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dastore();
break;
}
case JBC_aastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.VerifyUnint && isUninterruptible && doesCheckStore) forbiddenBytecode("String_Node_Str",bcodes.index());
emit_aastore();
break;
}
case JBC_bastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_bastore();
break;
}
case JBC_castore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_castore();
break;
}
case JBC_sastore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_sastore();
break;
}
case JBC_pop:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_pop();
break;
}
case JBC_pop2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_pop2();
break;
}
case JBC_dup:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup();
break;
}
case JBC_dup_x1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup_x1();
break;
}
case JBC_dup_x2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup_x2();
break;
}
case JBC_dup2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup2();
break;
}
case JBC_dup2_x1:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup2_x1();
break;
}
case JBC_dup2_x2:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dup2_x2();
break;
}
case JBC_swap:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_swap();
break;
}
case JBC_iadd:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iadd();
break;
}
case JBC_ladd:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ladd();
break;
}
case JBC_fadd:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fadd();
break;
}
case JBC_dadd:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dadd();
break;
}
case JBC_isub:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_isub();
break;
}
case JBC_lsub:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lsub();
break;
}
case JBC_fsub:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fsub();
break;
}
case JBC_dsub:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dsub();
break;
}
case JBC_imul:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_imul();
break;
}
case JBC_lmul:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lmul();
break;
}
case JBC_fmul:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fmul();
break;
}
case JBC_dmul:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dmul();
break;
}
case JBC_idiv:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_idiv();
break;
}
case JBC_ldiv:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ldiv();
break;
}
case JBC_fdiv:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fdiv();
break;
}
case JBC_ddiv:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ddiv();
break;
}
case JBC_irem:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_irem();
break;
}
case JBC_lrem:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lrem();
break;
}
case JBC_frem:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_frem();
break;
}
case JBC_drem:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_drem();
break;
}
case JBC_ineg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ineg();
break;
}
case JBC_lneg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lneg();
break;
}
case JBC_fneg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fneg();
break;
}
case JBC_dneg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dneg();
break;
}
case JBC_ishl:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ishl();
break;
}
case JBC_lshl:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lshl();
break;
}
case JBC_ishr:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ishr();
break;
}
case JBC_lshr:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lshr();
break;
}
case JBC_iushr:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iushr();
break;
}
case JBC_lushr:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lushr();
break;
}
case JBC_iand:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_iand();
break;
}
case JBC_land:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_land();
break;
}
case JBC_ior:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ior();
break;
}
case JBC_lor:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lor();
break;
}
case JBC_ixor:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_ixor();
break;
}
case JBC_lxor:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lxor();
break;
}
case JBC_iinc:
{
int index=bcodes.getLocalNumber();
int val=bcodes.getIncrement();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index,val);
emit_iinc(index,val);
break;
}
case JBC_i2l:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2l();
break;
}
case JBC_i2f:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2f();
break;
}
case JBC_i2d:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2d();
break;
}
case JBC_l2i:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_l2i();
break;
}
case JBC_l2f:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_l2f();
break;
}
case JBC_l2d:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_l2d();
break;
}
case JBC_f2i:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_f2i();
break;
}
case JBC_f2l:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_f2l();
break;
}
case JBC_f2d:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_f2d();
break;
}
case JBC_d2i:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_d2i();
break;
}
case JBC_d2l:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_d2l();
break;
}
case JBC_d2f:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_d2f();
break;
}
case JBC_int2byte:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2b();
break;
}
case JBC_int2char:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2c();
break;
}
case JBC_int2short:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_i2s();
break;
}
case JBC_lcmp:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_lcmp();
break;
}
case JBC_fcmpl:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fcmpl();
break;
}
case JBC_fcmpg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_fcmpg();
break;
}
case JBC_dcmpl:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dcmpl();
break;
}
case JBC_dcmpg:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_dcmpg();
break;
}
case JBC_ifeq:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifeq(bTarget);
break;
}
case JBC_ifne:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifne(bTarget);
break;
}
case JBC_iflt:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_iflt(bTarget);
break;
}
case JBC_ifge:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifge(bTarget);
break;
}
case JBC_ifgt:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifgt(bTarget);
break;
}
case JBC_ifle:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifle(bTarget);
break;
}
case JBC_if_icmpeq:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmpeq(bTarget);
break;
}
case JBC_if_icmpne:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmpne(bTarget);
break;
}
case JBC_if_icmplt:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmplt(bTarget);
break;
}
case JBC_if_icmpge:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmpge(bTarget);
break;
}
case JBC_if_icmpgt:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmpgt(bTarget);
break;
}
case JBC_if_icmple:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_icmple(bTarget);
break;
}
case JBC_if_acmpeq:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_acmpeq(bTarget);
break;
}
case JBC_if_acmpne:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_if_acmpne(bTarget);
break;
}
case JBC_goto:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_goto(bTarget);
break;
}
case JBC_jsr:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
emit_jsr(bTarget);
break;
}
case JBC_ret:
{
int index=bcodes.getLocalNumber();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_ret(index);
break;
}
case JBC_tableswitch:
{
bcodes.alignSwitch();
int defaultval=bcodes.getDefaultSwitchOffset();
int low=bcodes.getLowSwitchValue();
int high=bcodes.getHighSwitchValue();
if (shouldPrint) asm.noteTableswitchBytecode(biStart,low,high,defaultval);
emit_tableswitch(defaultval,low,high);
break;
}
case JBC_lookupswitch:
{
bcodes.alignSwitch();
int defaultval=bcodes.getDefaultSwitchOffset();
int npairs=bcodes.getSwitchLength();
if (shouldPrint) asm.noteLookupswitchBytecode(biStart,npairs,defaultval);
emit_lookupswitch(defaultval,npairs);
break;
}
case JBC_ireturn:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_ireturn();
break;
}
case JBC_lreturn:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_lreturn();
break;
}
case JBC_freturn:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_freturn();
break;
}
case JBC_dreturn:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_dreturn();
break;
}
case JBC_areturn:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_areturn();
break;
}
case JBC_return:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
emit_return();
break;
}
case JBC_getstatic:
{
FieldReference fieldRef=bcodes.getFieldReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",fieldRef);
if (fieldRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",fieldRef,bcodes.index());
emit_unresolved_getstatic(fieldRef);
}
 else {
emit_resolved_getstatic(fieldRef);
}
break;
}
case JBC_putstatic:
{
FieldReference fieldRef=bcodes.getFieldReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",fieldRef);
if (fieldRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",fieldRef,bcodes.index());
emit_unresolved_putstatic(fieldRef);
}
 else {
emit_resolved_putstatic(fieldRef);
}
break;
}
case JBC_getfield:
{
FieldReference fieldRef=bcodes.getFieldReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",fieldRef);
if (fieldRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",fieldRef,bcodes.index());
emit_unresolved_getfield(fieldRef);
}
 else {
emit_resolved_getfield(fieldRef);
}
break;
}
case JBC_putfield:
{
FieldReference fieldRef=bcodes.getFieldReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",fieldRef);
if (fieldRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",fieldRef,bcodes.index());
emit_unresolved_putfield(fieldRef);
}
 else {
emit_resolved_putfield(fieldRef);
}
break;
}
case JBC_invokevirtual:
{
ForwardReference xx=null;
if (biStart == this.pendingIdx) {
ForwardReference x=emit_pending_goto(0);
this.pendingRef.resolve(asm);
CompiledMethod cm=CompiledMethods.getCompiledMethod(this.pendingCMID);
if (VM.VerifyAssertions) VM._assert(cm.isSpecialForOSR());
emit_invoke_compiledmethod(cm);
xx=emit_pending_goto(0);
x.resolve(asm);
}
MethodReference methodRef=bcodes.getMethodReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
if (methodRef.getType().isMagicType()) {
if (emit_Magic(methodRef)) {
break;
}
}
if (methodRef.isMiranda()) {
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",methodRef,bcodes.index());
emit_invokeinterface(methodRef);
}
 else {
if (methodRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",methodRef,bcodes.index());
emit_unresolved_invokevirtual(methodRef);
}
 else {
if (VM.VerifyUnint && !isInterruptible) checkTarget(methodRef.peekResolvedMethod(),bcodes.index());
emit_resolved_invokevirtual(methodRef);
}
}
if (xx != null) {
xx.resolve(asm);
}
break;
}
case JBC_invokespecial:
{
ForwardReference xx=null;
if (biStart == this.pendingIdx) {
ForwardReference x=emit_pending_goto(0);
this.pendingRef.resolve(asm);
CompiledMethod cm=CompiledMethods.getCompiledMethod(this.pendingCMID);
if (VM.VerifyAssertions) VM._assert(cm.isSpecialForOSR());
emit_invoke_compiledmethod(cm);
xx=emit_pending_goto(0);
x.resolve(asm);
}
MethodReference methodRef=bcodes.getMethodReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
RVMMethod target=methodRef.resolveInvokeSpecial();
if (target != null) {
if (VM.VerifyUnint && !isInterruptible) checkTarget(target,bcodes.index());
emit_resolved_invokespecial(methodRef,target);
}
 else {
emit_unresolved_invokespecial(methodRef);
}
if (xx != null) {
xx.resolve(asm);
}
break;
}
case JBC_invokestatic:
{
ForwardReference xx=null;
if (biStart == this.pendingIdx) {
ForwardReference x=emit_pending_goto(0);
this.pendingRef.resolve(asm);
CompiledMethod cm=CompiledMethods.getCompiledMethod(this.pendingCMID);
if (VM.VerifyAssertions) VM._assert(cm.isSpecialForOSR());
emit_invoke_compiledmethod(cm);
xx=emit_pending_goto(0);
x.resolve(asm);
}
MethodReference methodRef=bcodes.getMethodReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
if (methodRef.isMagic()) {
if (emit_Magic(methodRef)) {
break;
}
}
if (methodRef.needsDynamicLink(method)) {
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",methodRef,bcodes.index());
emit_unresolved_invokestatic(methodRef);
}
 else {
if (VM.VerifyUnint && !isInterruptible) checkTarget(methodRef.peekResolvedMethod(),bcodes.index());
emit_resolved_invokestatic(methodRef);
}
if (xx != null) {
xx.resolve(asm);
}
break;
}
case JBC_invokeinterface:
{
ForwardReference xx=null;
if (biStart == this.pendingIdx) {
ForwardReference x=emit_pending_goto(0);
this.pendingRef.resolve(asm);
CompiledMethod cm=CompiledMethods.getCompiledMethod(this.pendingCMID);
if (VM.VerifyAssertions) VM._assert(cm.isSpecialForOSR());
emit_invoke_compiledmethod(cm);
xx=emit_pending_goto(0);
x.resolve(asm);
}
MethodReference methodRef=bcodes.getMethodReference();
bcodes.alignInvokeInterface();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",methodRef,bcodes.index());
emit_invokeinterface(methodRef);
if (xx != null) {
xx.resolve(asm);
}
break;
}
case JBC_xxxunusedxxx:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
break;
}
case JBC_new:
{
TypeReference typeRef=bcodes.getTypeReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",typeRef);
if (VM.VerifyUnint && isUninterruptible) forbiddenBytecode("String_Node_Str",typeRef,bcodes.index());
RVMType type=typeRef.peekType();
if (type != null && (type.isInitialized() || type.isInBootImage())) {
emit_resolved_new(type.asClass());
}
 else {
if (VM.VerifyUnint && isUnpreemptible) forbiddenBytecode("String_Node_Str",typeRef,bcodes.index());
emit_unresolved_new(typeRef);
}
break;
}
case JBC_newarray:
{
int atype=bcodes.getArrayElementType();
RVMArray array=RVMArray.getPrimitiveArrayType(atype);
if (VM.VerifyAssertions) VM._assert(array.isResolved());
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",array.getTypeRef());
if (VM.VerifyUnint && isUninterruptible) forbiddenBytecode("String_Node_Str",array,bcodes.index());
emit_resolved_newarray(array);
break;
}
case JBC_anewarray:
{
TypeReference elementTypeRef=bcodes.getTypeReference();
TypeReference arrayRef=elementTypeRef.getArrayTypeForElementType();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",arrayRef);
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",arrayRef,bcodes.index());
if (VM.VerifyAssertions && elementTypeRef.isUnboxedType()) {
VM._assert(false,"String_Node_Str" + method + "String_Node_Str"+ elementTypeRef+ "String_Node_Str"+ "String_Node_Str");
}
RVMArray array=(RVMArray)arrayRef.peekType();
if (array != null && !(array.isInitialized() || array.isInBootImage()) && RVMType.JavaLangObjectType.isInstantiated()) {
RVMType elementType=elementTypeRef.peekType();
if (elementType != null && (elementType.isInitialized() || elementType.isInBootImage())) {
array.resolve();
array.instantiate();
}
}
if (array != null && (array.isInitialized() || array.isInBootImage())) {
emit_resolved_newarray(array);
}
 else {
emit_unresolved_newarray(arrayRef);
}
break;
}
case JBC_arraylength:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_arraylength();
break;
}
case JBC_athrow:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.UseEpilogueYieldPoints) emit_threadSwitchTest(RVMThread.EPILOGUE);
if (VM.VerifyUnint && isUninterruptible) forbiddenBytecode("String_Node_Str",bcodes.index());
emit_athrow();
break;
}
case JBC_checkcast:
{
TypeReference typeRef=bcodes.getTypeReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",typeRef);
RVMType type=typeRef.peekType();
if (type != null) {
if (type.isClassType()) {
RVMClass cType=type.asClass();
if (cType.isFinal()) {
emit_checkcast_final(cType);
break;
}
 else if (cType.isResolved()) {
if (cType.isInterface()) {
emit_checkcast_resolvedInterface(cType);
}
 else {
emit_checkcast_resolvedClass(cType);
}
break;
}
}
 else if (type.isArrayType()) {
RVMType elemType=type.asArray().getElementType();
if (elemType.isPrimitiveType() || elemType.isUnboxedType() || (elemType.isClassType() && elemType.asClass().isFinal())) {
emit_checkcast_final(type);
break;
}
}
 else {
if (VM.VerifyAssertions) VM._assert(type.getTypeRef().isUnboxedType());
break;
}
}
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",typeRef,bcodes.index());
emit_checkcast(typeRef);
break;
}
case JBC_instanceof:
{
TypeReference typeRef=bcodes.getTypeReference();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",typeRef);
RVMType type=typeRef.peekType();
if (type != null) {
if (type.isClassType()) {
RVMClass cType=type.asClass();
if (cType.isFinal()) {
emit_instanceof_final(type);
break;
}
 else if (cType.isResolved()) {
if (cType.isInterface()) {
emit_instanceof_resolvedInterface(cType);
}
 else {
emit_instanceof_resolvedClass(cType);
}
break;
}
}
 else if (type.isArrayType()) {
RVMType elemType=type.asArray().getElementType();
if (elemType.isPrimitiveType() || elemType.isUnboxedType() || (elemType.isClassType() && elemType.asClass().isFinal())) {
emit_instanceof_final(type);
break;
}
}
}
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",typeRef,bcodes.index());
emit_instanceof(typeRef);
break;
}
case JBC_monitorenter:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.VerifyUnint && isUninterruptible) forbiddenBytecode("String_Node_Str",bcodes.index());
emit_monitorenter();
break;
}
case JBC_monitorexit:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
if (VM.VerifyUnint && isUninterruptible) forbiddenBytecode("String_Node_Str",bcodes.index());
emit_monitorexit();
break;
}
case JBC_wide:
{
int widecode=bcodes.getWideOpcode();
int index=bcodes.getWideLocalNumber();
switch (widecode) {
case JBC_iload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_iload(index);
break;
}
case JBC_lload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_lload(index);
break;
}
case JBC_fload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_fload(index);
break;
}
case JBC_dload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_dload(index);
break;
}
case JBC_aload:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_aload(index);
break;
}
case JBC_istore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_istore(index);
break;
}
case JBC_lstore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_lstore(index);
break;
}
case JBC_fstore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_fstore(index);
break;
}
case JBC_dstore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_dstore(index);
break;
}
case JBC_astore:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_astore(index);
break;
}
case JBC_iinc:
{
int val=bcodes.getWideIncrement();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index,val);
emit_iinc(index,val);
break;
}
case JBC_ret:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",index);
emit_ret(index);
break;
}
default :
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
}
break;
}
case JBC_multianewarray:
{
TypeReference typeRef=bcodes.getTypeReference();
int dimensions=bcodes.getArrayDimension();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",typeRef);
if (VM.VerifyUnint && !isInterruptible) forbiddenBytecode("String_Node_Str",bcodes.index());
emit_multianewarray(typeRef,dimensions);
break;
}
case JBC_ifnull:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifnull(bTarget);
break;
}
case JBC_ifnonnull:
{
int offset=bcodes.getBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_ifnonnull(bTarget);
break;
}
case JBC_goto_w:
{
int offset=bcodes.getWideBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
if (offset <= 0) emit_threadSwitchTest(RVMThread.BACKEDGE);
emit_goto(bTarget);
break;
}
case JBC_jsr_w:
{
int offset=bcodes.getWideBranchOffset();
int bTarget=biStart + offset;
if (shouldPrint) asm.noteBranchBytecode(biStart,"String_Node_Str",offset,bTarget);
emit_jsr(bTarget);
break;
}
case JBC_impdep1:
{
if (VM.BuildForAdaptiveSystem) {
int pseudo_opcode=bcodes.nextPseudoInstruction();
switch (pseudo_opcode) {
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadIntConst:
{
int value=bcodes.readIntConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",value);
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateIntSizeLiteral(value));
emit_ldc(offset,CP_INT);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadLongConst:
{
long value=bcodes.readLongConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",value);
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateLongSizeLiteral(value));
emit_ldc2(offset,CP_LONG);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadWordConst:
{
if (VM.BuildFor32Addr) {
int value=bcodes.readIntConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str" + Integer.toHexString(value));
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateIntSizeLiteral(value));
emit_ldc(offset,CP_INT);
}
 else {
long value=bcodes.readLongConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str" + Long.toHexString(value));
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateLongSizeLiteral(value));
emit_ldc2(offset,CP_LONG);
emit_l2i();
}
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadFloatConst:
{
int ibits=bcodes.readIntConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",ibits);
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateIntSizeLiteral(ibits));
emit_ldc(offset,CP_FLOAT);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadDoubleConst:
{
long lbits=bcodes.readLongConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",lbits);
Offset offset=Offset.fromIntSignExtend(Statics.findOrCreateLongSizeLiteral(lbits));
emit_ldc2(offset,CP_DOUBLE);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_LoadRetAddrConst:
{
int bcIndex=bcodes.readIntConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",bcIndex);
emit_loadretaddrconst(bcIndex);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_InvokeStatic:
{
int targetidx=bcodes.readIntConst();
RVMMethod methodRef=InvokeStatic.targetMethod(targetidx);
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",methodRef);
emit_resolved_invokestatic(methodRef.getMemberRef().asMethodReference());
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_InvokeCompiledMethod:
{
int cmid=bcodes.readIntConst();
int origIdx=bcodes.readIntConst();
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str",cmid);
this.pendingCMID=cmid;
this.pendingIdx=origIdx + this.method.getOsrPrologueLength();
this.pendingRef=emit_pending_goto(this.pendingIdx);
break;
}
case org.jikesrvm.osr.OSRConstants.PSEUDO_ParamInitEnd:
{
if (shouldPrint) asm.noteBytecode(biStart,"String_Node_Str");
emit_deferred_prologue();
break;
}
default :
if (VM.TraceOnStackReplacement) {
VM.sysWrite("String_Node_Str" + VM.intAsHexString(pseudo_opcode) + "String_Node_Str");
}
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
break;
}
}
 else {
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
}
break;
}
default :
VM.sysWrite("String_Node_Str" + Services.getHexString(code,false) + "String_Node_Str");
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
}
ending_bytecode();
}
bytecodeMap[bcodes.length()]=asm.getMachineCodeIndex();
return asm.finalizeMachineCode(bytecodeMap);
}