src/cpu/x86/vm/interpreterRT_x86_32.cpp

changeset 739
dc7f315e41f7
parent 435
a61af66fc99e
child 772
9ee9cf798b59
equal deleted inserted replaced
738:fa4d1d240383 739:dc7f315e41f7
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

mercurial