src/share/vm/c1/c1_Instruction.hpp

changeset 3592
701a83c86f28
parent 3312
973293defacd
child 3836
c8289830e172
     1.1 --- a/src/share/vm/c1/c1_Instruction.hpp	Wed Feb 22 14:00:34 2012 -0500
     1.2 +++ b/src/share/vm/c1/c1_Instruction.hpp	Tue Feb 21 13:14:55 2012 -0500
     1.3 @@ -107,6 +107,7 @@
     1.4  class   ProfileCall;
     1.5  class   ProfileInvoke;
     1.6  class   RuntimeCall;
     1.7 +class   MemBar;
     1.8  
     1.9  // A Value is a reference to the instruction creating the value
    1.10  typedef Instruction* Value;
    1.11 @@ -204,6 +205,7 @@
    1.12    virtual void do_ProfileCall    (ProfileCall*     x) = 0;
    1.13    virtual void do_ProfileInvoke  (ProfileInvoke*   x) = 0;
    1.14    virtual void do_RuntimeCall    (RuntimeCall*     x) = 0;
    1.15 +  virtual void do_MemBar         (MemBar*          x) = 0;
    1.16  };
    1.17  
    1.18  
    1.19 @@ -2351,6 +2353,23 @@
    1.20    virtual void state_values_do(ValueVisitor*);
    1.21  };
    1.22  
    1.23 +LEAF(MemBar, Instruction)
    1.24 + private:
    1.25 +  LIR_Code _code;
    1.26 +
    1.27 + public:
    1.28 +  MemBar(LIR_Code code)
    1.29 +    : Instruction(voidType)
    1.30 +    , _code(code)
    1.31 +  {
    1.32 +    pin();
    1.33 +  }
    1.34 +
    1.35 +  LIR_Code code()           { return _code; }
    1.36 +
    1.37 +  virtual void input_values_do(ValueVisitor*)   {}
    1.38 +};
    1.39 +
    1.40  class BlockPair: public CompilationResourceObj {
    1.41   private:
    1.42    BlockBegin* _from;

mercurial