< prev index next >

src/hotspot/share/code/nmethod.hpp

Print this page

458   void set_method(Method* method) { _method = method; }
459 
460 #if INCLUDE_JVMCI
461   // Gets the JVMCI name of this nmethod.
462   const char* jvmci_name();
463 
464   // Records the pending failed speculation in the
465   // JVMCI speculation log associated with this nmethod.
466   void update_speculation(JavaThread* thread);
467 
468   // Gets the data specific to a JVMCI compiled method.
469   // This returns a non-NULL value iff this nmethod was
470   // compiled by the JVMCI compiler.
471   JVMCINMethodData* jvmci_nmethod_data() const {
472     return jvmci_data_size() == 0 ? NULL : (JVMCINMethodData*) jvmci_data_begin();
473   }
474 #endif
475 
476  public:
477   void oops_do(OopClosure* f) { oops_do(f, false); }
478   void oops_do(OopClosure* f, bool allow_zombie);
479 
480   bool test_set_oops_do_mark();
481   static void oops_do_marking_prologue();
482   static void oops_do_marking_epilogue();
483   static bool oops_do_marking_is_active() { return _oops_do_mark_nmethods != NULL; }
484   bool test_oops_do_mark() { return _oops_do_mark_link != NULL; }
485 
486  private:
487   ScopeDesc* scope_desc_in(address begin, address end);
488 
489   address* orig_pc_addr(const frame* fr);
490 
491  public:
492   // copying of debugging information
493   void copy_scopes_pcs(PcDesc* pcs, int count);
494   void copy_scopes_data(address buffer, int size);
495 
496   // Accessor/mutator for the original pc of a frame before a frame was deopted.
497   address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); }
498   void    set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; }

458   void set_method(Method* method) { _method = method; }
459 
460 #if INCLUDE_JVMCI
461   // Gets the JVMCI name of this nmethod.
462   const char* jvmci_name();
463 
464   // Records the pending failed speculation in the
465   // JVMCI speculation log associated with this nmethod.
466   void update_speculation(JavaThread* thread);
467 
468   // Gets the data specific to a JVMCI compiled method.
469   // This returns a non-NULL value iff this nmethod was
470   // compiled by the JVMCI compiler.
471   JVMCINMethodData* jvmci_nmethod_data() const {
472     return jvmci_data_size() == 0 ? NULL : (JVMCINMethodData*) jvmci_data_begin();
473   }
474 #endif
475 
476  public:
477   void oops_do(OopClosure* f) { oops_do(f, false); }
478   void oops_do(OopClosure* f, bool allow_dead);
479 
480   bool test_set_oops_do_mark();
481   static void oops_do_marking_prologue();
482   static void oops_do_marking_epilogue();
483   static bool oops_do_marking_is_active() { return _oops_do_mark_nmethods != NULL; }
484   bool test_oops_do_mark() { return _oops_do_mark_link != NULL; }
485 
486  private:
487   ScopeDesc* scope_desc_in(address begin, address end);
488 
489   address* orig_pc_addr(const frame* fr);
490 
491  public:
492   // copying of debugging information
493   void copy_scopes_pcs(PcDesc* pcs, int count);
494   void copy_scopes_data(address buffer, int size);
495 
496   // Accessor/mutator for the original pc of a frame before a frame was deopted.
497   address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); }
498   void    set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; }
< prev index next >