equal
deleted
inserted
replaced
969 __ jump(RuntimeAddress(SharedRuntime::get_ic_miss_stub())); |
969 __ jump(RuntimeAddress(SharedRuntime::get_ic_miss_stub())); |
970 } |
970 } |
971 |
971 |
972 address c2i_entry = __ pc(); |
972 address c2i_entry = __ pc(); |
973 |
973 |
974 BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
|
975 bs->c2i_entry_barrier(masm); |
|
976 |
|
977 // Class initialization barrier for static methods |
974 // Class initialization barrier for static methods |
|
975 address c2i_no_clinit_check_entry = NULL; |
978 if (VM_Version::supports_fast_class_init_checks()) { |
976 if (VM_Version::supports_fast_class_init_checks()) { |
979 Label L_skip_barrier; |
977 Label L_skip_barrier; |
980 Register method = rbx; |
978 Register method = rbx; |
981 |
979 |
982 { // Bypass the barrier for non-static methods |
980 { // Bypass the barrier for non-static methods |
991 __ clinit_barrier(klass, r15_thread, &L_skip_barrier /*L_fast_path*/); |
989 __ clinit_barrier(klass, r15_thread, &L_skip_barrier /*L_fast_path*/); |
992 |
990 |
993 __ jump(RuntimeAddress(SharedRuntime::get_handle_wrong_method_stub())); // slow path |
991 __ jump(RuntimeAddress(SharedRuntime::get_handle_wrong_method_stub())); // slow path |
994 |
992 |
995 __ bind(L_skip_barrier); |
993 __ bind(L_skip_barrier); |
996 } |
994 c2i_no_clinit_check_entry = __ pc(); |
|
995 } |
|
996 |
|
997 BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
|
998 bs->c2i_entry_barrier(masm); |
997 |
999 |
998 gen_c2i_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs, skip_fixup); |
1000 gen_c2i_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs, skip_fixup); |
999 |
1001 |
1000 __ flush(); |
1002 __ flush(); |
1001 return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry); |
1003 return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry, c2i_no_clinit_check_entry); |
1002 } |
1004 } |
1003 |
1005 |
1004 int SharedRuntime::c_calling_convention(const BasicType *sig_bt, |
1006 int SharedRuntime::c_calling_convention(const BasicType *sig_bt, |
1005 VMRegPair *regs, |
1007 VMRegPair *regs, |
1006 VMRegPair *regs2, |
1008 VMRegPair *regs2, |