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