Mercurial > hg > truffle
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"); |