--- a/hotspot/src/share/vm/c1/c1_Instruction.hpp Wed Feb 22 14:00:34 2012 -0500
+++ b/hotspot/src/share/vm/c1/c1_Instruction.hpp Tue Feb 21 13:14:55 2012 -0500
@@ -107,6 +107,7 @@
class ProfileCall;
class ProfileInvoke;
class RuntimeCall;
+class MemBar;
// A Value is a reference to the instruction creating the value
typedef Instruction* Value;
@@ -204,6 +205,7 @@
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;
};
@@ -2351,6 +2353,23 @@
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;