comparison src/share/vm/runtime/sharedRuntime.cpp @ 1936:8d88c9ac9247

Correct deopt handler entry. New flag -XX:+TraceSignals. More detailed deopt printing.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Thu, 23 Dec 2010 18:13:28 +0100
parents 2d26b0046e0d
children 00bc9eaf0e24
comparison
equal deleted inserted replaced
1935:98dbef29f10b 1936:8d88c9ac9247
728 728
729 #ifndef PRODUCT 729 #ifndef PRODUCT
730 _implicit_null_throws++; 730 _implicit_null_throws++;
731 #endif 731 #endif
732 if (UseC1X) { 732 if (UseC1X) {
733 if (TraceSignals) {
734 tty->print_cr("calling implicit call stub relative pc=%d method name = %s", pc - nm->entry_point(), nm->method()->name()->as_C_string());
735 }
733 target_pc = Runtime1::entry_for(Runtime1::c1x_global_implicit_null_id); 736 target_pc = Runtime1::entry_for(Runtime1::c1x_global_implicit_null_id);
734 } else { 737 } else {
735 target_pc = nm->continuation_for_implicit_exception(pc); 738 target_pc = nm->continuation_for_implicit_exception(pc);
736 } 739 }
737 // If there's an unexpected fault, target_pc might be NULL, 740 // If there's an unexpected fault, target_pc might be NULL,
748 guarantee(nm != NULL, "must have containing nmethod for implicit division-by-zero exceptions"); 751 guarantee(nm != NULL, "must have containing nmethod for implicit division-by-zero exceptions");
749 #ifndef PRODUCT 752 #ifndef PRODUCT
750 _implicit_div0_throws++; 753 _implicit_div0_throws++;
751 #endif 754 #endif
752 if (UseC1X) { 755 if (UseC1X) {
756 tty->print_cr("c1x implicit div0");
753 target_pc = Runtime1::entry_for(Runtime1::c1x_throw_div0_exception_id); 757 target_pc = Runtime1::entry_for(Runtime1::c1x_throw_div0_exception_id);
754 } else { 758 } else {
755 target_pc = nm->continuation_for_implicit_exception(pc); 759 target_pc = nm->continuation_for_implicit_exception(pc);
756 } 760 }
757 // If there's an unexpected fault, target_pc might be NULL, 761 // If there's an unexpected fault, target_pc might be NULL,