725 // OopMapCache support
726 OopMapCache* oop_map_cache() { return _oop_map_cache; }
727 void set_oop_map_cache(OopMapCache *cache) { _oop_map_cache = cache; }
728 void mask_for(methodHandle method, int bci, InterpreterOopMap* entry);
729
730 // JNI identifier support (for static fields - for jni performance)
731 JNIid* jni_ids() { return _jni_ids; }
732 void set_jni_ids(JNIid* ids) { _jni_ids = ids; }
733 JNIid* jni_id_for(int offset);
734
735 // maintenance of deoptimization dependencies
736 int mark_dependent_nmethods(DepChange& changes);
737 void add_dependent_nmethod(nmethod* nm);
738 void remove_dependent_nmethod(nmethod* nm);
739
740 // On-stack replacement support
741 nmethod* osr_nmethods_head() const { return _osr_nmethods_head; };
742 void set_osr_nmethods_head(nmethod* h) { _osr_nmethods_head = h; };
743 void add_osr_nmethod(nmethod* n);
744 void remove_osr_nmethod(nmethod* n);
745 nmethod* lookup_osr_nmethod(const Method* m, int bci, int level, bool match_level) const;
746
747 // Breakpoint support (see methods on Method* for details)
748 BreakpointInfo* breakpoints() const { return _breakpoints; };
749 void set_breakpoints(BreakpointInfo* bps) { _breakpoints = bps; };
750
751 // support for stub routines
752 static ByteSize init_state_offset() { return in_ByteSize(offset_of(InstanceKlass, _init_state)); }
753 TRACE_DEFINE_OFFSET;
754 static ByteSize init_thread_offset() { return in_ByteSize(offset_of(InstanceKlass, _init_thread)); }
755
756 // subclass/subinterface checks
757 bool implements_interface(Klass* k) const;
758 bool is_same_or_direct_interface(Klass* k) const;
759
760 #ifdef ASSERT
761 // check whether this class or one of its superclasses was redefined
762 bool has_redefined_this_or_super() const;
763 #endif
764
765 // Access to the implementor of an interface.
|
725 // OopMapCache support
726 OopMapCache* oop_map_cache() { return _oop_map_cache; }
727 void set_oop_map_cache(OopMapCache *cache) { _oop_map_cache = cache; }
728 void mask_for(methodHandle method, int bci, InterpreterOopMap* entry);
729
730 // JNI identifier support (for static fields - for jni performance)
731 JNIid* jni_ids() { return _jni_ids; }
732 void set_jni_ids(JNIid* ids) { _jni_ids = ids; }
733 JNIid* jni_id_for(int offset);
734
735 // maintenance of deoptimization dependencies
736 int mark_dependent_nmethods(DepChange& changes);
737 void add_dependent_nmethod(nmethod* nm);
738 void remove_dependent_nmethod(nmethod* nm);
739
740 // On-stack replacement support
741 nmethod* osr_nmethods_head() const { return _osr_nmethods_head; };
742 void set_osr_nmethods_head(nmethod* h) { _osr_nmethods_head = h; };
743 void add_osr_nmethod(nmethod* n);
744 void remove_osr_nmethod(nmethod* n);
745 nmethod* lookup_osr_nmethod(const Method* m, int bci, int level, bool match_level, bool skip_marked = false) const;
746
747 // Breakpoint support (see methods on Method* for details)
748 BreakpointInfo* breakpoints() const { return _breakpoints; };
749 void set_breakpoints(BreakpointInfo* bps) { _breakpoints = bps; };
750
751 // support for stub routines
752 static ByteSize init_state_offset() { return in_ByteSize(offset_of(InstanceKlass, _init_state)); }
753 TRACE_DEFINE_OFFSET;
754 static ByteSize init_thread_offset() { return in_ByteSize(offset_of(InstanceKlass, _init_thread)); }
755
756 // subclass/subinterface checks
757 bool implements_interface(Klass* k) const;
758 bool is_same_or_direct_interface(Klass* k) const;
759
760 #ifdef ASSERT
761 // check whether this class or one of its superclasses was redefined
762 bool has_redefined_this_or_super() const;
763 #endif
764
765 // Access to the implementor of an interface.
|