48 __ movl(Address(to(), to_offset * wordSize), temp()); |
48 __ movl(Address(to(), to_offset * wordSize), temp()); |
49 } |
49 } |
50 |
50 |
51 |
51 |
52 void InterpreterRuntime::SignatureHandlerGenerator::box(int from_offset, int to_offset) { |
52 void InterpreterRuntime::SignatureHandlerGenerator::box(int from_offset, int to_offset) { |
53 __ leal(temp(), Address(from(), Interpreter::local_offset_in_bytes(from_offset))); |
53 __ lea(temp(), Address(from(), Interpreter::local_offset_in_bytes(from_offset))); |
54 __ cmpl(Address(from(), Interpreter::local_offset_in_bytes(from_offset)), 0); // do not use temp() to avoid AGI |
54 __ cmpptr(Address(from(), Interpreter::local_offset_in_bytes(from_offset)), (int32_t)NULL_WORD); // do not use temp() to avoid AGI |
55 Label L; |
55 Label L; |
56 __ jcc(Assembler::notZero, L); |
56 __ jcc(Assembler::notZero, L); |
57 __ movl(temp(), 0); |
57 __ movptr(temp(), ((int32_t)NULL_WORD)); |
58 __ bind(L); |
58 __ bind(L); |
59 __ movl(Address(to(), to_offset * wordSize), temp()); |
59 __ movptr(Address(to(), to_offset * wordSize), temp()); |
60 } |
60 } |
61 |
61 |
62 |
62 |
63 void InterpreterRuntime::SignatureHandlerGenerator::generate( uint64_t fingerprint) { |
63 void InterpreterRuntime::SignatureHandlerGenerator::generate( uint64_t fingerprint) { |
64 // generate code to handle arguments |
64 // generate code to handle arguments |