< prev index next >

src/cpu/x86/vm/frame_x86.hpp

Print this page




 161   // we need to know that value. However in order to compute the address
 162   // of the return address we need the real "raw" sp. Since sparc already
 163   // uses sp() to mean "raw" sp and unextended_sp() to mean the caller's
 164   // original sp we use that convention.
 165 
 166   intptr_t*     _unextended_sp;
 167   void adjust_unextended_sp();
 168 
 169   intptr_t* ptr_at_addr(int offset) const {
 170     return (intptr_t*) addr_at(offset);
 171   }
 172 
 173 #ifdef ASSERT
 174   // Used in frame::sender_for_{interpreter,compiled}_frame
 175   static void verify_deopt_original_pc(nmethod* nm, intptr_t* unextended_sp);
 176 #endif
 177 
 178  public:
 179   // Constructors
 180 
 181   frame(intptr_t* sp, intptr_t* fp, address pc);
 182 
 183   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc);
 184 
 185   frame(intptr_t* sp, intptr_t* fp);
 186 
 187   void init(intptr_t* sp, intptr_t* fp, address pc);
 188 
 189   // accessors for the instance variables
 190   // Note: not necessarily the real 'frame pointer' (see real_fp)
 191   intptr_t*   fp() const { return _fp; }
 192 
 193   inline address* sender_pc_addr() const;
 194 
 195   // return address of param, zero origin index.
 196   inline address* native_param_addr(int idx) const;
 197 
 198   // expression stack tos if we are nested in a java call
 199   intptr_t* interpreter_frame_last_sp() const;
 200 
 201   // helper to update a map with callee-saved RBP
 202   static void update_map_with_saved_link(RegisterMap* map, intptr_t** link_addr);
 203 
 204 #ifndef CC_INTERP
 205   // deoptimization support
 206   void interpreter_frame_set_last_sp(intptr_t* sp);
 207 #endif // CC_INTERP


 161   // we need to know that value. However in order to compute the address
 162   // of the return address we need the real "raw" sp. Since sparc already
 163   // uses sp() to mean "raw" sp and unextended_sp() to mean the caller's
 164   // original sp we use that convention.
 165 
 166   intptr_t*     _unextended_sp;
 167   void adjust_unextended_sp();
 168 
 169   intptr_t* ptr_at_addr(int offset) const {
 170     return (intptr_t*) addr_at(offset);
 171   }
 172 
 173 #ifdef ASSERT
 174   // Used in frame::sender_for_{interpreter,compiled}_frame
 175   static void verify_deopt_original_pc(nmethod* nm, intptr_t* unextended_sp);
 176 #endif
 177 
 178  public:
 179   // Constructors
 180 
 181   frame(Thread* thread, intptr_t* sp, intptr_t* fp, address pc);
 182 
 183   frame(Thread* thread, intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc);
 184 
 185   frame(Thread* thread, intptr_t* sp, intptr_t* fp);
 186 
 187   void init(Thread* thread, intptr_t* sp, intptr_t* fp, address pc);
 188 
 189   // accessors for the instance variables
 190   // Note: not necessarily the real 'frame pointer' (see real_fp)
 191   intptr_t*   fp() const { return _fp; }
 192 
 193   inline address* sender_pc_addr() const;
 194 
 195   // return address of param, zero origin index.
 196   inline address* native_param_addr(int idx) const;
 197 
 198   // expression stack tos if we are nested in a java call
 199   intptr_t* interpreter_frame_last_sp() const;
 200 
 201   // helper to update a map with callee-saved RBP
 202   static void update_map_with_saved_link(RegisterMap* map, intptr_t** link_addr);
 203 
 204 #ifndef CC_INTERP
 205   // deoptimization support
 206   void interpreter_frame_set_last_sp(intptr_t* sp);
 207 #endif // CC_INTERP
< prev index next >