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