< prev index next >

src/hotspot/cpu/x86/interpreterRT_x86_32.cpp

Print this page

        

*** 69,78 **** --- 69,82 ---- void InterpreterRuntime::SignatureHandlerGenerator::pass_object() { box (offset(), jni_offset() + 1); } + void InterpreterRuntime::SignatureHandlerGenerator::pass_valuetype() { + box (offset(), jni_offset() + 1); + } + void InterpreterRuntime::SignatureHandlerGenerator::move(int from_offset, int to_offset) { __ movl(temp(), Address(from(), Interpreter::local_offset_in_bytes(from_offset))); __ movl(Address(to(), to_offset * wordSize), temp()); }
*** 135,144 **** --- 139,155 ---- // pass address of from intptr_t from_addr = (intptr_t)(_from + Interpreter::local_offset_in_bytes(0)); *_to++ = (*(intptr_t*)from_addr == 0) ? NULL_WORD : from_addr; _from -= Interpreter::stackElementSize; } + + virtual void pass_valuetype() { + // pass address of from + intptr_t from_addr = (intptr_t)(_from + Interpreter::local_offset_in_bytes(0)); + *_to++ = (*(intptr_t*)from_addr == 0) ? NULL_WORD : from_addr; + _from -= Interpreter::stackElementSize; + } public: SlowSignatureHandler(const methodHandle& method, address from, intptr_t* to) : NativeSignatureIterator(method) { _from = from;
< prev index next >