hotspot/src/share/vm/c1/c1_Instruction.hpp
changeset 11886 feebf5c9f40c
parent 11192 ff37c2093a0d
child 12947 ba8ba6c2dd83
equal deleted inserted replaced
11885:b81164faebae 11886:feebf5c9f40c
   105 class         UnsafePrefetchRead;
   105 class         UnsafePrefetchRead;
   106 class         UnsafePrefetchWrite;
   106 class         UnsafePrefetchWrite;
   107 class   ProfileCall;
   107 class   ProfileCall;
   108 class   ProfileInvoke;
   108 class   ProfileInvoke;
   109 class   RuntimeCall;
   109 class   RuntimeCall;
       
   110 class   MemBar;
   110 
   111 
   111 // A Value is a reference to the instruction creating the value
   112 // A Value is a reference to the instruction creating the value
   112 typedef Instruction* Value;
   113 typedef Instruction* Value;
   113 define_array(ValueArray, Value)
   114 define_array(ValueArray, Value)
   114 define_stack(Values, ValueArray)
   115 define_stack(Values, ValueArray)
   202   virtual void do_UnsafePrefetchRead (UnsafePrefetchRead*  x) = 0;
   203   virtual void do_UnsafePrefetchRead (UnsafePrefetchRead*  x) = 0;
   203   virtual void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) = 0;
   204   virtual void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) = 0;
   204   virtual void do_ProfileCall    (ProfileCall*     x) = 0;
   205   virtual void do_ProfileCall    (ProfileCall*     x) = 0;
   205   virtual void do_ProfileInvoke  (ProfileInvoke*   x) = 0;
   206   virtual void do_ProfileInvoke  (ProfileInvoke*   x) = 0;
   206   virtual void do_RuntimeCall    (RuntimeCall*     x) = 0;
   207   virtual void do_RuntimeCall    (RuntimeCall*     x) = 0;
       
   208   virtual void do_MemBar         (MemBar*          x) = 0;
   207 };
   209 };
   208 
   210 
   209 
   211 
   210 // Hashing support
   212 // Hashing support
   211 //
   213 //
  2349   ValueStack* state()      { return _state; }
  2351   ValueStack* state()      { return _state; }
  2350   virtual void input_values_do(ValueVisitor*)   {}
  2352   virtual void input_values_do(ValueVisitor*)   {}
  2351   virtual void state_values_do(ValueVisitor*);
  2353   virtual void state_values_do(ValueVisitor*);
  2352 };
  2354 };
  2353 
  2355 
       
  2356 LEAF(MemBar, Instruction)
       
  2357  private:
       
  2358   LIR_Code _code;
       
  2359 
       
  2360  public:
       
  2361   MemBar(LIR_Code code)
       
  2362     : Instruction(voidType)
       
  2363     , _code(code)
       
  2364   {
       
  2365     pin();
       
  2366   }
       
  2367 
       
  2368   LIR_Code code()           { return _code; }
       
  2369 
       
  2370   virtual void input_values_do(ValueVisitor*)   {}
       
  2371 };
       
  2372 
  2354 class BlockPair: public CompilationResourceObj {
  2373 class BlockPair: public CompilationResourceObj {
  2355  private:
  2374  private:
  2356   BlockBegin* _from;
  2375   BlockBegin* _from;
  2357   BlockBegin* _to;
  2376   BlockBegin* _to;
  2358  public:
  2377  public: