@@ -675,7 +675,6 @@ static void patch_callers_callsite(MacroAssembler *masm) {
675
675
__ bind (L);
676
676
}
677
677
678
-
679
678
static void gen_c2i_adapter (MacroAssembler *masm,
680
679
int total_args_passed,
681
680
int comp_args_on_stack,
@@ -826,19 +825,6 @@ static void gen_c2i_adapter(MacroAssembler *masm,
826
825
__ jmp (rcx);
827
826
}
828
827
829
- static void range_check (MacroAssembler* masm, Register pc_reg, Register temp_reg,
830
- address code_start, address code_end,
831
- Label& L_ok) {
832
- Label L_fail;
833
- __ lea (temp_reg, AddressLiteral (code_start, relocInfo::none));
834
- __ cmpptr (pc_reg, temp_reg);
835
- __ jcc (Assembler::belowEqual, L_fail);
836
- __ lea (temp_reg, AddressLiteral (code_end, relocInfo::none));
837
- __ cmpptr (pc_reg, temp_reg);
838
- __ jcc (Assembler::below, L_ok);
839
- __ bind (L_fail);
840
- }
841
-
842
828
void SharedRuntime::gen_i2c_adapter (MacroAssembler *masm,
843
829
int total_args_passed,
844
830
int comp_args_on_stack,
@@ -871,41 +857,6 @@ void SharedRuntime::gen_i2c_adapter(MacroAssembler *masm,
871
857
// If this happens, control eventually transfers back to the compiled
872
858
// caller, but with an uncorrected stack, causing delayed havoc.
873
859
874
- if (VerifyAdapterCalls &&
875
- (Interpreter::code () != nullptr || StubRoutines::final_stubs_code () != nullptr )) {
876
- // So, let's test for cascading c2i/i2c adapters right now.
877
- // assert(Interpreter::contains($return_addr) ||
878
- // StubRoutines::contains($return_addr),
879
- // "i2c adapter must return to an interpreter frame");
880
- __ block_comment (" verify_i2c { " );
881
- // Pick up the return address
882
- __ movptr (rax, Address (rsp, 0 ));
883
- Label L_ok;
884
- if (Interpreter::code () != nullptr ) {
885
- range_check (masm, rax, r11,
886
- Interpreter::code ()->code_start (),
887
- Interpreter::code ()->code_end (),
888
- L_ok);
889
- }
890
- if (StubRoutines::initial_stubs_code () != nullptr ) {
891
- range_check (masm, rax, r11,
892
- StubRoutines::initial_stubs_code ()->code_begin (),
893
- StubRoutines::initial_stubs_code ()->code_end (),
894
- L_ok);
895
- }
896
- if (StubRoutines::final_stubs_code () != nullptr ) {
897
- range_check (masm, rax, r11,
898
- StubRoutines::final_stubs_code ()->code_begin (),
899
- StubRoutines::final_stubs_code ()->code_end (),
900
- L_ok);
901
- }
902
- const char * msg = " i2c adapter must return to an interpreter frame" ;
903
- __ block_comment (msg);
904
- __ stop (msg);
905
- __ bind (L_ok);
906
- __ block_comment (" } verify_i2ce " );
907
- }
908
-
909
860
// Must preserve original SP for loading incoming arguments because
910
861
// we need to align the outgoing SP for compiled code.
911
862
__ movptr (r11, rsp);
@@ -1050,12 +1001,12 @@ void SharedRuntime::gen_i2c_adapter(MacroAssembler *masm,
1050
1001
}
1051
1002
1052
1003
// ---------------------------------------------------------------
1053
- AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters (MacroAssembler *masm,
1054
- int total_args_passed,
1055
- int comp_args_on_stack,
1056
- const BasicType *sig_bt,
1057
- const VMRegPair *regs,
1058
- AdapterFingerPrint* fingerprint ) {
1004
+ void SharedRuntime::generate_i2c2i_adapters (MacroAssembler *masm,
1005
+ int total_args_passed,
1006
+ int comp_args_on_stack,
1007
+ const BasicType *sig_bt,
1008
+ const VMRegPair *regs,
1009
+ AdapterHandlerEntry* handler ) {
1059
1010
address i2c_entry = __ pc ();
1060
1011
1061
1012
gen_i2c_adapter (masm, total_args_passed, comp_args_on_stack, sig_bt, regs);
@@ -1117,7 +1068,8 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm
1117
1068
1118
1069
gen_c2i_adapter (masm, total_args_passed, comp_args_on_stack, sig_bt, regs, skip_fixup);
1119
1070
1120
- return AdapterHandlerLibrary::new_entry (fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry, c2i_no_clinit_check_entry);
1071
+ handler->set_entry_points (i2c_entry, c2i_entry, c2i_unverified_entry, c2i_no_clinit_check_entry);
1072
+ return ;
1121
1073
}
1122
1074
1123
1075
int SharedRuntime::c_calling_convention (const BasicType *sig_bt,
0 commit comments