Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/systemDictionary.hpp @ 726:be93aad57795
6655646: dynamic languages need dynamically linked call sites
Summary: invokedynamic instruction (JSR 292 RI)
Reviewed-by: twisti, never
author | jrose |
---|---|
date | Tue, 21 Apr 2009 23:21:04 -0700 |
parents | e5b0439ef4ae |
children | ad6585fd4087 |
comparison
equal
deleted
inserted
replaced
725:928912ce8438 | 726:be93aad57795 |
---|---|
140 template(BoundMethodHandle_klass, sun_dyn_BoundMethodHandle, Opt) \ | 140 template(BoundMethodHandle_klass, sun_dyn_BoundMethodHandle, Opt) \ |
141 template(DirectMethodHandle_klass, sun_dyn_DirectMethodHandle, Opt) \ | 141 template(DirectMethodHandle_klass, sun_dyn_DirectMethodHandle, Opt) \ |
142 template(MethodType_klass, java_dyn_MethodType, Opt) \ | 142 template(MethodType_klass, java_dyn_MethodType, Opt) \ |
143 template(MethodTypeForm_klass, java_dyn_MethodTypeForm, Opt) \ | 143 template(MethodTypeForm_klass, java_dyn_MethodTypeForm, Opt) \ |
144 template(WrongMethodTypeException_klass, java_dyn_WrongMethodTypeException, Opt) \ | 144 template(WrongMethodTypeException_klass, java_dyn_WrongMethodTypeException, Opt) \ |
145 template(Linkage_klass, java_dyn_Linkage, Opt) \ | |
146 template(CallSite_klass, java_dyn_CallSite, Opt) \ | |
147 template(CallSiteImpl_klass, sun_dyn_CallSiteImpl, Opt) \ | |
148 template(Dynamic_klass, java_dyn_Dynamic, Opt) \ | |
149 /* Note: MethodHandle must be first, and Dynamic last in group */ \ | |
150 \ | |
145 template(vector_klass, java_util_Vector, Pre) \ | 151 template(vector_klass, java_util_Vector, Pre) \ |
146 template(hashtable_klass, java_util_Hashtable, Pre) \ | 152 template(hashtable_klass, java_util_Hashtable, Pre) \ |
147 template(stringBuffer_klass, java_lang_StringBuffer, Pre) \ | 153 template(stringBuffer_klass, java_lang_StringBuffer, Pre) \ |
148 \ | 154 \ |
149 /* It's NULL in non-1.4 JDKs. */ \ | 155 /* It's NULL in non-1.4 JDKs. */ \ |
464 // ask Java to compute the java.dyn.MethodType object for a given signature | 470 // ask Java to compute the java.dyn.MethodType object for a given signature |
465 static Handle compute_method_handle_type(symbolHandle signature, | 471 static Handle compute_method_handle_type(symbolHandle signature, |
466 Handle class_loader, | 472 Handle class_loader, |
467 Handle protection_domain, | 473 Handle protection_domain, |
468 TRAPS); | 474 TRAPS); |
475 // ask Java to create a dynamic call site, while linking an invokedynamic op | |
476 static Handle make_dynamic_call_site(KlassHandle caller, | |
477 int caller_method_idnum, | |
478 int caller_bci, | |
479 symbolHandle name, | |
480 methodHandle mh_invoke, | |
481 TRAPS); | |
482 | |
483 // coordinate with Java about bootstrap methods | |
484 static Handle find_bootstrap_method(KlassHandle caller, | |
485 // This argument is non-null only when a | |
486 // classfile attribute has been found: | |
487 KlassHandle search_bootstrap_klass, | |
488 TRAPS); | |
489 | |
469 // Utility for printing loader "name" as part of tracing constraints | 490 // Utility for printing loader "name" as part of tracing constraints |
470 static const char* loader_name(oop loader) { | 491 static const char* loader_name(oop loader) { |
471 return ((loader) == NULL ? "<bootloader>" : | 492 return ((loader) == NULL ? "<bootloader>" : |
472 instanceKlass::cast((loader)->klass())->name()->as_C_string() ); | 493 instanceKlass::cast((loader)->klass())->name()->as_C_string() ); |
473 } | 494 } |