src/cpu/sparc/vm/frame_sparc.inline.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Sdiff src/cpu/sparc/vm

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

Print this page


   1 /*
   2  * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *


  65 inline int frame::frame_size(RegisterMap* map) const { return sender_sp() - sp(); }
  66 
  67 inline intptr_t* frame::link() const { return (intptr_t *)(fp()[FP->sp_offset_in_saved_window()] + STACK_BIAS); }
  68 
  69 inline void frame::set_link(intptr_t* addr) { assert(link()==addr, "frame nesting is controlled by hardware"); }
  70 
  71 inline intptr_t* frame::unextended_sp() const { return sp() + _sp_adjustment_by_callee; }
  72 
  73 // return address:
  74 
  75 inline address  frame::sender_pc()        const    { return *I7_addr() + pc_return_offset; }
  76 
  77 inline address* frame::I7_addr() const  { return (address*) &sp()[ I7->sp_offset_in_saved_window()]; }
  78 inline address* frame::I0_addr() const  { return (address*) &sp()[ I0->sp_offset_in_saved_window()]; }
  79 
  80 inline address* frame::O7_addr() const  { return (address*) &younger_sp()[ I7->sp_offset_in_saved_window()]; }
  81 inline address* frame::O0_addr() const  { return (address*) &younger_sp()[ I0->sp_offset_in_saved_window()]; }
  82 
  83 inline intptr_t*    frame::sender_sp() const  { return fp(); }
  84 


  85 // Used only in frame::oopmapreg_to_location
  86 // This return a value in VMRegImpl::slot_size
  87 inline int frame::pd_oop_map_offset_adjustment() const {
  88   return _sp_adjustment_by_callee * VMRegImpl::slots_per_word;
  89 }
  90 
  91 #ifdef CC_INTERP
  92 inline intptr_t** frame::interpreter_frame_locals_addr() const {
  93   interpreterState istate = get_interpreterState();
  94   return (intptr_t**) &istate->_locals;
  95 }
  96 
  97 inline intptr_t* frame::interpreter_frame_bcx_addr() const {
  98   interpreterState istate = get_interpreterState();
  99   return (intptr_t*) &istate->_bcp;
 100 }
 101 
 102 inline intptr_t* frame::interpreter_frame_mdx_addr() const {
 103   interpreterState istate = get_interpreterState();
 104   return (intptr_t*) &istate->_mdx;


   1 /*
   2  * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *


  65 inline int frame::frame_size(RegisterMap* map) const { return sender_sp() - sp(); }
  66 
  67 inline intptr_t* frame::link() const { return (intptr_t *)(fp()[FP->sp_offset_in_saved_window()] + STACK_BIAS); }
  68 
  69 inline void frame::set_link(intptr_t* addr) { assert(link()==addr, "frame nesting is controlled by hardware"); }
  70 
  71 inline intptr_t* frame::unextended_sp() const { return sp() + _sp_adjustment_by_callee; }
  72 
  73 // return address:
  74 
  75 inline address  frame::sender_pc()        const    { return *I7_addr() + pc_return_offset; }
  76 
  77 inline address* frame::I7_addr() const  { return (address*) &sp()[ I7->sp_offset_in_saved_window()]; }
  78 inline address* frame::I0_addr() const  { return (address*) &sp()[ I0->sp_offset_in_saved_window()]; }
  79 
  80 inline address* frame::O7_addr() const  { return (address*) &younger_sp()[ I7->sp_offset_in_saved_window()]; }
  81 inline address* frame::O0_addr() const  { return (address*) &younger_sp()[ I0->sp_offset_in_saved_window()]; }
  82 
  83 inline intptr_t*    frame::sender_sp() const  { return fp(); }
  84 
  85 inline intptr_t* frame::real_fp() const { return fp(); }
  86 
  87 // Used only in frame::oopmapreg_to_location
  88 // This return a value in VMRegImpl::slot_size
  89 inline int frame::pd_oop_map_offset_adjustment() const {
  90   return _sp_adjustment_by_callee * VMRegImpl::slots_per_word;
  91 }
  92 
  93 #ifdef CC_INTERP
  94 inline intptr_t** frame::interpreter_frame_locals_addr() const {
  95   interpreterState istate = get_interpreterState();
  96   return (intptr_t**) &istate->_locals;
  97 }
  98 
  99 inline intptr_t* frame::interpreter_frame_bcx_addr() const {
 100   interpreterState istate = get_interpreterState();
 101   return (intptr_t*) &istate->_bcp;
 102 }
 103 
 104 inline intptr_t* frame::interpreter_frame_mdx_addr() const {
 105   interpreterState istate = get_interpreterState();
 106   return (intptr_t*) &istate->_mdx;


src/cpu/sparc/vm/frame_sparc.inline.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File