< prev index next >

src/hotspot/share/gc/shared/barrierSetNMethod.hpp

Print this page
*** 30,23 ***
  #include "utilities/sizes.hpp"
  
  class nmethod;
  
  class BarrierSetNMethod: public CHeapObj<mtGC> {
    void deoptimize(nmethod* nm, address* return_addr_ptr);
-   int disarmed_value() const;
  
  public:
    bool supports_entry_barrier(nmethod* nm);
  
!   virtual bool nmethod_entry_barrier(nmethod* nm) = 0;
!   virtual ByteSize thread_disarmed_offset() const = 0;
!   virtual int* disarmed_value_address() const = 0;
  
    static int nmethod_stub_entry_barrier(address* return_address_ptr);
    bool nmethod_osr_entry_barrier(nmethod* nm);
    bool is_armed(nmethod* nm);
    void disarm(nmethod* nm);
  };
  
  
  #endif // SHARE_GC_SHARED_BARRIERSETNMETHOD_HPP
--- 30,30 ---
  #include "utilities/sizes.hpp"
  
  class nmethod;
  
  class BarrierSetNMethod: public CHeapObj<mtGC> {
+ private:
+   int _current_phase;
    void deoptimize(nmethod* nm, address* return_addr_ptr);
  
  public:
+   BarrierSetNMethod() : _current_phase(1) { }
    bool supports_entry_barrier(nmethod* nm);
  
!   virtual bool nmethod_entry_barrier(nmethod* nm);
!   virtual ByteSize thread_disarmed_offset() const;
!   virtual int* disarmed_value_address() const;
+ 
+   int disarmed_value() const;
  
    static int nmethod_stub_entry_barrier(address* return_address_ptr);
    bool nmethod_osr_entry_barrier(nmethod* nm);
    bool is_armed(nmethod* nm);
    void disarm(nmethod* nm);
+   void arm(nmethod* nm, int arm_value);
+ 
+   void arm_all_nmethods();
  };
  
  
  #endif // SHARE_GC_SHARED_BARRIERSETNMETHOD_HPP
< prev index next >