src/share/vm/runtime/sharedRuntime.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/runtime/sharedRuntime.cpp

src/share/vm/runtime/sharedRuntime.cpp

Print this page
rev 6132 : 8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9
Summary: make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points.
Reviewed-by:

*** 773,786 **** case STACK_OVERFLOW: { // Stack overflow only occurs upon frame setup; the callee is // going to be unwound. Dispatch to a shared runtime stub // which will cause the StackOverflowError to be fabricated // and processed. ! // For stack overflow in deoptimization blob, cleanup thread. ! if (thread->deopt_mark() != NULL) { ! Deoptimization::cleanup_deopt_info(thread, NULL); ! } Events::log_exception(thread, "StackOverflowError at " INTPTR_FORMAT, pc); return StubRoutines::throw_StackOverflowError_entry(); } case IMPLICIT_NULL: { --- 773,789 ---- case STACK_OVERFLOW: { // Stack overflow only occurs upon frame setup; the callee is // going to be unwound. Dispatch to a shared runtime stub // which will cause the StackOverflowError to be fabricated // and processed. ! // Stack overflow should never occur during deoptimization: ! // the compiled method bang the stack by as much as the ! // interpreter would need in case of a deoptimization. The ! // deoptimization blob and uncommon trap blob bang the stack ! // in a debug VM to verify the correctness of the compiled ! // method stack banging. ! assert(thread->deopt_mark() == NULL, "no stack overflow from deopt blob/uncommon trap"); Events::log_exception(thread, "StackOverflowError at " INTPTR_FORMAT, pc); return StubRoutines::throw_StackOverflowError_entry(); } case IMPLICIT_NULL: {
src/share/vm/runtime/sharedRuntime.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File