| 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,
|
|
|