< prev index next >

src/hotspot/share/oops/stackChunkOop.hpp

Print this page

138   inline bool requires_barriers();
139 
140   template <BarrierType>
141   void do_barriers();
142 
143   template <BarrierType, ChunkFrames frames, typename RegisterMapT>
144   inline void do_barriers(const StackChunkFrameStream<frames>& f, const RegisterMapT* map);
145 
146   template <typename RegisterMapT>
147   void fix_thawed_frame(const frame& f, const RegisterMapT* map);
148 
149   template <class StackChunkFrameClosureType>
150   inline void iterate_stack(StackChunkFrameClosureType* closure);
151 
152   // Derived pointers are relativized, with respect to their oop base.
153   void relativize_derived_pointers_concurrently();
154   void transform();
155 
156   inline void* gc_data() const;
157   inline BitMapView bitmap() const;
158   inline BitMap::idx_t bit_index_for(intptr_t* p) const;
159   inline intptr_t* address_for_bit(BitMap::idx_t index) const;
160   template <typename OopT> inline BitMap::idx_t bit_index_for(OopT* p) const;
161   template <typename OopT> inline OopT* address_for_bit(BitMap::idx_t index) const;
162 
163   MemRegion range();
164 
165   // Returns a relative frame (with offset_sp, offset_unextended_sp, and offset_fp) that can be held
166   // during safepoints.  This is orthogonal to the relativizing of the actual content of interpreted frames.
167   // To be used, frame objects need to be derelativized with `derelativize`.
168   inline frame relativize(frame fr) const;
169   inline frame derelativize(frame fr) const;
170 
171   frame top_frame(RegisterMap* map);
172   frame sender(const frame& fr, RegisterMap* map);
173 
174   inline int relativize_usp_offset(const frame& fr, const int usp_offset_in_bytes) const;
175   inline address usp_offset_to_location(const frame& fr, const int usp_offset_in_bytes) const;
176   inline address reg_to_location(const frame& fr, const RegisterMap* map, VMReg reg) const;
177 
178   // Access to relativized interpreter frames (both the frame object and frame content are relativized)

138   inline bool requires_barriers();
139 
140   template <BarrierType>
141   void do_barriers();
142 
143   template <BarrierType, ChunkFrames frames, typename RegisterMapT>
144   inline void do_barriers(const StackChunkFrameStream<frames>& f, const RegisterMapT* map);
145 
146   template <typename RegisterMapT>
147   void fix_thawed_frame(const frame& f, const RegisterMapT* map);
148 
149   template <class StackChunkFrameClosureType>
150   inline void iterate_stack(StackChunkFrameClosureType* closure);
151 
152   // Derived pointers are relativized, with respect to their oop base.
153   void relativize_derived_pointers_concurrently();
154   void transform();
155 
156   inline void* gc_data() const;
157   inline BitMapView bitmap() const;
158   inline BitMap::idx_t bit_index_for(address p) const;
159   inline intptr_t* address_for_bit(BitMap::idx_t index) const;
160   template <typename OopT> inline BitMap::idx_t bit_index_for(OopT* p) const;
161   template <typename OopT> inline OopT* address_for_bit(BitMap::idx_t index) const;
162 
163   MemRegion range();
164 
165   // Returns a relative frame (with offset_sp, offset_unextended_sp, and offset_fp) that can be held
166   // during safepoints.  This is orthogonal to the relativizing of the actual content of interpreted frames.
167   // To be used, frame objects need to be derelativized with `derelativize`.
168   inline frame relativize(frame fr) const;
169   inline frame derelativize(frame fr) const;
170 
171   frame top_frame(RegisterMap* map);
172   frame sender(const frame& fr, RegisterMap* map);
173 
174   inline int relativize_usp_offset(const frame& fr, const int usp_offset_in_bytes) const;
175   inline address usp_offset_to_location(const frame& fr, const int usp_offset_in_bytes) const;
176   inline address reg_to_location(const frame& fr, const RegisterMap* map, VMReg reg) const;
177 
178   // Access to relativized interpreter frames (both the frame object and frame content are relativized)
< prev index next >