src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
changeset 57594 61c2e3e7315d
parent 55653 3243c42d737d
child 58679 9c3209ff7550
equal deleted inserted replaced
57593:f40a73b61b5e 57594:61c2e3e7315d
   500         next_pc = SharedRuntime::handle_unsafe_access(thread, next_pc);
   500         next_pc = SharedRuntime::handle_unsafe_access(thread, next_pc);
   501         os::Linux::ucontext_set_pc(uc, next_pc);
   501         os::Linux::ucontext_set_pc(uc, next_pc);
   502         return true;
   502         return true;
   503       }
   503       }
   504     }
   504     }
       
   505 
       
   506     // jni_fast_Get<Primitive>Field can trap at certain pc's if a GC kicks in
       
   507     // and the heap gets shrunk before the field access.
       
   508     if ((sig == SIGSEGV) || (sig == SIGBUS)) {
       
   509       address addr = JNI_FastGetField::find_slowcase_pc(pc);
       
   510       if (addr != (address)-1) {
       
   511         stub = addr;
       
   512       }
       
   513     }
   505   }
   514   }
   506 
   515 
   507   if (stub != NULL) {
   516   if (stub != NULL) {
   508     // Save all thread context in case we need to restore it.
   517     // Save all thread context in case we need to restore it.
   509     if (thread != NULL) thread->set_saved_exception_pc(pc);
   518     if (thread != NULL) thread->set_saved_exception_pc(pc);