|
1 | 1 | /*
|
2 |
| - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. |
3 |
| - * Copyright (c) 2016, 2017, SAP SE. All rights reserved. |
| 2 | + * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. |
| 3 | + * Copyright (c) 2016, 2019, SAP SE. All rights reserved. |
4 | 4 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
5 | 5 | *
|
6 | 6 | * This code is free software; you can redistribute it and/or modify it
|
@@ -1985,7 +1985,6 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
|
1985 | 1985 | return;
|
1986 | 1986 | }
|
1987 | 1987 |
|
1988 |
| - Label done; |
1989 | 1988 | // Save outgoing arguments in callee saved registers (C convention) in case
|
1990 | 1989 | // a call to System.arraycopy is needed.
|
1991 | 1990 | Register callee_saved_src = Z_R10;
|
@@ -2157,7 +2156,7 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
|
2157 | 2156 | store_parameter(src_klass, 0); // sub
|
2158 | 2157 | store_parameter(dst_klass, 1); // super
|
2159 | 2158 | emit_call_c(Runtime1::entry_for (Runtime1::slow_subtype_check_id));
|
2160 |
| - CHECK_BAILOUT(); |
| 2159 | + CHECK_BAILOUT2(cont, slow); |
2161 | 2160 | // Sets condition code 0 for match (2 otherwise).
|
2162 | 2161 | __ branch_optimized(Assembler::bcondEqual, cont);
|
2163 | 2162 |
|
@@ -2216,7 +2215,7 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
|
2216 | 2215 | __ z_lg(Z_ARG5, Address(Z_ARG5, ObjArrayKlass::element_klass_offset()));
|
2217 | 2216 | __ z_lg(Z_ARG4, Address(Z_ARG5, Klass::super_check_offset_offset()));
|
2218 | 2217 | emit_call_c(copyfunc_addr);
|
2219 |
| - CHECK_BAILOUT(); |
| 2218 | + CHECK_BAILOUT2(cont, slow); |
2220 | 2219 |
|
2221 | 2220 | #ifndef PRODUCT
|
2222 | 2221 | if (PrintC1Statistics) {
|
@@ -2571,7 +2570,7 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
|
2571 | 2570 | store_parameter(klass_RInfo, 0); // sub
|
2572 | 2571 | store_parameter(k_RInfo, 1); // super
|
2573 | 2572 | emit_call_c(a); // Sets condition code 0 for match (2 otherwise).
|
2574 |
| - CHECK_BAILOUT(); |
| 2573 | + CHECK_BAILOUT2(profile_cast_failure, profile_cast_success); |
2575 | 2574 | __ branch_optimized(Assembler::bcondNotEqual, *failure_target);
|
2576 | 2575 | // Fall through to success case.
|
2577 | 2576 | }
|
@@ -2654,7 +2653,7 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
|
2654 | 2653 | store_parameter(klass_RInfo, 0); // sub
|
2655 | 2654 | store_parameter(k_RInfo, 1); // super
|
2656 | 2655 | emit_call_c(a); // Sets condition code 0 for match (2 otherwise).
|
2657 |
| - CHECK_BAILOUT(); |
| 2656 | + CHECK_BAILOUT3(profile_cast_success, profile_cast_failure, done); |
2658 | 2657 | __ branch_optimized(Assembler::bcondNotEqual, *failure_target);
|
2659 | 2658 | // Fall through to success case.
|
2660 | 2659 |
|
|
0 commit comments