src/cpu/x86/vm/templateInterpreter_x86_64.cpp

changeset 1934
e9ff18c4ace7
parent 1907
c18cbe5936b8
parent 1920
ab102d5d923e
child 2138
d5d065957597
equal deleted inserted replaced
1917:dfe27f03244a 1934:e9ff18c4ace7
190 Label L_got_cache, L_giant_index; 190 Label L_got_cache, L_giant_index;
191 if (EnableInvokeDynamic) { 191 if (EnableInvokeDynamic) {
192 __ cmpb(Address(r13, 0), Bytecodes::_invokedynamic); 192 __ cmpb(Address(r13, 0), Bytecodes::_invokedynamic);
193 __ jcc(Assembler::equal, L_giant_index); 193 __ jcc(Assembler::equal, L_giant_index);
194 } 194 }
195 __ get_cache_and_index_at_bcp(rbx, rcx, 1, false); 195 __ get_cache_and_index_at_bcp(rbx, rcx, 1, sizeof(u2));
196 __ bind(L_got_cache); 196 __ bind(L_got_cache);
197 __ movl(rbx, Address(rbx, rcx, 197 __ movl(rbx, Address(rbx, rcx,
198 Address::times_ptr, 198 Address::times_ptr,
199 in_bytes(constantPoolCacheOopDesc::base_offset()) + 199 in_bytes(constantPoolCacheOopDesc::base_offset()) +
200 3 * wordSize)); 200 3 * wordSize));
203 __ dispatch_next(state, step); 203 __ dispatch_next(state, step);
204 204
205 // out of the main line of code... 205 // out of the main line of code...
206 if (EnableInvokeDynamic) { 206 if (EnableInvokeDynamic) {
207 __ bind(L_giant_index); 207 __ bind(L_giant_index);
208 __ get_cache_and_index_at_bcp(rbx, rcx, 1, true); 208 __ get_cache_and_index_at_bcp(rbx, rcx, 1, sizeof(u4));
209 __ jmp(L_got_cache); 209 __ jmp(L_got_cache);
210 } 210 }
211 211
212 return entry; 212 return entry;
213 } 213 }

mercurial