| Index: src/hydrogen-instructions.h
|
| ===================================================================
|
| --- src/hydrogen-instructions.h (revision 6703)
|
| +++ src/hydrogen-instructions.h (working copy)
|
| @@ -113,6 +113,7 @@
|
| V(IsNull) \
|
| V(IsObject) \
|
| V(IsSmi) \
|
| + V(IsConstructCall) \
|
| V(HasInstanceType) \
|
| V(HasCachedArrayIndex) \
|
| V(JSArrayLength) \
|
| @@ -1701,7 +1702,7 @@
|
| HValue* GetRedundantReplacement() const;
|
| void AddInput(HValue* value);
|
|
|
| - bool HasReceiverOperand();
|
| + bool IsReceiver() { return merged_index_ == 0; }
|
|
|
| int merged_index() const { return merged_index_; }
|
|
|
| @@ -2179,6 +2180,22 @@
|
| };
|
|
|
|
|
| +class HIsConstructCall: public HInstruction {
|
| + public:
|
| + HIsConstructCall() {
|
| + set_representation(Representation::Tagged());
|
| + SetFlag(kUseGVN);
|
| + }
|
| +
|
| + virtual bool EmitAtUses() const { return uses()->length() <= 1; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(IsConstructCall, "is_construct_call")
|
| +
|
| + protected:
|
| + virtual bool DataEquals(HValue* other) const { return true; }
|
| +};
|
| +
|
| +
|
| class HHasInstanceType: public HUnaryPredicate {
|
| public:
|
| HHasInstanceType(HValue* value, InstanceType type)
|
|
|