Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 101d62a85a14125243b7b9559aa45970dcba0d08..343b0fe5bed39884a5e25d1e3fc8c587f31a08a2 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -118,8 +118,10 @@ class LChunkBuilder; |
V(IsConstructCallAndBranch) \ |
V(IsNilAndBranch) \ |
V(IsObjectAndBranch) \ |
+ V(IsStringAndBranch) \ |
V(IsSmiAndBranch) \ |
V(IsUndetectableAndBranch) \ |
+ V(CompareGenericAndBranch) \ |
V(JSArrayLength) \ |
V(LeaveInlined) \ |
V(LoadContextSlot) \ |
@@ -2715,6 +2717,18 @@ class HIsObjectAndBranch: public HUnaryControlInstruction { |
DECLARE_CONCRETE_INSTRUCTION(IsObjectAndBranch) |
}; |
+class HIsStringAndBranch: public HUnaryControlInstruction { |
+ public: |
+ explicit HIsStringAndBranch(HValue* value) |
+ : HUnaryControlInstruction(value, NULL, NULL) { } |
+ |
+ virtual Representation RequiredInputRepresentation(int index) { |
+ return Representation::Tagged(); |
+ } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(IsStringAndBranch) |
+}; |
+ |
class HIsSmiAndBranch: public HUnaryControlInstruction { |
public: |
@@ -2745,6 +2759,42 @@ class HIsUndetectableAndBranch: public HUnaryControlInstruction { |
}; |
+class HCompareGenericAndBranch: public HTemplateControlInstruction<2, 3> { |
fschneider
2011/11/07 08:27:18
This should rather be HStringCompareAndBranch. It
|
+ public: |
+ HCompareGenericAndBranch(HValue* context, |
+ HValue* left, |
+ HValue* right, |
+ Token::Value token) |
+ : token_(token) { |
+ ASSERT(Token::IsCompareOp(token)); |
+ SetOperandAt(0, context); |
+ SetOperandAt(1, left); |
+ SetOperandAt(2, right); |
+ set_representation(Representation::Tagged()); |
+ } |
+ |
+ HValue* context() { return OperandAt(0); } |
+ HValue* left() { return OperandAt(1); } |
+ HValue* right() { return OperandAt(2); } |
+ Token::Value token() const { return token_; } |
+ |
+ virtual void PrintDataTo(StringStream* stream); |
+ |
+ virtual Representation RequiredInputRepresentation(int index) { |
+ return Representation::Tagged(); |
+ } |
+ |
+ Representation GetInputRepresentation() const { |
+ return Representation::Tagged(); |
+ } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(CompareGenericAndBranch) |
+ |
+ private: |
+ Token::Value token_; |
+}; |
+ |
+ |
class HIsConstructCallAndBranch: public HTemplateControlInstruction<2, 0> { |
public: |
virtual Representation RequiredInputRepresentation(int index) { |