hotspot/src/share/vm/c1/c1_Instruction.hpp
changeset 13886 8d82c4dfa722
parent 13728 882756847a04
child 16611 6807a703dd6b
equal deleted inserted replaced
13885:6b056026ecad 13886:8d82c4dfa722
   100 class       UnsafeGetRaw;
   100 class       UnsafeGetRaw;
   101 class       UnsafePutRaw;
   101 class       UnsafePutRaw;
   102 class     UnsafeObjectOp;
   102 class     UnsafeObjectOp;
   103 class       UnsafeGetObject;
   103 class       UnsafeGetObject;
   104 class       UnsafePutObject;
   104 class       UnsafePutObject;
       
   105 class         UnsafeGetAndSetObject;
   105 class       UnsafePrefetch;
   106 class       UnsafePrefetch;
   106 class         UnsafePrefetchRead;
   107 class         UnsafePrefetchRead;
   107 class         UnsafePrefetchWrite;
   108 class         UnsafePrefetchWrite;
   108 class   ProfileCall;
   109 class   ProfileCall;
   109 class   ProfileInvoke;
   110 class   ProfileInvoke;
   200   virtual void do_RoundFP        (RoundFP*         x) = 0;
   201   virtual void do_RoundFP        (RoundFP*         x) = 0;
   201   virtual void do_UnsafeGetRaw   (UnsafeGetRaw*    x) = 0;
   202   virtual void do_UnsafeGetRaw   (UnsafeGetRaw*    x) = 0;
   202   virtual void do_UnsafePutRaw   (UnsafePutRaw*    x) = 0;
   203   virtual void do_UnsafePutRaw   (UnsafePutRaw*    x) = 0;
   203   virtual void do_UnsafeGetObject(UnsafeGetObject* x) = 0;
   204   virtual void do_UnsafeGetObject(UnsafeGetObject* x) = 0;
   204   virtual void do_UnsafePutObject(UnsafePutObject* x) = 0;
   205   virtual void do_UnsafePutObject(UnsafePutObject* x) = 0;
       
   206   virtual void do_UnsafeGetAndSetObject(UnsafeGetAndSetObject* x) = 0;
   205   virtual void do_UnsafePrefetchRead (UnsafePrefetchRead*  x) = 0;
   207   virtual void do_UnsafePrefetchRead (UnsafePrefetchRead*  x) = 0;
   206   virtual void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) = 0;
   208   virtual void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) = 0;
   207   virtual void do_ProfileCall    (ProfileCall*     x) = 0;
   209   virtual void do_ProfileCall    (ProfileCall*     x) = 0;
   208   virtual void do_ProfileInvoke  (ProfileInvoke*   x) = 0;
   210   virtual void do_ProfileInvoke  (ProfileInvoke*   x) = 0;
   209   virtual void do_RuntimeCall    (RuntimeCall*     x) = 0;
   211   virtual void do_RuntimeCall    (RuntimeCall*     x) = 0;
  2271   // generic
  2273   // generic
  2272   virtual void input_values_do(ValueVisitor* f)   { UnsafeObjectOp::input_values_do(f);
  2274   virtual void input_values_do(ValueVisitor* f)   { UnsafeObjectOp::input_values_do(f);
  2273                                                    f->visit(&_value); }
  2275                                                    f->visit(&_value); }
  2274 };
  2276 };
  2275 
  2277 
       
  2278 LEAF(UnsafeGetAndSetObject, UnsafeObjectOp)
       
  2279  private:
       
  2280   Value _value;                                  // Value to be stored
       
  2281   bool  _is_add;
       
  2282  public:
       
  2283   UnsafeGetAndSetObject(BasicType basic_type, Value object, Value offset, Value value, bool is_add)
       
  2284   : UnsafeObjectOp(basic_type, object, offset, false, false)
       
  2285     , _value(value)
       
  2286     , _is_add(is_add)
       
  2287   {
       
  2288     ASSERT_VALUES
       
  2289   }
       
  2290 
       
  2291   // accessors
       
  2292   bool is_add() const                            { return _is_add; }
       
  2293   Value value()                                  { return _value; }
       
  2294 
       
  2295   // generic
       
  2296   virtual void input_values_do(ValueVisitor* f)   { UnsafeObjectOp::input_values_do(f);
       
  2297                                                    f->visit(&_value); }
       
  2298 };
  2276 
  2299 
  2277 BASE(UnsafePrefetch, UnsafeObjectOp)
  2300 BASE(UnsafePrefetch, UnsafeObjectOp)
  2278  public:
  2301  public:
  2279   UnsafePrefetch(Value object, Value offset)
  2302   UnsafePrefetch(Value object, Value offset)
  2280   : UnsafeObjectOp(T_VOID, object, offset, false, false)
  2303   : UnsafeObjectOp(T_VOID, object, offset, false, false)