< prev index next >

src/hotspot/share/code/nmethod.hpp

Print this page




 407     assert(index > 0 && index <= metadata_count(), "must be a valid non-zero index");
 408     return &metadata_begin()[index - 1];
 409   }
 410 
 411   void copy_values(GrowableArray<jobject>* oops);
 412   void copy_values(GrowableArray<Metadata*>* metadata);
 413 
 414   // Relocation support
 415 private:
 416   void fix_oop_relocations(address begin, address end, bool initialize_immediates);
 417   inline void initialize_immediate_oop(oop* dest, jobject handle);
 418 
 419 public:
 420   void fix_oop_relocations(address begin, address end) { fix_oop_relocations(begin, end, false); }
 421   void fix_oop_relocations()                           { fix_oop_relocations(NULL, NULL, false); }
 422 
 423   // Sweeper support
 424   long  stack_traversal_mark()                    { return _stack_traversal_mark; }
 425   void  set_stack_traversal_mark(long l)          { _stack_traversal_mark = l; }
 426 



 427   // On-stack replacement support
 428   int   osr_entry_bci() const                     { assert(is_osr_method(), "wrong kind of nmethod"); return _entry_bci; }
 429   address  osr_entry() const                      { assert(is_osr_method(), "wrong kind of nmethod"); return _osr_entry_point; }
 430   void  invalidate_osr_method();
 431   nmethod* osr_link() const                       { return _osr_link; }
 432   void     set_osr_link(nmethod *n)               { _osr_link = n; }
 433 
 434   // Verify calls to dead methods have been cleaned.
 435   void verify_clean_inline_caches();
 436 
 437   // unlink and deallocate this nmethod
 438   // Only NMethodSweeper class is expected to use this. NMethodSweeper is not
 439   // expected to use any other private methods/data in this class.
 440 
 441  protected:
 442   void flush();
 443 
 444  public:
 445   // When true is returned, it is unsafe to remove this nmethod even if
 446   // it is a zombie, since the VM or the ServiceThread might still be




 407     assert(index > 0 && index <= metadata_count(), "must be a valid non-zero index");
 408     return &metadata_begin()[index - 1];
 409   }
 410 
 411   void copy_values(GrowableArray<jobject>* oops);
 412   void copy_values(GrowableArray<Metadata*>* metadata);
 413 
 414   // Relocation support
 415 private:
 416   void fix_oop_relocations(address begin, address end, bool initialize_immediates);
 417   inline void initialize_immediate_oop(oop* dest, jobject handle);
 418 
 419 public:
 420   void fix_oop_relocations(address begin, address end) { fix_oop_relocations(begin, end, false); }
 421   void fix_oop_relocations()                           { fix_oop_relocations(NULL, NULL, false); }
 422 
 423   // Sweeper support
 424   long  stack_traversal_mark()                    { return _stack_traversal_mark; }
 425   void  set_stack_traversal_mark(long l)          { _stack_traversal_mark = l; }
 426 
 427   // implicit exceptions support
 428   address continuation_for_implicit_exception(address pc);
 429 
 430   // On-stack replacement support
 431   int   osr_entry_bci() const                     { assert(is_osr_method(), "wrong kind of nmethod"); return _entry_bci; }
 432   address  osr_entry() const                      { assert(is_osr_method(), "wrong kind of nmethod"); return _osr_entry_point; }
 433   void  invalidate_osr_method();
 434   nmethod* osr_link() const                       { return _osr_link; }
 435   void     set_osr_link(nmethod *n)               { _osr_link = n; }
 436 
 437   // Verify calls to dead methods have been cleaned.
 438   void verify_clean_inline_caches();
 439 
 440   // unlink and deallocate this nmethod
 441   // Only NMethodSweeper class is expected to use this. NMethodSweeper is not
 442   // expected to use any other private methods/data in this class.
 443 
 444  protected:
 445   void flush();
 446 
 447  public:
 448   // When true is returned, it is unsafe to remove this nmethod even if
 449   // it is a zombie, since the VM or the ServiceThread might still be


< prev index next >