comparison src/share/vm/runtime/sharedRuntime.cpp @ 2494:e88293edf07c

Fixed an issue with alignment of double/long values in the code buffer. Can now run Scimark again. Results for Scimark on i5 (client/graal/server) are (625/634/1120). Bootstrap of C1X is at 3.7s.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 22 Apr 2011 21:13:09 +0200
parents 0654ee04b214
children 98fa88528319
comparison
equal deleted inserted replaced
2493:d8891d81dc8e 2494:e88293edf07c
696 address pc, 696 address pc,
697 SharedRuntime::ImplicitExceptionKind exception_kind) 697 SharedRuntime::ImplicitExceptionKind exception_kind)
698 { 698 {
699 address target_pc = NULL; 699 address target_pc = NULL;
700 700
701 if (TraceSignals) {
702 tty->print_cr("Searching for continuation for implicit exception at %d", pc);
703 }
704
701 if (Interpreter::contains(pc)) { 705 if (Interpreter::contains(pc)) {
702 #ifdef CC_INTERP 706 #ifdef CC_INTERP
703 // C++ interpreter doesn't throw implicit exceptions 707 // C++ interpreter doesn't throw implicit exceptions
704 ShouldNotReachHere(); 708 ShouldNotReachHere();
705 #else 709 #else
794 guarantee(nm != NULL, "must have containing nmethod for implicit division-by-zero exceptions"); 798 guarantee(nm != NULL, "must have containing nmethod for implicit division-by-zero exceptions");
795 #ifndef PRODUCT 799 #ifndef PRODUCT
796 _implicit_div0_throws++; 800 _implicit_div0_throws++;
797 #endif 801 #endif
798 if (UseC1X) { 802 if (UseC1X) {
799 tty->print_cr("c1x implicit div0"); 803 if (TraceSignals) {
804 tty->print_cr("c1x implicit div0");
805 }
800 target_pc = Runtime1::entry_for(Runtime1::c1x_throw_div0_exception_id); 806 target_pc = Runtime1::entry_for(Runtime1::c1x_throw_div0_exception_id);
801 } else { 807 } else {
802 target_pc = nm->continuation_for_implicit_exception(pc); 808 target_pc = nm->continuation_for_implicit_exception(pc);
803 } 809 }
804 // If there's an unexpected fault, target_pc might be NULL, 810 // If there's an unexpected fault, target_pc might be NULL,