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