Mercurial > hg > graal-jvmci-8
comparison src/cpu/x86/vm/templateInterpreter_x86_32.cpp @ 1565:ab102d5d923e
6939207: refactor constant pool index processing
Summary: Factored cleanup of instruction decode which prepares for enhanced ldc semantics.
Reviewed-by: twisti
author | jrose |
---|---|
date | Sun, 23 May 2010 01:38:26 -0700 |
parents | 2338d41fbd81 |
children | e9ff18c4ace7 |
comparison
equal
deleted
inserted
replaced
1564:61b2245abf36 | 1565:ab102d5d923e |
---|---|
212 Label L_got_cache, L_giant_index; | 212 Label L_got_cache, L_giant_index; |
213 if (EnableInvokeDynamic) { | 213 if (EnableInvokeDynamic) { |
214 __ cmpb(Address(rsi, 0), Bytecodes::_invokedynamic); | 214 __ cmpb(Address(rsi, 0), Bytecodes::_invokedynamic); |
215 __ jcc(Assembler::equal, L_giant_index); | 215 __ jcc(Assembler::equal, L_giant_index); |
216 } | 216 } |
217 __ get_cache_and_index_at_bcp(rbx, rcx, 1, false); | 217 __ get_cache_and_index_at_bcp(rbx, rcx, 1, sizeof(u2)); |
218 __ bind(L_got_cache); | 218 __ bind(L_got_cache); |
219 __ movl(rbx, Address(rbx, rcx, | 219 __ movl(rbx, Address(rbx, rcx, |
220 Address::times_ptr, constantPoolCacheOopDesc::base_offset() + | 220 Address::times_ptr, constantPoolCacheOopDesc::base_offset() + |
221 ConstantPoolCacheEntry::flags_offset())); | 221 ConstantPoolCacheEntry::flags_offset())); |
222 __ andptr(rbx, 0xFF); | 222 __ andptr(rbx, 0xFF); |
224 __ dispatch_next(state, step); | 224 __ dispatch_next(state, step); |
225 | 225 |
226 // out of the main line of code... | 226 // out of the main line of code... |
227 if (EnableInvokeDynamic) { | 227 if (EnableInvokeDynamic) { |
228 __ bind(L_giant_index); | 228 __ bind(L_giant_index); |
229 __ get_cache_and_index_at_bcp(rbx, rcx, 1, true); | 229 __ get_cache_and_index_at_bcp(rbx, rcx, 1, sizeof(u4)); |
230 __ jmp(L_got_cache); | 230 __ jmp(L_got_cache); |
231 } | 231 } |
232 | 232 |
233 return entry; | 233 return entry; |
234 } | 234 } |