< prev index next >

src/cpu/x86/vm/templateInterpreterGenerator_x86.cpp

Print this page

        

*** 201,210 **** --- 201,217 ---- // Restore stack bottom in case i2c adjusted stack __ movptr(rsp, Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize)); // and NULL it as marker that esp is now tos until next java call __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD); + if (state == qtos && ValueTypeReturnedAsFields) { + // A value type is being returned. If fields are in registers we + // need to allocate a value type instance and initialize it with + // the value of the fields. + __ super_call_VM_leaf(StubRoutines::store_value_type_fields_to_buf()); + } + __ restore_bcp(); __ restore_locals(); if (state == atos) { Register mdp = rbx;
< prev index next >