< prev index next >

src/hotspot/cpu/s390/sharedRuntime_s390.cpp

Print this page

        

*** 1830,1853 **** //--------------------------------------------------------------------- // Verified entry point (VEP) //--------------------------------------------------------------------- wrapper_VEPStart = __ offset(); - if (VM_Version::supports_fast_class_init_checks() && method->needs_clinit_barrier()) { - Label L_skip_barrier; - Register klass = Z_R1_scratch; - // Notify OOP recorder (don't need the relocation) - AddressLiteral md = __ constant_metadata_address(method->method_holder()); - __ load_const_optimized(klass, md.value()); - __ clinit_barrier(klass, Z_thread, &L_skip_barrier /*L_fast_path*/); - - __ load_const_optimized(klass, SharedRuntime::get_handle_wrong_method_stub()); - __ z_br(klass); - - __ bind(L_skip_barrier); - } - __ save_return_pc(); __ generate_stack_overflow_check(frame_size_in_bytes); // Check before creating frame. #ifndef USE_RESIZE_FRAME __ push_frame(frame_size_in_bytes); // Create a new frame for the wrapper. #else --- 1830,1839 ----
*** 2708,2739 **** __ z_brne(ic_miss); // Cache miss: call runtime to handle this. // Fallthru to VEP. Duplicate LTG, but saved taken branch. } ! address c2i_entry = __ pc(); ! ! // Class initialization barrier for static methods ! if (VM_Version::supports_fast_class_init_checks()) { ! Label L_skip_barrier; ! ! { // Bypass the barrier for non-static methods ! __ testbit(Address(Z_method, Method::access_flags_offset()), JVM_ACC_STATIC_BIT); ! __ z_bfalse(L_skip_barrier); // non-static ! } ! ! Register klass = Z_R11; ! __ load_method_holder(klass, Z_method); ! __ clinit_barrier(klass, Z_thread, &L_skip_barrier /*L_fast_path*/); ! ! __ load_const_optimized(klass, SharedRuntime::get_handle_wrong_method_stub()); ! __ z_br(klass); ! ! __ bind(L_skip_barrier); ! } ! ! gen_c2i_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs, skip_fixup); return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry); } // This function returns the adjust size (in number of words) to a c2i adapter --- 2694,2705 ---- __ z_brne(ic_miss); // Cache miss: call runtime to handle this. // Fallthru to VEP. Duplicate LTG, but saved taken branch. } ! address c2i_entry; ! c2i_entry = gen_c2i_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs, skip_fixup); return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry); } // This function returns the adjust size (in number of words) to a c2i adapter
< prev index next >