< prev index next >

src/hotspot/share/c1/c1_InstructionPrinter.cpp

Print this page
*** 25,10 ***
--- 25,11 ---
  #include "precompiled.hpp"
  #include "classfile/vmSymbols.hpp"
  #include "c1/c1_InstructionPrinter.hpp"
  #include "c1/c1_ValueStack.hpp"
  #include "ci/ciArray.hpp"
+ #include "ci/ciInlineKlass.hpp"
  #include "ci/ciInstance.hpp"
  #include "ci/ciObject.hpp"
  
  
  #ifndef PRODUCT

*** 379,11 ***
  }
  
  
  void InstructionPrinter::do_LoadIndexed(LoadIndexed* x) {
    print_indexed(x);
!   output()->print(" (%c)", type2char(x->elt_type()));
    if (x->check_flag(Instruction::NeedsRangeCheckFlag)) {
      output()->print(" [rc]");
    }
  }
  
--- 380,16 ---
  }
  
  
  void InstructionPrinter::do_LoadIndexed(LoadIndexed* x) {
    print_indexed(x);
!   if (x->delayed() != NULL) {
+     output()->print(" +%d", x->delayed()->offset());
+     output()->print(" (%c)", type2char(x->delayed()->field()->type()->basic_type()));
+   } else {
+     output()->print(" (%c)", type2char(x->elt_type()));
+   }
    if (x->check_flag(Instruction::NeedsRangeCheckFlag)) {
      output()->print(" [rc]");
    }
  }
  

*** 493,10 ***
--- 499,14 ---
    output()->print("new %s array [", basic_type_name(x->elt_type()));
    print_value(x->length());
    output()->put(']');
  }
  
+ void InstructionPrinter::do_NewInlineTypeInstance(NewInlineTypeInstance* x) {
+   output()->print("new inline type instance ");
+   print_klass(x->klass());
+ }
  
  void InstructionPrinter::do_NewObjectArray(NewObjectArray* x) {
    output()->print("new object array [");
    print_value(x->length());
    output()->print("] ");

*** 513,10 ***
--- 523,15 ---
    }
    output()->print("] ");
    print_klass(x->klass());
  }
  
+ void InstructionPrinter::do_Deoptimize(Deoptimize* x) {
+   output()->print("deoptimize [unloaded=");
+   print_klass(x->klass());
+   output()->print("] ");
+ }
  
  void InstructionPrinter::do_MonitorEnter(MonitorEnter* x) {
    output()->print("enter ");
    print_monitor(x);
  }

*** 857,17 ***
--- 872,25 ---
    output()->print("profile ret type ");
    print_value(x->ret());
    output()->print(" %s.%s", x->method()->holder()->name()->as_utf8(), x->method()->name()->as_utf8());
    output()->put(')');
  }
+ 
  void InstructionPrinter::do_ProfileInvoke(ProfileInvoke* x) {
    output()->print("profile_invoke ");
    output()->print(" %s.%s", x->inlinee()->holder()->name()->as_utf8(), x->inlinee()->name()->as_utf8());
    output()->put(')');
  
  }
  
+ void InstructionPrinter::do_ProfileACmpTypes(ProfileACmpTypes* x) {
+   output()->print("profile acmp types ");
+   print_value(x->left());
+   output()->print(", ");
+   print_value(x->right());
+ }
+ 
  void InstructionPrinter::do_RuntimeCall(RuntimeCall* x) {
    output()->print("call_rt %s(", x->entry_name());
    for (int i = 0; i < x->number_of_arguments(); i++) {
      if (i > 0) output()->print(", ");
      print_value(x->argument_at(i));
< prev index next >