< prev index next >

src/hotspot/cpu/aarch64/frame_aarch64.hpp

Print this page

127   // of the return address we need the real "raw" sp. Since sparc already
128   // uses sp() to mean "raw" sp and unextended_sp() to mean the caller's
129   // original sp we use that convention.
130 
131   union {
132     intptr_t* _unextended_sp;
133     int _offset_unextended_sp; // for use in stack-chunk frames
134   };
135 
136   void adjust_unextended_sp() NOT_DEBUG_RETURN;
137 
138   // true means _sp value is correct and we can use it to get the sender's sp
139   // of the compiled frame, otherwise, _sp value may be invalid and we can use
140   // _fp to get the sender's sp if PreserveFramePointer is enabled.
141   bool _sp_is_trusted;
142 
143   intptr_t* ptr_at_addr(int offset) const {
144     return (intptr_t*) addr_at(offset);
145   }
146 



147 #ifdef ASSERT
148   // Used in frame::sender_for_{interpreter,compiled}_frame
149   static void verify_deopt_original_pc(   CompiledMethod* nm, intptr_t* unextended_sp);
150 #endif
151 
152   const ImmutableOopMap* get_oop_map() const;
153 
154  public:
155   // Constructors
156 
157   frame(intptr_t* sp, intptr_t* fp, address pc);
158 
159   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc);
160 
161   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc, CodeBlob* cb);
162   // used for fast frame construction by continuations
163   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc, CodeBlob* cb, const ImmutableOopMap* oop_map, bool on_heap);
164 
165   frame(intptr_t* sp, intptr_t* fp);
166 

127   // of the return address we need the real "raw" sp. Since sparc already
128   // uses sp() to mean "raw" sp and unextended_sp() to mean the caller's
129   // original sp we use that convention.
130 
131   union {
132     intptr_t* _unextended_sp;
133     int _offset_unextended_sp; // for use in stack-chunk frames
134   };
135 
136   void adjust_unextended_sp() NOT_DEBUG_RETURN;
137 
138   // true means _sp value is correct and we can use it to get the sender's sp
139   // of the compiled frame, otherwise, _sp value may be invalid and we can use
140   // _fp to get the sender's sp if PreserveFramePointer is enabled.
141   bool _sp_is_trusted;
142 
143   intptr_t* ptr_at_addr(int offset) const {
144     return (intptr_t*) addr_at(offset);
145   }
146 
147   // Support for scalarized inline type calling convention
148   intptr_t* repair_sender_sp(intptr_t* sender_sp, intptr_t** saved_fp_addr) const;
149 
150 #ifdef ASSERT
151   // Used in frame::sender_for_{interpreter,compiled}_frame
152   static void verify_deopt_original_pc(   CompiledMethod* nm, intptr_t* unextended_sp);
153 #endif
154 
155   const ImmutableOopMap* get_oop_map() const;
156 
157  public:
158   // Constructors
159 
160   frame(intptr_t* sp, intptr_t* fp, address pc);
161 
162   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc);
163 
164   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc, CodeBlob* cb);
165   // used for fast frame construction by continuations
166   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc, CodeBlob* cb, const ImmutableOopMap* oop_map, bool on_heap);
167 
168   frame(intptr_t* sp, intptr_t* fp);
169 
< prev index next >