< prev index next >

src/hotspot/cpu/aarch64/frame_aarch64.hpp

Print this page

116   intptr_t*   _fp; // frame pointer
117   // The interpreter and adapters will extend the frame of the caller.
118   // Since oopMaps are based on the sp of the caller before extension
119   // we need to know that value. However in order to compute the address
120   // of the return address we need the real "raw" sp. Since sparc already
121   // uses sp() to mean "raw" sp and unextended_sp() to mean the caller's
122   // original sp we use that convention.
123 
124   intptr_t*     _unextended_sp;
125   void adjust_unextended_sp();
126 
127   // true means _sp value is correct and we can use it to get the sender's sp
128   // of the compiled frame, otherwise, _sp value may be invalid and we can use
129   // _fp to get the sender's sp if PreserveFramePointer is enabled.
130   bool _sp_is_trusted;
131 
132   intptr_t* ptr_at_addr(int offset) const {
133     return (intptr_t*) addr_at(offset);
134   }
135 



136 #ifdef ASSERT
137   // Used in frame::sender_for_{interpreter,compiled}_frame
138   static void verify_deopt_original_pc(   CompiledMethod* nm, intptr_t* unextended_sp);
139 #endif
140 
141  public:
142   // Constructors
143 
144   frame(intptr_t* sp, intptr_t* fp, address pc);
145 
146   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc);
147 
148   frame(intptr_t* sp, intptr_t* fp);
149 
150   void init(intptr_t* sp, intptr_t* fp, address pc);
151 
152   // accessors for the instance variables
153   // Note: not necessarily the real 'frame pointer' (see real_fp)
154   intptr_t*   fp() const { return _fp; }
155 

116   intptr_t*   _fp; // frame pointer
117   // The interpreter and adapters will extend the frame of the caller.
118   // Since oopMaps are based on the sp of the caller before extension
119   // we need to know that value. However in order to compute the address
120   // of the return address we need the real "raw" sp. Since sparc already
121   // uses sp() to mean "raw" sp and unextended_sp() to mean the caller's
122   // original sp we use that convention.
123 
124   intptr_t*     _unextended_sp;
125   void adjust_unextended_sp();
126 
127   // true means _sp value is correct and we can use it to get the sender's sp
128   // of the compiled frame, otherwise, _sp value may be invalid and we can use
129   // _fp to get the sender's sp if PreserveFramePointer is enabled.
130   bool _sp_is_trusted;
131 
132   intptr_t* ptr_at_addr(int offset) const {
133     return (intptr_t*) addr_at(offset);
134   }
135 
136   // Support for scalarized inline type calling convention
137   intptr_t* repair_sender_sp(intptr_t* sender_sp, intptr_t** saved_fp_addr) const;
138 
139 #ifdef ASSERT
140   // Used in frame::sender_for_{interpreter,compiled}_frame
141   static void verify_deopt_original_pc(   CompiledMethod* nm, intptr_t* unextended_sp);
142 #endif
143 
144  public:
145   // Constructors
146 
147   frame(intptr_t* sp, intptr_t* fp, address pc);
148 
149   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc);
150 
151   frame(intptr_t* sp, intptr_t* fp);
152 
153   void init(intptr_t* sp, intptr_t* fp, address pc);
154 
155   // accessors for the instance variables
156   // Note: not necessarily the real 'frame pointer' (see real_fp)
157   intptr_t*   fp() const { return _fp; }
158 
< prev index next >