src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp
changeset 58959 b7b170ba3ba9
parent 57594 61c2e3e7315d
equal deleted inserted replaced
58958:7bfe7df764a2 58959:b7b170ba3ba9
     1 /*
     1 /*
     2  * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
     3  * Copyright (c) 2016, 2019 SAP SE. All rights reserved.
     4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     5  *
     5  *
     6  * This code is free software; you can redistribute it and/or modify it
     6  * This code is free software; you can redistribute it and/or modify it
     7  * under the terms of the GNU General Public License version 2 only, as
     7  * under the terms of the GNU General Public License version 2 only, as
     8  * published by the Free Software Foundation.
     8  * published by the Free Software Foundation.
   424           tty->print_cr("trap: null_check at " INTPTR_FORMAT " (SIGSEGV)", p2i(pc));
   424           tty->print_cr("trap: null_check at " INTPTR_FORMAT " (SIGSEGV)", p2i(pc));
   425         }
   425         }
   426         stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL);
   426         stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL);
   427       }
   427       }
   428 
   428 
       
   429 #ifdef COMPILER2
   429       // SIGTRAP-based implicit range check in compiled code.
   430       // SIGTRAP-based implicit range check in compiled code.
   430       else if (sig == SIGFPE && TrapBasedRangeChecks &&
   431       else if (sig == SIGFPE && TrapBasedRangeChecks &&
   431                (trap_pc != NULL) &&
   432                (trap_pc != NULL) &&
   432                Assembler::is_sigtrap_range_check(trap_pc)) {
   433                Assembler::is_sigtrap_range_check(trap_pc)) {
   433         if (TraceTraps) {
   434         if (TraceTraps) {
   434           tty->print_cr("trap: RANGE_CHECK at " INTPTR_FORMAT " (SIGFPE)", p2i(trap_pc));
   435           tty->print_cr("trap: RANGE_CHECK at " INTPTR_FORMAT " (SIGFPE)", p2i(trap_pc));
   435         }
   436         }
   436         stub = SharedRuntime::continuation_for_implicit_exception(thread, trap_pc, SharedRuntime::IMPLICIT_NULL);
   437         stub = SharedRuntime::continuation_for_implicit_exception(thread, trap_pc, SharedRuntime::IMPLICIT_NULL);
   437       }
   438       }
       
   439 #endif
   438 
   440 
   439       else if (sig == SIGFPE && info->si_code == FPE_INTDIV) {
   441       else if (sig == SIGFPE && info->si_code == FPE_INTDIV) {
   440         stub = SharedRuntime::continuation_for_implicit_exception(thread, trap_pc, SharedRuntime::IMPLICIT_DIVIDE_BY_ZERO);
   442         stub = SharedRuntime::continuation_for_implicit_exception(thread, trap_pc, SharedRuntime::IMPLICIT_DIVIDE_BY_ZERO);
   441       }
   443       }
   442 
   444