< prev index next >

src/hotspot/share/code/nmethod.hpp

Print this page

        

*** 110,119 **** --- 110,125 ---- // pc during a deopt. int _orig_pc_offset; int _compile_id; // which compilation made this nmethod int _comp_level; // compilation level + int _nr_oops; + public: + int nr_oops() const { return _nr_oops; } + void verify_nr_oops(); + int count_oops(); + private: // protected by CodeCache_lock bool _has_flushed_dependencies; // Used for maintenance of dependencies (CodeCache_lock) // used by jvmti to track if an unload event has been posted for this nmethod.
*** 433,442 **** --- 439,450 ---- address osr_entry() const { assert(is_osr_method(), "wrong kind of nmethod"); return _osr_entry_point; } void invalidate_osr_method(); nmethod* osr_link() const { return _osr_link; } void set_osr_link(nmethod *n) { _osr_link = n; } + void set_immediate_oops_patched(int nr) { _nr_oops += nr; } + // Verify calls to dead methods have been cleaned. void verify_clean_inline_caches(); // unlink and deallocate this nmethod // Only NMethodSweeper class is expected to use this. NMethodSweeper is not
*** 473,504 **** return jvmci_data_size() == 0 ? NULL : (JVMCINMethodData*) jvmci_data_begin(); } #endif public: ! void oops_do(OopClosure* f) { oops_do(f, false); } ! void oops_do(OopClosure* f, bool allow_dead); bool test_set_oops_do_mark(); static void oops_do_marking_prologue(); static void oops_do_marking_epilogue(); static bool oops_do_marking_is_active() { return _oops_do_mark_nmethods != NULL; } bool test_oops_do_mark() { return _oops_do_mark_link != NULL; } private: ScopeDesc* scope_desc_in(address begin, address end); - address* orig_pc_addr(const frame* fr); - public: // copying of debugging information void copy_scopes_pcs(PcDesc* pcs, int count); void copy_scopes_data(address buffer, int size); ! // Accessor/mutator for the original pc of a frame before a frame was deopted. ! address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); } ! void set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; } // jvmti support: void post_compiled_method_load_event(); jmethodID get_and_cache_jmethod_id(); --- 481,509 ---- return jvmci_data_size() == 0 ? NULL : (JVMCINMethodData*) jvmci_data_begin(); } #endif public: ! void oops_do_keepalive(OopClosure* f, bool keepalive) { oops_do(f, false, false, keepalive); } ! void oops_do(OopClosure* f) { oops_do(f, false, false); } ! void oops_do(OopClosure* f, bool allow_dead, bool allow_null = false, bool shadow_is_strong = false); bool test_set_oops_do_mark(); static void oops_do_marking_prologue(); static void oops_do_marking_epilogue(); static bool oops_do_marking_is_active() { return _oops_do_mark_nmethods != NULL; } bool test_oops_do_mark() { return _oops_do_mark_link != NULL; } private: ScopeDesc* scope_desc_in(address begin, address end); public: // copying of debugging information void copy_scopes_pcs(PcDesc* pcs, int count); void copy_scopes_data(address buffer, int size); ! int orig_pc_offset() { return _orig_pc_offset; } // jvmti support: void post_compiled_method_load_event(); jmethodID get_and_cache_jmethod_id();
< prev index next >