comparison src/share/vm/opto/runtime.cpp @ 6646:c38f13903fdf

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ just before the NPG (no perm gen) changeset
author Doug Simon <doug.simon@oracle.com>
date Mon, 29 Oct 2012 21:10:04 +0100
parents 957c266d8bc5 a5dd6e3ef9f3
children e522a00b91aa
comparison
equal deleted inserted replaced
6590:dc5eec61daba 6646:c38f13903fdf
878 intptr_t* count_p = (intptr_t*)(((byte*)(data)) + in_bytes(CounterData::count_offset())); 878 intptr_t* count_p = (intptr_t*)(((byte*)(data)) + in_bytes(CounterData::count_offset()));
879 *count_p += DataLayout::counter_increment; 879 *count_p += DataLayout::counter_increment;
880 } 880 }
881 JRT_END 881 JRT_END
882 882
883 //-----------------------------------------------------------------------------
884 // implicit exception support.
885
886 static void report_null_exception_in_code_cache(address exception_pc) {
887 ResourceMark rm;
888 CodeBlob* n = CodeCache::find_blob(exception_pc);
889 if (n != NULL) {
890 tty->print_cr("#");
891 tty->print_cr("# HotSpot Runtime Error, null exception in generated code");
892 tty->print_cr("#");
893 tty->print_cr("# pc where exception happened = " INTPTR_FORMAT, exception_pc);
894
895 if (n->is_nmethod()) {
896 methodOop method = ((nmethod*)n)->method();
897 tty->print_cr("# Method where it happened %s.%s ", Klass::cast(method->method_holder())->name()->as_C_string(), method->name()->as_C_string());
898 tty->print_cr("#");
899 if (ShowMessageBoxOnError && UpdateHotSpotCompilerFileOnError &&
900 CompilerOracle::has_command_file()) {
901 const char* title = "HotSpot Runtime Error";
902 const char* question = "Do you want to exclude compilation of this method in future runs?";
903 if (os::message_box(title, question)) {
904 CompilerOracle::append_comment_to_file("");
905 CompilerOracle::append_comment_to_file("Null exception in compiled code resulted in the following exclude");
906 CompilerOracle::append_comment_to_file("");
907 CompilerOracle::append_exclude_to_file(method);
908 tty->print_cr("#");
909 tty->print_cr("# %s has been updated to exclude the specified method", CompileCommandFile);
910 tty->print_cr("#");
911 }
912 }
913 fatal("Implicit null exception happened in compiled method");
914 } else {
915 n->print();
916 fatal("Implicit null exception happened in generated stub");
917 }
918 }
919 fatal("Implicit null exception at wrong place");
920 }
921
922
923 //------------------------------------------------------------------------------------- 883 //-------------------------------------------------------------------------------------
924 // register policy 884 // register policy
925 885
926 bool OptoRuntime::is_callee_saved_register(MachRegisterNumbers reg) { 886 bool OptoRuntime::is_callee_saved_register(MachRegisterNumbers reg) {
927 assert(reg >= 0 && reg < _last_Mach_Reg, "must be a machine register"); 887 assert(reg >= 0 && reg < _last_Mach_Reg, "must be a machine register");