Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 56810ef6b8c16d5216a4715126f9c7558c26a8a7..d51594340303fdb1eec360f1c44157a432de9fea 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -101,6 +101,7 @@ class LChunkBuilder; |
V(EnterInlined) \ |
V(ExternalArrayLength) \ |
V(FixedArrayLength) \ |
+ V(ForceRepresentation) \ |
V(FunctionLiteral) \ |
V(GetCachedArrayIndex) \ |
V(GlobalObject) \ |
@@ -1009,6 +1010,25 @@ class HThrow: public HUnaryOperation { |
}; |
+class HForceRepresentation: public HTemplateInstruction<1> { |
+ public: |
+ HForceRepresentation(HValue* value, Representation required_representation) { |
+ SetOperandAt(0, value); |
+ set_representation(required_representation); |
+ } |
+ |
+ HValue* value() { return OperandAt(0); } |
+ |
+ virtual HValue* EnsureAndPropagateNotMinusZero(BitVector* visited); |
+ |
+ virtual Representation RequiredInputRepresentation(int index) const { |
+ return representation(); // Same as the output representation. |
+ } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(ForceRepresentation) |
+}; |
+ |
+ |
class HChange: public HUnaryOperation { |
public: |
HChange(HValue* value, |