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




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

2119   }
2120 
2121   UnsafeGetRaw(BasicType basic_type, Value base, Value index, int log2_scale, bool may_be_unaligned)
2122   : UnsafeRawOp(basic_type, base, index, log2_scale, false) {
2123     _may_be_unaligned = may_be_unaligned;

2124   }
2125 
2126   bool may_be_unaligned()                               { return _may_be_unaligned; }

2127 };
2128 
2129 
2130 LEAF(UnsafePutRaw, UnsafeRawOp)
2131  private:
2132   Value _value;                                  // Value to be stored
2133 
2134  public:
2135   UnsafePutRaw(BasicType basic_type, Value addr, Value value)
2136   : UnsafeRawOp(basic_type, addr, true)
2137   , _value(value)
2138   {
2139     assert(value != NULL, "just checking");
2140     ASSERT_VALUES
2141   }
2142 
2143   UnsafePutRaw(BasicType basic_type, Value base, Value index, int log2_scale, Value value)
2144   : UnsafeRawOp(basic_type, base, index, log2_scale, true)
2145   , _value(value)
2146   {




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


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