src/share/vm/c1/c1_Instruction.hpp

Print this page

        

*** 105,114 **** --- 105,115 ---- class UnsafePrefetchRead; class UnsafePrefetchWrite; class ProfileCall; class ProfileInvoke; class RuntimeCall; + class MemBar; // A Value is a reference to the instruction creating the value typedef Instruction* Value; define_array(ValueArray, Value) define_stack(Values, ValueArray)
*** 202,211 **** --- 203,213 ---- virtual void do_UnsafePrefetchRead (UnsafePrefetchRead* x) = 0; virtual void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) = 0; virtual void do_ProfileCall (ProfileCall* x) = 0; virtual void do_ProfileInvoke (ProfileInvoke* x) = 0; virtual void do_RuntimeCall (RuntimeCall* x) = 0; + virtual void do_MemBar (MemBar* x) = 0; }; // Hashing support //
*** 2349,2358 **** --- 2351,2377 ---- ValueStack* state() { return _state; } virtual void input_values_do(ValueVisitor*) {} virtual void state_values_do(ValueVisitor*); }; + LEAF(MemBar, Instruction) + private: + LIR_Code _code; + + public: + MemBar(LIR_Code code) + : Instruction(voidType) + , _code(code) + { + pin(); + } + + LIR_Code code() { return _code; } + + virtual void input_values_do(ValueVisitor*) {} + }; + class BlockPair: public CompilationResourceObj { private: BlockBegin* _from; BlockBegin* _to; public: