< prev index next >

src/hotspot/share/opto/runtime.hpp

Print this page
@@ -111,11 +111,11 @@
  #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

@@ -203,10 +203,12 @@
    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.

@@ -253,11 +255,11 @@
  
    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

@@ -281,16 +283,18 @@
    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; }

@@ -650,17 +654,22 @@
      assert(_class_id_load_barrier_Type != nullptr, "should be initialized");
      return _class_id_load_barrier_Type;
    }
  #endif // INCLUDE_JFR
  
+   static const TypeFunc* class_init_barrier_Type();
+ 
  #if INCLUDE_JVMTI
    static inline const TypeFunc* notify_jvmti_vthread_Type() {
      assert(_notify_jvmti_vthread_Type != nullptr, "should be initialized");
      return _notify_jvmti_vthread_Type;
    }
  #endif
  
+   // runtime upcalls support
+   static const TypeFunc* runtime_up_call_Type();
+ 
    // Dtrace support. entry and exit probes have the same signature
    static inline const TypeFunc* dtrace_method_entry_exit_Type() {
      assert(_dtrace_method_entry_exit_Type != nullptr, "should be initialized");
      return _dtrace_method_entry_exit_Type;
    }

@@ -679,9 +688,12 @@
   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);
   static void          initialize_types();
  };
  
  #endif // SHARE_OPTO_RUNTIME_HPP
< prev index next >