< prev index next >
src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp
Print this page
*** 456,467 ****
} else if ((sig == SIGFPE) && VM_Version::is_determine_features_test_running()) {
// SIGFPE is known to be caused by trying to execute a vector instruction
// when the vector facility is installed, but operating system support is missing.
VM_Version::reset_has_VectorFacility();
stub = pc; // Continue with next instruction.
! } else if (thread->thread_state() == _thread_in_vm &&
! sig == SIGBUS && thread->doing_unsafe_access()) {
// We don't really need a stub here! Just set the pending exeption and
// continue at the next instruction after the faulting read. Returning
// garbage from this read is ok.
thread->set_pending_unsafe_access_error();
os::Linux::ucontext_set_pc(uc, pc + Assembler::instr_len(pc));
--- 456,466 ----
} else if ((sig == SIGFPE) && VM_Version::is_determine_features_test_running()) {
// SIGFPE is known to be caused by trying to execute a vector instruction
// when the vector facility is installed, but operating system support is missing.
VM_Version::reset_has_VectorFacility();
stub = pc; // Continue with next instruction.
! } else if (sig == SIGBUS && thread->doing_unsafe_access()) {
// We don't really need a stub here! Just set the pending exeption and
// continue at the next instruction after the faulting read. Returning
// garbage from this read is ok.
thread->set_pending_unsafe_access_error();
os::Linux::ucontext_set_pc(uc, pc + Assembler::instr_len(pc));
< prev index next >