8218994: Consolidate indy and condy JVM information within a BootstrapInfo data structure

Introduce BootstrapInfo data structure and merge invocation of a bootstrap method for condy and indy into invoke_bootstrap_method.

Co-authored-by: John Rose <john.r.rose@oracle.com>
Reviewed-by: acorn, coleenp
This commit is contained in:
Lois Foltan 2019-04-23 14:09:54 -04:00
parent fd3378a73e
commit 57aaf7a8cd
8 changed files with 534 additions and 325 deletions

View file

@ -74,6 +74,7 @@
// of placeholders must hold the SystemDictionary_lock.
//
class BootstrapInfo;
class ClassFileStream;
class Dictionary;
class PlaceholderTable;
@ -221,6 +222,7 @@ class OopStorage;
class SystemDictionary : AllStatic {
friend class BootstrapInfo;
friend class VMStructs;
friend class SystemDictionaryHandles;
@ -531,21 +533,7 @@ public:
TRAPS);
// ask Java to compute a constant by invoking a BSM given a Dynamic_info CP entry
static Handle link_dynamic_constant(Klass* caller,
int condy_index,
Handle bootstrap_specifier,
Symbol* name,
Symbol* type,
TRAPS);
// ask Java to create a dynamic call site, while linking an invokedynamic op
static methodHandle find_dynamic_call_site_invoker(Klass* caller,
int indy_index,
Handle bootstrap_method,
Symbol* name,
Symbol* type,
Handle *appendix_result,
TRAPS);
static void invoke_bootstrap_method(BootstrapInfo& bootstrap_specifier, TRAPS);
// Record the error when the first attempt to resolve a reference from a constant
// pool entry to a class fails.