< prev index next >
src/share/vm/classfile/systemDictionary.hpp
Print this page
@@ -31,10 +31,11 @@
#include "oops/symbol.hpp"
#include "runtime/java.hpp"
#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:
//
// [class name,class loader] -> class i.e. [Symbol*,oop] -> Klass*
@@ -190,10 +191,14 @@
do_klass(Double_klass, java_lang_Double, Pre ) \
do_klass(Byte_klass, java_lang_Byte, Pre ) \
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*/
class SystemDictionary : AllStatic {
friend class VMStructs;
@@ -207,20 +212,28 @@
WK_KLASSES_DO(WK_KLASS_ENUM)
#undef WK_KLASS_ENUM
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
};
enum InitOption {
Pre, // preloaded; error if not present
// Order is significant. Options before this point require resolve_or_fail.
// 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)
};
@@ -396,10 +409,12 @@
}
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) {
int limit = (int)end_id + 1;
initialize_wk_klasses_until((WKID) limit, start_id, THREAD);
< prev index next >