< prev index next >

src/hotspot/share/opto/runtime.hpp

Print this page
@@ -146,10 +146,11 @@
    static const TypeFunc* _flush_windows_Type;
    static const TypeFunc* _fast_arraycopy_Type;
    static const TypeFunc* _checkcast_arraycopy_Type;
    static const TypeFunc* _generic_arraycopy_Type;
    static const TypeFunc* _slow_arraycopy_Type;
+   static const TypeFunc* _compile_method_Type;
    static const TypeFunc* _unsafe_setmemory_Type;
    static const TypeFunc* _array_fill_Type;
    static const TypeFunc* _array_sort_Type;
    static const TypeFunc* _array_partition_Type;
    static const TypeFunc* _aescrypt_block_Type;

@@ -202,10 +203,12 @@
    static const TypeFunc* _dtrace_object_alloc_Type;
  
    // define stubs
    static address generate_stub(ciEnv* ci_env, TypeFunc_generator gen, address C_function, const char* name, StubId stub_id, 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.

@@ -227,10 +230,11 @@
    // control to corresponding JRT methods of SharedRuntime
    static void slow_arraycopy_C(oopDesc* src,  jint src_pos,
                                 oopDesc* dest, jint dest_pos,
                                 jint length, JavaThread* thread);
    static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* current);
+   static void compile_method_C(Method* method, JavaThread* current);
  
  public:
    static void monitor_notify_C(oopDesc* obj, JavaThread* current);
    static void monitor_notifyAll_C(oopDesc* obj, JavaThread* current);
  

@@ -257,11 +261,11 @@
  
    static UncommonTrapBlob* generate_uncommon_trap_blob(void);
    static ExceptionBlob* 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

@@ -285,16 +289,19 @@
    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; }
+   static address compile_method_Java()                   { return _compile_method_Java; }
  
    static address vthread_end_first_transition_Java()     { return _vthread_end_first_transition_Java; }
    static address vthread_start_final_transition_Java()   { return _vthread_start_final_transition_Java; }
    static address vthread_start_transition_Java()         { return _vthread_start_transition_Java; }
    static address vthread_end_transition_Java()           { return _vthread_end_transition_Java; }

@@ -458,10 +465,15 @@
      // This signature is exactly the same as System.arraycopy.
      // There are no intptr_t (int/long) arguments.
      return _slow_arraycopy_Type;
    }   // the full routine
  
+   static inline const TypeFunc* compile_method_Type() {
+     assert(_compile_method_Type != nullptr, "should be initialized");
+     return _compile_method_Type;
+   }
+ 
    static inline const TypeFunc* unsafe_setmemory_Type() {
      assert(_unsafe_setmemory_Type != nullptr, "should be initialized");
      return _unsafe_setmemory_Type;
    }
  

@@ -743,10 +755,15 @@
      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();
+ 
+   // 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;
    }

@@ -775,9 +792,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 >