Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index e3e883dc4b28f2cbeabe953c7d12d6dc19ff2108..d3934b349e528b3edce2fa84ee184446922348c1 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -572,6 +572,8 @@ void InstructionSelector::VisitNode(Node* node) { |
return VisitInt64LessThan(node); |
case IrOpcode::kInt64LessThanOrEqual: |
return VisitInt64LessThanOrEqual(node); |
+ case IrOpcode::kUint64LessThan: |
+ return VisitUint64LessThan(node); |
case IrOpcode::kChangeFloat32ToFloat64: |
return MarkAsDouble(node), VisitChangeFloat32ToFloat64(node); |
case IrOpcode::kChangeInt32ToFloat64: |
@@ -695,6 +697,12 @@ void InstructionSelector::VisitInt64LessThanOrEqual(Node* node) { |
} |
+void InstructionSelector::VisitUint64LessThan(Node* node) { |
+ FlagsContinuation cont(kUnsignedLessThan, node); |
+ VisitWord64Compare(node, &cont); |
+} |
+ |
+ |
void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) { |
OperandGenerator g(this); |
Emit(kArchTruncateDoubleToI, g.DefineAsRegister(node), |
@@ -929,6 +937,9 @@ void InstructionSelector::VisitBranch(Node* branch, BasicBlock* tbranch, |
case IrOpcode::kInt64LessThanOrEqual: |
cont.OverwriteAndNegateIfEqual(kSignedLessThanOrEqual); |
return VisitWord64Compare(value, &cont); |
+ case IrOpcode::kUint64LessThan: |
+ cont.OverwriteAndNegateIfEqual(kUnsignedLessThan); |
+ return VisitWord64Compare(value, &cont); |
case IrOpcode::kFloat64Equal: |
cont.OverwriteAndNegateIfEqual(kUnorderedEqual); |
return VisitFloat64Compare(value, &cont); |