--- a/hotspot/src/share/vm/classfile/systemDictionary.hpp Thu Oct 08 10:25:45 2015 +0000
+++ b/hotspot/src/share/vm/classfile/systemDictionary.hpp Thu Oct 08 12:49:30 2015 -1000
@@ -33,6 +33,7 @@
#include "runtime/reflectionUtils.hpp"
#include "utilities/hashtable.hpp"
#include "utilities/hashtable.inline.hpp"
+#include "jvmci/systemDictionary_jvmci.hpp"
// The system dictionary stores all loaded classes and maps:
@@ -192,6 +193,10 @@
do_klass(Short_klass, java_lang_Short, Pre ) \
do_klass(Integer_klass, java_lang_Integer, Pre ) \
do_klass(Long_klass, java_lang_Long, Pre ) \
+ \
+ /* JVMCI classes. These are loaded on-demand. */ \
+ JVMCI_WK_KLASSES_DO(do_klass) \
+
/*end*/
@@ -209,6 +214,11 @@
WKID_LIMIT,
+#if INCLUDE_JVMCI
+ FIRST_JVMCI_WKID = WK_KLASS_ENUM_NAME(HotSpotCompiledCode_klass),
+ LAST_JVMCI_WKID = WK_KLASS_ENUM_NAME(Value_klass),
+#endif
+
FIRST_WKID = NO_WKID + 1
};
@@ -219,6 +229,9 @@
// Options after this point will use resolve_or_null instead.
Opt, // preload tried; NULL if not present
+#if INCLUDE_JVMCI
+ Jvmci, // preload tried; error if not present, use only with JVMCI
+#endif
OPTION_LIMIT,
CEIL_LG_OPTION_LIMIT = 2 // OPTION_LIMIT <= (1<<CEIL_LG_OPTION_LIMIT)
};
@@ -398,6 +411,8 @@
static Klass* check_klass_Pre( Klass* k) { return check_klass(k); }
static Klass* check_klass_Opt( Klass* k) { return k; }
+ JVMCI_ONLY(static Klass* check_klass_Jvmci(Klass* k) { return k; })
+
static bool initialize_wk_klass(WKID id, int init_opt, TRAPS);
static void initialize_wk_klasses_until(WKID limit_id, WKID &start_id, TRAPS);
static void initialize_wk_klasses_through(WKID end_id, WKID &start_id, TRAPS) {