< prev index next > src/hotspot/share/opto/runtime.hpp
Print this page
#undef C2_STUB_ID_ENUM_DECLARE
#undef C2_JVMTI_STUB_ID_ENUM_DECLARE
class OptoRuntime : public AllStatic {
friend class Matcher; // allow access to stub names
-
+ friend class SCAddressTable;
private:
// declare opto stub address/blob holder static fields
#define C2_BLOB_FIELD_DECLARE(name, type) \
static type BLOB_FIELD_NAME(name);
#define C2_STUB_FIELD_NAME(name) _ ## name ## _Java
static const char *_stub_names[];
// define stubs
static address generate_stub(ciEnv* ci_env, TypeFunc_generator gen, address C_function, const char* name, int is_fancy_jump, bool pass_tls, bool return_pc);
+ static address _vtable_must_compile_Java;
+
//
// Implementation of runtime methods
// =================================
// Allocate storage for a Java instance.
static void generate_uncommon_trap_blob(void);
static void generate_exception_blob();
static void register_finalizer_C(oopDesc* obj, JavaThread* current);
-
+ static void class_init_barrier_C(Klass* k, JavaThread* current);
public:
static bool is_callee_saved_register(MachRegisterNumbers reg);
// One time only generate runtime code stubs. Returns true
static address multianewarray2_Java() { return _multianewarray2_Java; }
static address multianewarray3_Java() { return _multianewarray3_Java; }
static address multianewarray4_Java() { return _multianewarray4_Java; }
static address multianewarray5_Java() { return _multianewarray5_Java; }
static address multianewarrayN_Java() { return _multianewarrayN_Java; }
+ static address vtable_must_compile_stub() { return _vtable_must_compile_Java; }
static address complete_monitor_locking_Java() { return _complete_monitor_locking_Java; }
static address monitor_notify_Java() { return _monitor_notify_Java; }
static address monitor_notifyAll_Java() { return _monitor_notifyAll_Java; }
static address slow_arraycopy_Java() { return _slow_arraycopy_Java; }
static address register_finalizer_Java() { return _register_finalizer_Java; }
+ static address class_init_barrier_Java() { return _class_init_barrier_Java; }
#if INCLUDE_JVMTI
static address notify_jvmti_vthread_start() { return _notify_jvmti_vthread_start; }
static address notify_jvmti_vthread_end() { return _notify_jvmti_vthread_end; }
static address notify_jvmti_vthread_mount() { return _notify_jvmti_vthread_mount; }
static address notify_jvmti_vthread_unmount() { return _notify_jvmti_vthread_unmount; }
// leaf on stack replacement interpreter accessor types
static const TypeFunc* osr_end_Type();
static const TypeFunc* register_finalizer_Type();
+ static const TypeFunc* class_init_barrier_Type();
+
JFR_ONLY(static const TypeFunc* class_id_load_barrier_Type();)
#if INCLUDE_JVMTI
static const TypeFunc* notify_jvmti_vthread_Type();
#endif
static NamedCounter* new_named_counter(JVMState* jvms, NamedCounter::CounterTag tag);
// dumps all the named counters
static void print_named_counters();
+ public:
+ static void init_counters();
+ static void print_counters_on(outputStream* st);
};
#endif // SHARE_OPTO_RUNTIME_HPP
< prev index next >