src/cpu/sparc/vm/frame_sparc.inline.hpp

Print this page
rev 5992 : 8035396: Introduce accessor for tmp_oop in frame.


 220 
 221 inline int frame::interpreter_frame_monitor_size() {
 222   return round_to(BasicObjectLock::size(), WordsPerLong);
 223 }
 224 
 225 inline Method** frame::interpreter_frame_method_addr() const {
 226   return (Method**)sp_addr_at( Lmethod->sp_offset_in_saved_window());
 227 }
 228 
 229 
 230 // Constant pool cache
 231 
 232 // where LcpoolCache is saved:
 233 inline ConstantPoolCache** frame::interpreter_frame_cpoolcache_addr() const {
 234     return (ConstantPoolCache**)sp_addr_at(LcpoolCache->sp_offset_in_saved_window());
 235   }
 236 
 237 inline ConstantPoolCache** frame::interpreter_frame_cache_addr() const {
 238   return (ConstantPoolCache**)sp_addr_at( LcpoolCache->sp_offset_in_saved_window());
 239 }




 240 #endif // CC_INTERP
 241 
 242 
 243 inline JavaCallWrapper** frame::entry_frame_call_wrapper_addr() const {
 244   // note: adjust this code if the link argument in StubGenerator::call_stub() changes!
 245   const Argument link = Argument(0, false);
 246   return (JavaCallWrapper**)&sp()[link.as_in().as_register()->sp_offset_in_saved_window()];
 247 }
 248 
 249 
 250 inline int frame::local_offset_for_compiler(int local_index, int nof_args, int max_nof_locals, int max_nof_monitors) {
 251    // always allocate non-argument locals 0..5 as if they were arguments:
 252   int allocated_above_frame = nof_args;
 253   if (allocated_above_frame < callee_register_argument_save_area_words)
 254     allocated_above_frame = callee_register_argument_save_area_words;
 255   if (allocated_above_frame > max_nof_locals)
 256     allocated_above_frame = max_nof_locals;
 257 
 258   // Note: monitors (BasicLock blocks) are never allocated in argument slots
 259   //assert(local_index >= 0 && local_index < max_nof_locals, "bad local index");




 220 
 221 inline int frame::interpreter_frame_monitor_size() {
 222   return round_to(BasicObjectLock::size(), WordsPerLong);
 223 }
 224 
 225 inline Method** frame::interpreter_frame_method_addr() const {
 226   return (Method**)sp_addr_at( Lmethod->sp_offset_in_saved_window());
 227 }
 228 
 229 
 230 // Constant pool cache
 231 
 232 // where LcpoolCache is saved:
 233 inline ConstantPoolCache** frame::interpreter_frame_cpoolcache_addr() const {
 234     return (ConstantPoolCache**)sp_addr_at(LcpoolCache->sp_offset_in_saved_window());
 235   }
 236 
 237 inline ConstantPoolCache** frame::interpreter_frame_cache_addr() const {
 238   return (ConstantPoolCache**)sp_addr_at( LcpoolCache->sp_offset_in_saved_window());
 239 }
 240 
 241 inline oop* frame::interpreter_frame_temp_oop_addr() const {
 242   return (oop *)(fp() + interpreter_frame_oop_temp_offset);
 243 }
 244 #endif // CC_INTERP
 245 
 246 
 247 inline JavaCallWrapper** frame::entry_frame_call_wrapper_addr() const {
 248   // note: adjust this code if the link argument in StubGenerator::call_stub() changes!
 249   const Argument link = Argument(0, false);
 250   return (JavaCallWrapper**)&sp()[link.as_in().as_register()->sp_offset_in_saved_window()];
 251 }
 252 
 253 
 254 inline int frame::local_offset_for_compiler(int local_index, int nof_args, int max_nof_locals, int max_nof_monitors) {
 255    // always allocate non-argument locals 0..5 as if they were arguments:
 256   int allocated_above_frame = nof_args;
 257   if (allocated_above_frame < callee_register_argument_save_area_words)
 258     allocated_above_frame = callee_register_argument_save_area_words;
 259   if (allocated_above_frame > max_nof_locals)
 260     allocated_above_frame = max_nof_locals;
 261 
 262   // Note: monitors (BasicLock blocks) are never allocated in argument slots
 263   //assert(local_index >= 0 && local_index < max_nof_locals, "bad local index");