< prev index next >

src/hotspot/share/runtime/stackChunkFrameStream.hpp

Print this page

 52 #ifndef PRODUCT
 53   stackChunkOop _chunk;
 54   int _index;
 55 #endif
 56 
 57 #ifdef ASSERT
 58   int _has_stub;
 59 #endif
 60 
 61 public:
 62   StackChunkFrameStream() { NOT_PRODUCT(_chunk = nullptr; _index = -1;) DEBUG_ONLY(_has_stub = false;) }
 63   inline StackChunkFrameStream(stackChunkOop chunk);
 64   inline StackChunkFrameStream(stackChunkOop chunk, const frame& f);
 65 
 66   bool is_done() const { return _sp >= _end; }
 67 
 68   // Query
 69   intptr_t*        sp() const  { return _sp; }
 70   inline address   pc() const  { return get_pc(); }
 71   inline intptr_t* fp() const;
 72   inline intptr_t* unextended_sp() const { return frame_kind == ChunkFrames::Mixed ? _unextended_sp : _sp; }
 73   inline address orig_pc() const;
 74 
 75   inline bool is_interpreted() const;
 76   inline bool is_stub() const;
 77   inline bool is_compiled() const;
 78   CodeBlob* cb() const { return _cb; }
 79   inline void get_cb();
 80   const ImmutableOopMap* oopmap() const { if (_oopmap == nullptr) get_oopmap(); return _oopmap; }
 81   inline int frame_size() const;
 82   inline int stack_argsize() const;
 83   template <typename RegisterMapT>
 84   inline int num_oops(RegisterMapT* map) const;
 85 
 86   inline void initialize_register_map(RegisterMap* map);
 87   template <typename RegisterMapT> inline void next(RegisterMapT* map, bool stop = false);
 88 
 89   template <typename RegisterMapT> inline void update_reg_map(RegisterMapT* map);
 90 
 91   void handle_deopted() const;
 92 

 52 #ifndef PRODUCT
 53   stackChunkOop _chunk;
 54   int _index;
 55 #endif
 56 
 57 #ifdef ASSERT
 58   int _has_stub;
 59 #endif
 60 
 61 public:
 62   StackChunkFrameStream() { NOT_PRODUCT(_chunk = nullptr; _index = -1;) DEBUG_ONLY(_has_stub = false;) }
 63   inline StackChunkFrameStream(stackChunkOop chunk);
 64   inline StackChunkFrameStream(stackChunkOop chunk, const frame& f);
 65 
 66   bool is_done() const { return _sp >= _end; }
 67 
 68   // Query
 69   intptr_t*        sp() const  { return _sp; }
 70   inline address   pc() const  { return get_pc(); }
 71   inline intptr_t* fp() const;
 72   inline intptr_t* unextended_sp() const { return _unextended_sp; }
 73   inline address orig_pc() const;
 74 
 75   inline bool is_interpreted() const;
 76   inline bool is_stub() const;
 77   inline bool is_compiled() const;
 78   CodeBlob* cb() const { return _cb; }
 79   inline void get_cb();
 80   const ImmutableOopMap* oopmap() const { if (_oopmap == nullptr) get_oopmap(); return _oopmap; }
 81   inline int frame_size() const;
 82   inline int stack_argsize() const;
 83   template <typename RegisterMapT>
 84   inline int num_oops(RegisterMapT* map) const;
 85 
 86   inline void initialize_register_map(RegisterMap* map);
 87   template <typename RegisterMapT> inline void next(RegisterMapT* map, bool stop = false);
 88 
 89   template <typename RegisterMapT> inline void update_reg_map(RegisterMapT* map);
 90 
 91   void handle_deopted() const;
 92 
< prev index next >