src/share/vm/c1/c1_Instruction.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File c1-coops Sdiff src/share/vm/c1

src/share/vm/c1/c1_Instruction.hpp

Print this page




2085   // accessors
2086   Value base()                                   { return _base; }
2087   Value index()                                  { return _index; }
2088   bool  has_index()                              { return (_index != NULL); }
2089   int   log2_scale()                             { return _log2_scale; }
2090 
2091   // setters
2092   void set_base (Value base)                     { _base  = base; }
2093   void set_index(Value index)                    { _index = index; }
2094   void set_log2_scale(int log2_scale)            { _log2_scale = log2_scale; }
2095 
2096   // generic
2097   virtual void input_values_do(ValueVisitor* f)   { UnsafeOp::input_values_do(f);
2098                                                    f->visit(&_base);
2099                                                    if (has_index()) f->visit(&_index); }
2100 };
2101 
2102 
2103 LEAF(UnsafeGetRaw, UnsafeRawOp)
2104  private:
2105   bool _may_be_unaligned;  // For OSREntry
2106 
2107  public:
2108   UnsafeGetRaw(BasicType basic_type, Value addr, bool may_be_unaligned)
2109   : UnsafeRawOp(basic_type, addr, false) {
2110     _may_be_unaligned = may_be_unaligned;

2111   }
2112 
2113   UnsafeGetRaw(BasicType basic_type, Value base, Value index, int log2_scale, bool may_be_unaligned)
2114   : UnsafeRawOp(basic_type, base, index, log2_scale, false) {
2115     _may_be_unaligned = may_be_unaligned;

2116   }
2117 
2118   bool may_be_unaligned()                               { return _may_be_unaligned; }

2119 };
2120 
2121 
2122 LEAF(UnsafePutRaw, UnsafeRawOp)
2123  private:
2124   Value _value;                                  // Value to be stored
2125 
2126  public:
2127   UnsafePutRaw(BasicType basic_type, Value addr, Value value)
2128   : UnsafeRawOp(basic_type, addr, true)
2129   , _value(value)
2130   {
2131     assert(value != NULL, "just checking");
2132     ASSERT_VALUES
2133   }
2134 
2135   UnsafePutRaw(BasicType basic_type, Value base, Value index, int log2_scale, Value value)
2136   : UnsafeRawOp(basic_type, base, index, log2_scale, true)
2137   , _value(value)
2138   {




2085   // accessors
2086   Value base()                                   { return _base; }
2087   Value index()                                  { return _index; }
2088   bool  has_index()                              { return (_index != NULL); }
2089   int   log2_scale()                             { return _log2_scale; }
2090 
2091   // setters
2092   void set_base (Value base)                     { _base  = base; }
2093   void set_index(Value index)                    { _index = index; }
2094   void set_log2_scale(int log2_scale)            { _log2_scale = log2_scale; }
2095 
2096   // generic
2097   virtual void input_values_do(ValueVisitor* f)   { UnsafeOp::input_values_do(f);
2098                                                    f->visit(&_base);
2099                                                    if (has_index()) f->visit(&_index); }
2100 };
2101 
2102 
2103 LEAF(UnsafeGetRaw, UnsafeRawOp)
2104  private:
2105  bool _may_be_unaligned, _is_wide;  // For OSREntry
2106 
2107  public:
2108  UnsafeGetRaw(BasicType basic_type, Value addr, bool may_be_unaligned, bool is_wide = false)
2109   : UnsafeRawOp(basic_type, addr, false) {
2110     _may_be_unaligned = may_be_unaligned;
2111     _is_wide = is_wide;
2112   }
2113 
2114  UnsafeGetRaw(BasicType basic_type, Value base, Value index, int log2_scale, bool may_be_unaligned, bool is_wide = false)
2115   : UnsafeRawOp(basic_type, base, index, log2_scale, false) {
2116     _may_be_unaligned = may_be_unaligned;
2117     _is_wide = is_wide;
2118   }
2119 
2120   bool may_be_unaligned()                         { return _may_be_unaligned; }
2121   bool is_wide()                                  { return _is_wide; }
2122 };
2123 
2124 
2125 LEAF(UnsafePutRaw, UnsafeRawOp)
2126  private:
2127   Value _value;                                  // Value to be stored
2128 
2129  public:
2130   UnsafePutRaw(BasicType basic_type, Value addr, Value value)
2131   : UnsafeRawOp(basic_type, addr, true)
2132   , _value(value)
2133   {
2134     assert(value != NULL, "just checking");
2135     ASSERT_VALUES
2136   }
2137 
2138   UnsafePutRaw(BasicType basic_type, Value base, Value index, int log2_scale, Value value)
2139   : UnsafeRawOp(basic_type, base, index, log2_scale, true)
2140   , _value(value)
2141   {


src/share/vm/c1/c1_Instruction.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File