hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp
changeset 38209 b2a58604e046
parent 38190 ff9ac612c723
child 39970 7b433c06ccfd
equal deleted inserted replaced
38208:ff63d43b0480 38209:b2a58604e046
   501       stub = VM_Version::cpuinfo_cont_addr();
   501       stub = VM_Version::cpuinfo_cont_addr();
   502     }
   502     }
   503 
   503 
   504     if (thread->thread_state() == _thread_in_vm) {
   504     if (thread->thread_state() == _thread_in_vm) {
   505       if (sig == SIGBUS && info->si_code == BUS_OBJERR && thread->doing_unsafe_access()) {
   505       if (sig == SIGBUS && info->si_code == BUS_OBJERR && thread->doing_unsafe_access()) {
   506         stub = StubRoutines::handler_for_unsafe_access();
   506         address next_pc = Assembler::locate_next_instruction(pc);
       
   507         stub = SharedRuntime::handle_unsafe_access(thread, next_pc);
   507       }
   508       }
   508     }
   509     }
   509 
   510 
   510     if (thread->thread_state() == _thread_in_Java) {
   511     if (thread->thread_state() == _thread_in_Java) {
   511       // Support Safepoint Polling
   512       // Support Safepoint Polling
   518         // Do not crash the VM in such a case.
   519         // Do not crash the VM in such a case.
   519         CodeBlob* cb = CodeCache::find_blob_unsafe(pc);
   520         CodeBlob* cb = CodeCache::find_blob_unsafe(pc);
   520         if (cb != NULL) {
   521         if (cb != NULL) {
   521           CompiledMethod* nm = cb->as_compiled_method_or_null();
   522           CompiledMethod* nm = cb->as_compiled_method_or_null();
   522           if (nm != NULL && nm->has_unsafe_access()) {
   523           if (nm != NULL && nm->has_unsafe_access()) {
   523             stub = StubRoutines::handler_for_unsafe_access();
   524             address next_pc = Assembler::locate_next_instruction(pc);
       
   525             stub = SharedRuntime::handle_unsafe_access(thread, next_pc);
   524           }
   526           }
   525         }
   527         }
   526       }
   528       }
   527       else
   529       else
   528       if (sig == SIGFPE && info->si_code == FPE_INTDIV) {
   530       if (sig == SIGFPE && info->si_code == FPE_INTDIV) {