src/share/vm/c1/c1_InstructionPrinter.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/c1

src/share/vm/c1/c1_InstructionPrinter.cpp

Print this page
rev 5349 : 8023657: New type profiling points: arguments to call
Summary: x86 interpreter and c1 type profiling for arguments at calls
Reviewed-by:


 875 void InstructionPrinter::do_Assert(Assert* x) {
 876   output()->print("assert ");
 877   print_value(x->x());
 878   output()->print(" %s ", cond_name(x->cond()));
 879   print_value(x->y());
 880 }
 881 #endif
 882 
 883 void InstructionPrinter::do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) {
 884   print_unsafe_object_op(x, "UnsafePrefetchWrite");
 885   output()->put(')');
 886 }
 887 
 888 void InstructionPrinter::do_ProfileCall(ProfileCall* x) {
 889   output()->print("profile ");
 890   print_value(x->recv());
 891   output()->print(" %s.%s", x->method()->holder()->name()->as_utf8(), x->method()->name()->as_utf8());
 892   if (x->known_holder() != NULL) {
 893     output()->print(", ");
 894     print_klass(x->known_holder());








 895   }
 896   output()->put(')');
 897 }
 898 
 899 void InstructionPrinter::do_ProfileInvoke(ProfileInvoke* x) {
 900   output()->print("profile_invoke ");
 901   output()->print(" %s.%s", x->inlinee()->holder()->name()->as_utf8(), x->inlinee()->name()->as_utf8());
 902   output()->put(')');
 903 
 904 }
 905 
 906 void InstructionPrinter::do_RuntimeCall(RuntimeCall* x) {
 907   output()->print("call_rt %s(", x->entry_name());
 908   for (int i = 0; i < x->number_of_arguments(); i++) {
 909     if (i > 0) output()->print(", ");
 910     print_value(x->argument_at(i));
 911   }
 912   output()->put(')');
 913 }
 914 


 875 void InstructionPrinter::do_Assert(Assert* x) {
 876   output()->print("assert ");
 877   print_value(x->x());
 878   output()->print(" %s ", cond_name(x->cond()));
 879   print_value(x->y());
 880 }
 881 #endif
 882 
 883 void InstructionPrinter::do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) {
 884   print_unsafe_object_op(x, "UnsafePrefetchWrite");
 885   output()->put(')');
 886 }
 887 
 888 void InstructionPrinter::do_ProfileCall(ProfileCall* x) {
 889   output()->print("profile ");
 890   print_value(x->recv());
 891   output()->print(" %s.%s", x->method()->holder()->name()->as_utf8(), x->method()->name()->as_utf8());
 892   if (x->known_holder() != NULL) {
 893     output()->print(", ");
 894     print_klass(x->known_holder());
 895     output()->print(" ");
 896   }
 897   for (int i = 0; i < x->nb_profiled_args(); i++) {
 898     if (i > 0) output()->print(", ");
 899     print_value(x->profiled_arg_at(i));
 900     if (x->arg_needs_null_check(i)) {
 901       output()->print(" [NC]");
 902     }
 903   }
 904   output()->put(')');
 905 }
 906 
 907 void InstructionPrinter::do_ProfileInvoke(ProfileInvoke* x) {
 908   output()->print("profile_invoke ");
 909   output()->print(" %s.%s", x->inlinee()->holder()->name()->as_utf8(), x->inlinee()->name()->as_utf8());
 910   output()->put(')');
 911 
 912 }
 913 
 914 void InstructionPrinter::do_RuntimeCall(RuntimeCall* x) {
 915   output()->print("call_rt %s(", x->entry_name());
 916   for (int i = 0; i < x->number_of_arguments(); i++) {
 917     if (i > 0) output()->print(", ");
 918     print_value(x->argument_at(i));
 919   }
 920   output()->put(')');
 921 }
 922 
src/share/vm/c1/c1_InstructionPrinter.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File