Mercurial > hg > graal-jvmci-8
comparison src/share/vm/interpreter/rewriter.cpp @ 6822:f6b0eb4e44cf
7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path
Reviewed-by: jrose, kvn
author | twisti |
---|---|
date | Mon, 01 Oct 2012 14:50:10 -0700 |
parents | da91efe96a93 |
children | e522a00b91aa cc6a617fffd2 |
comparison
equal
deleted
inserted
replaced
6811:1b582b1bf7cb | 6822:f6b0eb4e44cf |
---|---|
177 if (status == 0) { | 177 if (status == 0) { |
178 if (_pool->klass_ref_at_noresolve(cp_index) == vmSymbols::java_lang_invoke_MethodHandle() && | 178 if (_pool->klass_ref_at_noresolve(cp_index) == vmSymbols::java_lang_invoke_MethodHandle() && |
179 MethodHandles::is_signature_polymorphic_name(SystemDictionary::MethodHandle_klass(), | 179 MethodHandles::is_signature_polymorphic_name(SystemDictionary::MethodHandle_klass(), |
180 _pool->name_ref_at(cp_index))) { | 180 _pool->name_ref_at(cp_index))) { |
181 // we may need a resolved_refs entry for the appendix | 181 // we may need a resolved_refs entry for the appendix |
182 add_invokedynamic_resolved_references_entry(cp_index, cache_index); | 182 add_invokedynamic_resolved_references_entries(cp_index, cache_index); |
183 status = +1; | 183 status = +1; |
184 } else { | 184 } else { |
185 status = -1; | 185 status = -1; |
186 } | 186 } |
187 _method_handle_invokers[cp_index] = status; | 187 _method_handle_invokers[cp_index] = status; |
209 address p = bcp + offset; | 209 address p = bcp + offset; |
210 assert(p[-1] == Bytecodes::_invokedynamic, "not invokedynamic bytecode"); | 210 assert(p[-1] == Bytecodes::_invokedynamic, "not invokedynamic bytecode"); |
211 if (!reverse) { | 211 if (!reverse) { |
212 int cp_index = Bytes::get_Java_u2(p); | 212 int cp_index = Bytes::get_Java_u2(p); |
213 int cache_index = add_invokedynamic_cp_cache_entry(cp_index); | 213 int cache_index = add_invokedynamic_cp_cache_entry(cp_index); |
214 add_invokedynamic_resolved_references_entry(cp_index, cache_index); | 214 add_invokedynamic_resolved_references_entries(cp_index, cache_index); |
215 // Replace the trailing four bytes with a CPC index for the dynamic | 215 // Replace the trailing four bytes with a CPC index for the dynamic |
216 // call site. Unlike other CPC entries, there is one per bytecode, | 216 // call site. Unlike other CPC entries, there is one per bytecode, |
217 // not just one per distinct CP entry. In other words, the | 217 // not just one per distinct CP entry. In other words, the |
218 // CPC-to-CP relation is many-to-one for invokedynamic entries. | 218 // CPC-to-CP relation is many-to-one for invokedynamic entries. |
219 // This means we must use a larger index size than u2 to address | 219 // This means we must use a larger index size than u2 to address |