src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp
changeset 57594 61c2e3e7315d
parent 55653 3243c42d737d
child 58679 9c3209ff7550
child 58959 b7b170ba3ba9
equal deleted inserted replaced
57593:f40a73b61b5e 57594:61c2e3e7315d
   477         thread->set_pending_unsafe_access_error();
   477         thread->set_pending_unsafe_access_error();
   478         os::Linux::ucontext_set_pc(uc, pc + Assembler::instr_len(pc));
   478         os::Linux::ucontext_set_pc(uc, pc + Assembler::instr_len(pc));
   479         return true;
   479         return true;
   480       }
   480       }
   481     }
   481     }
       
   482 
       
   483     // jni_fast_Get<Primitive>Field can trap at certain pc's if a GC kicks in
       
   484     // and the heap gets shrunk before the field access.
       
   485     if ((sig == SIGSEGV) || (sig == SIGBUS)) {
       
   486       address addr = JNI_FastGetField::find_slowcase_pc(pc);
       
   487       if (addr != (address)-1) {
       
   488         stub = addr;
       
   489       }
       
   490     }
   482   }
   491   }
   483 
   492 
   484   if (stub != NULL) {
   493   if (stub != NULL) {
   485     // Save all thread context in case we need to restore it.
   494     // Save all thread context in case we need to restore it.
   486     if (thread != NULL) thread->set_saved_exception_pc(pc);
   495     if (thread != NULL) thread->set_saved_exception_pc(pc);