< prev index next >

src/hotspot/cpu/x86/x86_64.ad

Print this page

        

*** 872,881 **** --- 872,894 ---- MacroAssembler _masm(&cbuf); int framesize = C->frame_size_in_bytes(); int bangsize = C->bang_size_in_bytes(); + if (C->clinit_barrier_on_entry()) { + assert(C->method()->holder()->is_being_initialized(), "sanity"); + Label L_skip_barrier; + Register klass = rscratch1; + + __ mov_metadata(klass, C->method()->holder()->constant_encoding()); + __ clinit_barrier(klass, r15_thread, &L_skip_barrier /*L_fast_path*/); + + __ jump(RuntimeAddress(SharedRuntime::get_handle_wrong_method_stub())); // slow path + + __ bind(L_skip_barrier); + } + __ verified_entry(framesize, C->need_stack_bang(bangsize)?bangsize:0, false, C->stub_function() != NULL); C->set_frame_complete(cbuf.insts_size()); if (C->has_mach_constant_base_node()) {
< prev index next >