< prev index next >
src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
Print this page
*** 202,212 ****
// 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) {
#ifndef _LP64
__ super_call_VM_leaf(StubRoutines::store_value_type_fields_to_buf());
#else
// A value type is being returned. If fields are in registers we
// need to allocate a value type instance and initialize it with
--- 202,212 ----
// 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*/ false && ValueTypeReturnedAsFields) {
#ifndef _LP64
__ super_call_VM_leaf(StubRoutines::store_value_type_fields_to_buf());
#else
// A value type is being returned. If fields are in registers we
// need to allocate a value type instance and initialize it with
*** 1862,1877 ****
address& aep,
address& iep,
address& lep,
address& fep,
address& dep,
- address& qep,
address& vep) {
assert(t->is_valid() && t->tos_in() == vtos, "illegal template");
Label L;
aep = __ pc(); __ push_ptr(); __ jmp(L);
- qep = __ pc(); __ push_ptr(); __ jmp(L);
#ifndef _LP64
fep = __ pc(); __ push(ftos); __ jmp(L);
dep = __ pc(); __ push(dtos); __ jmp(L);
#else
fep = __ pc(); __ push_f(xmm0); __ jmp(L);
--- 1862,1875 ----
< prev index next >