< prev index next >

src/hotspot/cpu/x86/frame_x86.hpp

Print this page

106     *ptr_at_addr(offset) = value;
107   }
108 
109  private:
110   // an additional field beyond _sp and _pc:
111   intptr_t*   _fp; // frame pointer
112   // The interpreter and adapters will extend the frame of the caller.
113   // Since oopMaps are based on the sp of the caller before extension
114   // we need to know that value. However in order to compute the address
115   // of the return address we need the real "raw" sp. By convention we
116   // use sp() to mean "raw" sp and unextended_sp() to mean the caller's
117   // original sp.
118 
119   intptr_t*     _unextended_sp;
120   void adjust_unextended_sp() NOT_DEBUG_RETURN;
121 
122   intptr_t* ptr_at_addr(int offset) const {
123     return (intptr_t*) addr_at(offset);
124   }
125 



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

106     *ptr_at_addr(offset) = value;
107   }
108 
109  private:
110   // an additional field beyond _sp and _pc:
111   intptr_t*   _fp; // frame pointer
112   // The interpreter and adapters will extend the frame of the caller.
113   // Since oopMaps are based on the sp of the caller before extension
114   // we need to know that value. However in order to compute the address
115   // of the return address we need the real "raw" sp. By convention we
116   // use sp() to mean "raw" sp and unextended_sp() to mean the caller's
117   // original sp.
118 
119   intptr_t*     _unextended_sp;
120   void adjust_unextended_sp() NOT_DEBUG_RETURN;
121 
122   intptr_t* ptr_at_addr(int offset) const {
123     return (intptr_t*) addr_at(offset);
124   }
125 
126   // Support for scalarized inline type calling convention
127   intptr_t* repair_sender_sp(intptr_t* sender_sp, intptr_t** saved_fp_addr) const;
128 
129 #ifdef ASSERT
130   // Used in frame::sender_for_{interpreter,compiled}_frame
131   static void verify_deopt_original_pc(CompiledMethod* nm, intptr_t* unextended_sp);
132 #endif
133 
134  public:
135   // Constructors
136 
137   frame(intptr_t* sp, intptr_t* fp, address pc);
138 
139   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc);
140 
141   frame(intptr_t* sp, intptr_t* fp);
142 
143   void init(intptr_t* sp, intptr_t* fp, address pc);
144 
145   // accessors for the instance variables
146   // Note: not necessarily the real 'frame pointer' (see real_fp)
147   intptr_t*   fp() const { return _fp; }
148 
< prev index next >