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