src/cpu/aarch64/vm/frame_aarch64.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/cpu/aarch64/vm

src/cpu/aarch64/vm/frame_aarch64.hpp

Print this page
rev 7968 : [mq]: 6313046-deadcode


 119     interpreter_frame_last_sp_offset                 = interpreter_frame_sender_sp_offset - 1,
 120     interpreter_frame_method_offset                  = interpreter_frame_last_sp_offset - 1,
 121     interpreter_frame_mdp_offset                     = interpreter_frame_method_offset - 1,
 122     interpreter_frame_cache_offset                   = interpreter_frame_mdp_offset - 1,
 123     interpreter_frame_locals_offset                  = interpreter_frame_cache_offset - 1,
 124     interpreter_frame_bcp_offset                     = interpreter_frame_locals_offset - 1,
 125     interpreter_frame_initial_sp_offset              = interpreter_frame_bcp_offset - 1,
 126 
 127     interpreter_frame_monitor_block_top_offset       = interpreter_frame_initial_sp_offset,
 128     interpreter_frame_monitor_block_bottom_offset    = interpreter_frame_initial_sp_offset,
 129 
 130 #endif // CC_INTERP
 131 
 132     // Entry frames
 133     // n.b. these values are determined by the layout defined in
 134     // stubGenerator for the Java call stub
 135     entry_frame_after_call_words                     = 27,
 136     entry_frame_call_wrapper_offset                  = -8,
 137 
 138     // we don't need a save area
 139     arg_reg_save_area_bytes                          =  0,
 140 
 141     // TODO - check that this is still correct
 142     // Native frames
 143 
 144     native_frame_initial_param_offset                =  2
 145 
 146   };
 147 
 148   intptr_t ptr_at(int offset) const {
 149     return *ptr_at_addr(offset);
 150   }
 151 
 152   void ptr_at_put(int offset, intptr_t value) {
 153     *ptr_at_addr(offset) = value;
 154   }
 155 
 156  private:
 157   // an additional field beyond _sp and _pc:
 158   intptr_t*   _fp; // frame pointer
 159   // The interpreter and adapters will extend the frame of the caller.
 160   // Since oopMaps are based on the sp of the caller before extension
 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.


 177     verify_deopt_original_pc(nm, unextended_sp, true);
 178   }
 179 #endif
 180 
 181  public:
 182   // Constructors
 183 
 184   frame(intptr_t* sp, intptr_t* fp, address pc);
 185 
 186   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc);
 187 
 188   frame(intptr_t* sp, intptr_t* fp);
 189 
 190   void init(intptr_t* sp, intptr_t* fp, address pc);
 191 
 192   // accessors for the instance variables
 193   // Note: not necessarily the real 'frame pointer' (see real_fp)
 194   intptr_t*   fp() const { return _fp; }
 195 
 196   inline address* sender_pc_addr() const;
 197 
 198   // return address of param, zero origin index.
 199   inline address* native_param_addr(int idx) const;
 200 
 201   // expression stack tos if we are nested in a java call
 202   intptr_t* interpreter_frame_last_sp() const;
 203 
 204   // helper to update a map with callee-saved RBP
 205   static void update_map_with_saved_link(RegisterMap* map, intptr_t** link_addr);
 206 
 207 #ifndef CC_INTERP
 208   // deoptimization support
 209   void interpreter_frame_set_last_sp(intptr_t* sp);
 210 #endif // CC_INTERP
 211 
 212 #ifdef CC_INTERP
 213   inline interpreterState get_interpreterState() const;
 214 #endif // CC_INTERP
 215 
 216 #endif // CPU_AARCH64_VM_FRAME_AARCH64_HPP


 119     interpreter_frame_last_sp_offset                 = interpreter_frame_sender_sp_offset - 1,
 120     interpreter_frame_method_offset                  = interpreter_frame_last_sp_offset - 1,
 121     interpreter_frame_mdp_offset                     = interpreter_frame_method_offset - 1,
 122     interpreter_frame_cache_offset                   = interpreter_frame_mdp_offset - 1,
 123     interpreter_frame_locals_offset                  = interpreter_frame_cache_offset - 1,
 124     interpreter_frame_bcp_offset                     = interpreter_frame_locals_offset - 1,
 125     interpreter_frame_initial_sp_offset              = interpreter_frame_bcp_offset - 1,
 126 
 127     interpreter_frame_monitor_block_top_offset       = interpreter_frame_initial_sp_offset,
 128     interpreter_frame_monitor_block_bottom_offset    = interpreter_frame_initial_sp_offset,
 129 
 130 #endif // CC_INTERP
 131 
 132     // Entry frames
 133     // n.b. these values are determined by the layout defined in
 134     // stubGenerator for the Java call stub
 135     entry_frame_after_call_words                     = 27,
 136     entry_frame_call_wrapper_offset                  = -8,
 137 
 138     // we don't need a save area
 139     arg_reg_save_area_bytes                          =  0





 140 
 141   };
 142 
 143   intptr_t ptr_at(int offset) const {
 144     return *ptr_at_addr(offset);
 145   }
 146 
 147   void ptr_at_put(int offset, intptr_t value) {
 148     *ptr_at_addr(offset) = value;
 149   }
 150 
 151  private:
 152   // an additional field beyond _sp and _pc:
 153   intptr_t*   _fp; // frame pointer
 154   // The interpreter and adapters will extend the frame of the caller.
 155   // Since oopMaps are based on the sp of the caller before extension
 156   // we need to know that value. However in order to compute the address
 157   // of the return address we need the real "raw" sp. Since sparc already
 158   // uses sp() to mean "raw" sp and unextended_sp() to mean the caller's
 159   // original sp we use that convention.


 172     verify_deopt_original_pc(nm, unextended_sp, true);
 173   }
 174 #endif
 175 
 176  public:
 177   // Constructors
 178 
 179   frame(intptr_t* sp, intptr_t* fp, address pc);
 180 
 181   frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc);
 182 
 183   frame(intptr_t* sp, intptr_t* fp);
 184 
 185   void init(intptr_t* sp, intptr_t* fp, address pc);
 186 
 187   // accessors for the instance variables
 188   // Note: not necessarily the real 'frame pointer' (see real_fp)
 189   intptr_t*   fp() const { return _fp; }
 190 
 191   inline address* sender_pc_addr() const;



 192 
 193   // expression stack tos if we are nested in a java call
 194   intptr_t* interpreter_frame_last_sp() const;
 195 
 196   // helper to update a map with callee-saved RBP
 197   static void update_map_with_saved_link(RegisterMap* map, intptr_t** link_addr);
 198 
 199 #ifndef CC_INTERP
 200   // deoptimization support
 201   void interpreter_frame_set_last_sp(intptr_t* sp);
 202 #endif // CC_INTERP
 203 
 204 #ifdef CC_INTERP
 205   inline interpreterState get_interpreterState() const;
 206 #endif // CC_INTERP
 207 
 208 #endif // CPU_AARCH64_VM_FRAME_AARCH64_HPP
src/cpu/aarch64/vm/frame_aarch64.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File