src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp

src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp

Print this page
rev 5903 : [mq]: deoptstackoverflowmonitor

*** 394,404 **** --- 394,411 ---- ::handle_unflushed_register_windows(uc->uc_mcontext.gwins); } if (thread->thread_state() == _thread_in_Java) { // Throw a stack overflow exception. Guard pages will be reenabled // while unwinding the stack. + CodeBlob* cb = CodeCache::find_blob_unsafe(pc); + if (cb->is_deoptimization_stub()) { + stub = ((DeoptimizationBlob*)cb)->stack_overflow(); + } else if (cb->is_uncommon_trap_stub()) { + stub = ((UncommonTrapBlob*)cb)->stack_overflow(); + } else { stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::STACK_OVERFLOW); + } } else { // Thread was in the vm or native code. Return and try to finish. return true; } } else if (thread->in_stack_red_zone(addr)) {
src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File