< prev index next >
src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
Print this page
*** 455,466 ****
// SIGILL must be caused by VM_Version::determine_features().
*(int *)pc = 0; // patch instruction to 0 to indicate that it causes a SIGILL,
// flushing of icache is not necessary.
stub = pc + 4; // continue with next instruction.
}
! else if (thread->thread_state() == _thread_in_vm &&
! sig == SIGBUS && thread->doing_unsafe_access()) {
address next_pc = pc + 4;
next_pc = SharedRuntime::handle_unsafe_access(thread, next_pc);
os::Linux::ucontext_set_pc(uc, pc + 4);
return true;
}
--- 455,465 ----
// SIGILL must be caused by VM_Version::determine_features().
*(int *)pc = 0; // patch instruction to 0 to indicate that it causes a SIGILL,
// flushing of icache is not necessary.
stub = pc + 4; // continue with next instruction.
}
! else if (sig == SIGBUS && thread->doing_unsafe_access()) {
address next_pc = pc + 4;
next_pc = SharedRuntime::handle_unsafe_access(thread, next_pc);
os::Linux::ucontext_set_pc(uc, pc + 4);
return true;
}
< prev index next >