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 } |