< prev index next >

src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp

Print this page

        

*** 254,263 **** --- 254,276 ---- // call. Some oop field may be live in some registers but we can't // tell. That runtime call will take care of preserving them // across a GC if there's one. __ super_call_VM_leaf(StubRoutines::store_value_type_fields_to_buf()); __ bind(skip); + + if (ReturnValuesInThreadLocalBuffer) { + // vt_alloc_ptr adjustment + Label no_adjustment; + __ cmpptr(rax, Address(r15_thread, in_bytes(JavaThread::vt_alloc_ptr_offset()))); + __ jcc(Assembler::notEqual, no_adjustment); + __ load_klass(rbx, rax); + __ movl(r13, Address(rbx, Klass::layout_helper_offset())); + __ lea(r14, Address(rax, r13, Address::times_1)); + __ movptr(Address(r15_thread, in_bytes(JavaThread::vt_alloc_ptr_offset())), r14); + __ bind(no_adjustment); + } + #endif } __ restore_bcp(); __ restore_locals();
< prev index next >