comparison src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents 2c2a99f6cf83
children 52b4284cb496
comparison
equal deleted inserted replaced
14908:8db6e76cb658 14909:4ca6dc0799b6
1 /* 1 /*
2 * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
473 else if (sig == SIGBUS && info->si_code == BUS_OBJERR) { 473 else if (sig == SIGBUS && info->si_code == BUS_OBJERR) {
474 // BugId 4454115: A read from a MappedByteBuffer can fault 474 // BugId 4454115: A read from a MappedByteBuffer can fault
475 // here if the underlying file has been truncated. 475 // here if the underlying file has been truncated.
476 // Do not crash the VM in such a case. 476 // Do not crash the VM in such a case.
477 CodeBlob* cb = CodeCache::find_blob_unsafe(pc); 477 CodeBlob* cb = CodeCache::find_blob_unsafe(pc);
478 if (cb != NULL) { 478 nmethod* nm = cb->is_nmethod() ? (nmethod*)cb : NULL;
479 nmethod* nm = cb->is_nmethod() ? (nmethod*)cb : NULL; 479 if (nm != NULL && nm->has_unsafe_access()) {
480 if (nm != NULL && nm->has_unsafe_access()) { 480 stub = StubRoutines::handler_for_unsafe_access();
481 stub = StubRoutines::handler_for_unsafe_access();
482 }
483 } 481 }
484 } 482 }
485 else 483 else
486 if (sig == SIGFPE && info->si_code == FPE_INTDIV) { 484 if (sig == SIGFPE && info->si_code == FPE_INTDIV) {
487 // integer divide by zero 485 // integer divide by zero
724 722
725 VMError err(t, sig, pc, info, ucVoid); 723 VMError err(t, sig, pc, info, ucVoid);
726 err.report_and_die(); 724 err.report_and_die();
727 725
728 ShouldNotReachHere(); 726 ShouldNotReachHere();
729 return false;
730 } 727 }
731 728
732 void os::print_context(outputStream *st, void *context) { 729 void os::print_context(outputStream *st, void *context) {
733 if (context == NULL) return; 730 if (context == NULL) return;
734 731