< prev index next >

src/hotspot/cpu/aarch64/frame_aarch64.hpp

Print this page

111     *ptr_at_addr(offset) = value;
112   }
113 
114  private:
115   // an additional field beyond _sp and _pc:
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   intptr_t* ptr_at_addr(int offset) const {
128     return (intptr_t*) addr_at(offset);
129   }
130 



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

111     *ptr_at_addr(offset) = value;
112   }
113 
114  private:
115   // an additional field beyond _sp and _pc:
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   intptr_t* ptr_at_addr(int offset) const {
128     return (intptr_t*) addr_at(offset);
129   }
130 
131   // Support for scalarized inline type calling convention
132   intptr_t* repair_sender_sp(intptr_t* sender_sp, intptr_t** saved_fp_addr) const;
133 
134 #ifdef ASSERT
135   // Used in frame::sender_for_{interpreter,compiled}_frame
136   static void verify_deopt_original_pc(   CompiledMethod* nm, intptr_t* unextended_sp);
137 #endif
138 
139  public:
140   // Constructors
141 
142   frame(intptr_t* sp, intptr_t* fp, address pc);
143 
144   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc);
145 
146   frame(intptr_t* sp, intptr_t* fp);
147 
148   void init(intptr_t* sp, intptr_t* fp, address pc);
149 
150   // accessors for the instance variables
151   // Note: not necessarily the real 'frame pointer' (see real_fp)
152   intptr_t*   fp() const { return _fp; }
153 
< prev index next >