equal
deleted
inserted
replaced
30 #include "code/vtableStubs.hpp" |
30 #include "code/vtableStubs.hpp" |
31 #include "gc/shared/gcLocker.hpp" |
31 #include "gc/shared/gcLocker.hpp" |
32 #include "interpreter/interpreter.hpp" |
32 #include "interpreter/interpreter.hpp" |
33 #include "interpreter/interp_masm.hpp" |
33 #include "interpreter/interp_masm.hpp" |
34 #include "memory/resourceArea.hpp" |
34 #include "memory/resourceArea.hpp" |
|
35 #include "nativeInst_s390.hpp" |
35 #include "oops/compiledICHolder.hpp" |
36 #include "oops/compiledICHolder.hpp" |
36 #include "oops/klass.inline.hpp" |
37 #include "oops/klass.inline.hpp" |
37 #include "registerSaver_s390.hpp" |
38 #include "registerSaver_s390.hpp" |
38 #include "runtime/safepointMechanism.hpp" |
39 #include "runtime/safepointMechanism.hpp" |
39 #include "runtime/sharedRuntime.hpp" |
40 #include "runtime/sharedRuntime.hpp" |
1519 int compile_id, |
1520 int compile_id, |
1520 BasicType *in_sig_bt, |
1521 BasicType *in_sig_bt, |
1521 VMRegPair *in_regs, |
1522 VMRegPair *in_regs, |
1522 BasicType ret_type, |
1523 BasicType ret_type, |
1523 address critical_entry) { |
1524 address critical_entry) { |
1524 #ifdef COMPILER2 |
|
1525 int total_in_args = method->size_of_parameters(); |
1525 int total_in_args = method->size_of_parameters(); |
1526 if (method->is_method_handle_intrinsic()) { |
1526 if (method->is_method_handle_intrinsic()) { |
1527 vmIntrinsics::ID iid = method->intrinsic_id(); |
1527 vmIntrinsics::ID iid = method->intrinsic_id(); |
1528 intptr_t start = (intptr_t) __ pc(); |
1528 intptr_t start = (intptr_t) __ pc(); |
1529 int vep_offset = ((intptr_t) __ pc()) - start; |
1529 int vep_offset = ((intptr_t) __ pc()) - start; |
2399 if (is_critical_native) { |
2399 if (is_critical_native) { |
2400 nm->set_lazy_critical_native(true); |
2400 nm->set_lazy_critical_native(true); |
2401 } |
2401 } |
2402 |
2402 |
2403 return nm; |
2403 return nm; |
2404 #else |
|
2405 ShouldNotReachHere(); |
|
2406 return NULL; |
|
2407 #endif // COMPILER2 |
|
2408 } |
2404 } |
2409 |
2405 |
2410 static address gen_c2i_adapter(MacroAssembler *masm, |
2406 static address gen_c2i_adapter(MacroAssembler *masm, |
2411 int total_args_passed, |
2407 int total_args_passed, |
2412 int comp_args_on_stack, |
2408 int comp_args_on_stack, |
2878 // The return_pc has been stored in the frame of the deoptee and |
2874 // The return_pc has been stored in the frame of the deoptee and |
2879 // will replace the address of the deopt_handler in the call |
2875 // will replace the address of the deopt_handler in the call |
2880 // to Deoptimization::fetch_unroll_info below. |
2876 // to Deoptimization::fetch_unroll_info below. |
2881 // The (int) cast is necessary, because -((unsigned int)14) |
2877 // The (int) cast is necessary, because -((unsigned int)14) |
2882 // is an unsigned int. |
2878 // is an unsigned int. |
2883 __ add2reg(Z_R14, -(int)HandlerImpl::size_deopt_handler()); |
2879 __ add2reg(Z_R14, -(int)NativeCall::max_instruction_size()); |
2884 |
2880 |
2885 const Register exec_mode_reg = Z_tmp_1; |
2881 const Register exec_mode_reg = Z_tmp_1; |
2886 |
2882 |
2887 // stack: (deoptee, caller of deoptee, ...) |
2883 // stack: (deoptee, caller of deoptee, ...) |
2888 |
2884 |