< prev index next >

src/share/vm/classfile/systemDictionary.hpp

Print this page

        

*** 31,40 **** --- 31,41 ---- #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,199 **** --- 191,204 ---- 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,226 **** --- 212,239 ---- 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,405 **** --- 409,420 ---- } 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 >