< prev index next >

src/hotspot/cpu/x86/c1_FpuStackSim_x86.hpp

Print this page




  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  *
  23  */
  24 
  25 #ifndef CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP
  26 #define CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP
  27 
  28 //  Simulates the FPU stack and maintains mapping [fpu-register -> stack offset]
  29 //  FPU registers are described as numbers from 0..nof_fpu_regs-1
  30 
  31 class Compilation;
  32 
  33 class FpuStackSim VALUE_OBJ_CLASS_SPEC {
  34  private:
  35   Compilation* _compilation;
  36   int          _stack_size;
  37   int          _regs[FrameMap::nof_fpu_regs];
  38 
  39   int tos_index() const                        { return _stack_size - 1; }
  40 
  41   int regs_at(int i) const;
  42   void set_regs_at(int i, int val);
  43   void dec_stack_size();
  44   void inc_stack_size();
  45 
  46   // unified bailout support
  47   Compilation*  compilation() const              { return _compilation; }
  48   void          bailout(const char* msg) const   { compilation()->bailout(msg); }
  49   bool          bailed_out() const               { return compilation()->bailed_out(); }
  50 
  51  public:
  52   FpuStackSim(Compilation* compilation);
  53   void pop ();


  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  *
  23  */
  24 
  25 #ifndef CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP
  26 #define CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP
  27 
  28 //  Simulates the FPU stack and maintains mapping [fpu-register -> stack offset]
  29 //  FPU registers are described as numbers from 0..nof_fpu_regs-1
  30 
  31 class Compilation;
  32 
  33 class FpuStackSim {
  34  private:
  35   Compilation* _compilation;
  36   int          _stack_size;
  37   int          _regs[FrameMap::nof_fpu_regs];
  38 
  39   int tos_index() const                        { return _stack_size - 1; }
  40 
  41   int regs_at(int i) const;
  42   void set_regs_at(int i, int val);
  43   void dec_stack_size();
  44   void inc_stack_size();
  45 
  46   // unified bailout support
  47   Compilation*  compilation() const              { return _compilation; }
  48   void          bailout(const char* msg) const   { compilation()->bailout(msg); }
  49   bool          bailed_out() const               { return compilation()->bailed_out(); }
  50 
  51  public:
  52   FpuStackSim(Compilation* compilation);
  53   void pop ();
< prev index next >