| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <algorithm> | 5 #include <algorithm> |
| 6 | 6 |
| 7 #include "src/base/adapters.h" | 7 #include "src/base/adapters.h" |
| 8 #include "src/compiler/instruction-selector-impl.h" | 8 #include "src/compiler/instruction-selector-impl.h" |
| 9 #include "src/compiler/node-matchers.h" | 9 #include "src/compiler/node-matchers.h" |
| 10 #include "src/compiler/node-properties.h" | 10 #include "src/compiler/node-properties.h" |
| (...skipping 1342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1353 } | 1353 } |
| 1354 case IrOpcode::kInt64LessThan: | 1354 case IrOpcode::kInt64LessThan: |
| 1355 cont.OverwriteAndNegateIfEqual(kSignedLessThan); | 1355 cont.OverwriteAndNegateIfEqual(kSignedLessThan); |
| 1356 return VisitWord64Compare(this, value, &cont); | 1356 return VisitWord64Compare(this, value, &cont); |
| 1357 case IrOpcode::kInt64LessThanOrEqual: | 1357 case IrOpcode::kInt64LessThanOrEqual: |
| 1358 cont.OverwriteAndNegateIfEqual(kSignedLessThanOrEqual); | 1358 cont.OverwriteAndNegateIfEqual(kSignedLessThanOrEqual); |
| 1359 return VisitWord64Compare(this, value, &cont); | 1359 return VisitWord64Compare(this, value, &cont); |
| 1360 case IrOpcode::kUint64LessThan: | 1360 case IrOpcode::kUint64LessThan: |
| 1361 cont.OverwriteAndNegateIfEqual(kUnsignedLessThan); | 1361 cont.OverwriteAndNegateIfEqual(kUnsignedLessThan); |
| 1362 return VisitWord64Compare(this, value, &cont); | 1362 return VisitWord64Compare(this, value, &cont); |
| 1363 case IrOpcode::kUint64LessThanOrEqual: |
| 1364 cont.OverwriteAndNegateIfEqual(kUnsignedLessThanOrEqual); |
| 1365 return VisitWord64Compare(this, value, &cont); |
| 1363 case IrOpcode::kFloat32Equal: | 1366 case IrOpcode::kFloat32Equal: |
| 1364 cont.OverwriteAndNegateIfEqual(kUnorderedEqual); | 1367 cont.OverwriteAndNegateIfEqual(kUnorderedEqual); |
| 1365 return VisitFloat32Compare(this, value, &cont); | 1368 return VisitFloat32Compare(this, value, &cont); |
| 1366 case IrOpcode::kFloat32LessThan: | 1369 case IrOpcode::kFloat32LessThan: |
| 1367 cont.OverwriteAndNegateIfEqual(kUnsignedGreaterThan); | 1370 cont.OverwriteAndNegateIfEqual(kUnsignedGreaterThan); |
| 1368 return VisitFloat32Compare(this, value, &cont); | 1371 return VisitFloat32Compare(this, value, &cont); |
| 1369 case IrOpcode::kFloat32LessThanOrEqual: | 1372 case IrOpcode::kFloat32LessThanOrEqual: |
| 1370 cont.OverwriteAndNegateIfEqual(kUnsignedGreaterThanOrEqual); | 1373 cont.OverwriteAndNegateIfEqual(kUnsignedGreaterThanOrEqual); |
| 1371 return VisitFloat32Compare(this, value, &cont); | 1374 return VisitFloat32Compare(this, value, &cont); |
| 1372 case IrOpcode::kFloat64Equal: | 1375 case IrOpcode::kFloat64Equal: |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1565 VisitWord64Compare(this, node, &cont); | 1568 VisitWord64Compare(this, node, &cont); |
| 1566 } | 1569 } |
| 1567 | 1570 |
| 1568 | 1571 |
| 1569 void InstructionSelector::VisitUint64LessThan(Node* node) { | 1572 void InstructionSelector::VisitUint64LessThan(Node* node) { |
| 1570 FlagsContinuation cont(kUnsignedLessThan, node); | 1573 FlagsContinuation cont(kUnsignedLessThan, node); |
| 1571 VisitWord64Compare(this, node, &cont); | 1574 VisitWord64Compare(this, node, &cont); |
| 1572 } | 1575 } |
| 1573 | 1576 |
| 1574 | 1577 |
| 1578 void InstructionSelector::VisitUint64LessThanOrEqual(Node* node) { |
| 1579 FlagsContinuation cont(kUnsignedLessThanOrEqual, node); |
| 1580 VisitWord64Compare(this, node, &cont); |
| 1581 } |
| 1582 |
| 1583 |
| 1575 void InstructionSelector::VisitFloat32Equal(Node* node) { | 1584 void InstructionSelector::VisitFloat32Equal(Node* node) { |
| 1576 FlagsContinuation cont(kUnorderedEqual, node); | 1585 FlagsContinuation cont(kUnorderedEqual, node); |
| 1577 VisitFloat32Compare(this, node, &cont); | 1586 VisitFloat32Compare(this, node, &cont); |
| 1578 } | 1587 } |
| 1579 | 1588 |
| 1580 | 1589 |
| 1581 void InstructionSelector::VisitFloat32LessThan(Node* node) { | 1590 void InstructionSelector::VisitFloat32LessThan(Node* node) { |
| 1582 FlagsContinuation cont(kUnsignedGreaterThan, node); | 1591 FlagsContinuation cont(kUnsignedGreaterThan, node); |
| 1583 VisitFloat32Compare(this, node, &cont); | 1592 VisitFloat32Compare(this, node, &cont); |
| 1584 } | 1593 } |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1657 if (CpuFeatures::IsSupported(SSE4_1)) { | 1666 if (CpuFeatures::IsSupported(SSE4_1)) { |
| 1658 flags |= MachineOperatorBuilder::kFloat64RoundDown | | 1667 flags |= MachineOperatorBuilder::kFloat64RoundDown | |
| 1659 MachineOperatorBuilder::kFloat64RoundTruncate; | 1668 MachineOperatorBuilder::kFloat64RoundTruncate; |
| 1660 } | 1669 } |
| 1661 return flags; | 1670 return flags; |
| 1662 } | 1671 } |
| 1663 | 1672 |
| 1664 } // namespace compiler | 1673 } // namespace compiler |
| 1665 } // namespace internal | 1674 } // namespace internal |
| 1666 } // namespace v8 | 1675 } // namespace v8 |
| OLD | NEW |