Index: src/hydrogen.cc |
=================================================================== |
--- src/hydrogen.cc (revision 7127) |
+++ src/hydrogen.cc (working copy) |
@@ -900,13 +900,15 @@ |
ASSERT((test->FirstSuccessor() == dest) == (test->SecondSuccessor() != dest)); |
if (test->value()->IsCompare()) { |
HCompare* compare = HCompare::cast(test->value()); |
- Token::Value op = compare->token(); |
- if (test->SecondSuccessor() == dest) { |
- op = Token::NegateCompareOp(op); |
+ if (compare->GetInputRepresentation().IsInteger32()) { |
+ Token::Value op = compare->token(); |
+ if (test->SecondSuccessor() == dest) { |
+ op = Token::NegateCompareOp(op); |
+ } |
+ Token::Value inverted_op = Token::InvertCompareOp(op); |
+ InferControlFlowRange(op, compare->left(), compare->right()); |
+ InferControlFlowRange(inverted_op, compare->right(), compare->left()); |
} |
- Token::Value inverted_op = Token::InvertCompareOp(op); |
- InferControlFlowRange(op, compare->left(), compare->right()); |
- InferControlFlowRange(inverted_op, compare->right(), compare->left()); |
} |
} |