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 "src/compiler/instruction-selector.h" | 5 #include "src/compiler/instruction-selector.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "src/base/adapters.h" | 9 #include "src/base/adapters.h" |
10 #include "src/compiler/instruction-selector-impl.h" | 10 #include "src/compiler/instruction-selector-impl.h" |
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
981 case IrOpcode::kInt32Add: | 981 case IrOpcode::kInt32Add: |
982 return MarkAsWord32(node), VisitInt32Add(node); | 982 return MarkAsWord32(node), VisitInt32Add(node); |
983 case IrOpcode::kInt32AddWithOverflow: | 983 case IrOpcode::kInt32AddWithOverflow: |
984 return MarkAsWord32(node), VisitInt32AddWithOverflow(node); | 984 return MarkAsWord32(node), VisitInt32AddWithOverflow(node); |
985 case IrOpcode::kInt32Sub: | 985 case IrOpcode::kInt32Sub: |
986 return MarkAsWord32(node), VisitInt32Sub(node); | 986 return MarkAsWord32(node), VisitInt32Sub(node); |
987 case IrOpcode::kInt32SubWithOverflow: | 987 case IrOpcode::kInt32SubWithOverflow: |
988 return VisitInt32SubWithOverflow(node); | 988 return VisitInt32SubWithOverflow(node); |
989 case IrOpcode::kInt32Mul: | 989 case IrOpcode::kInt32Mul: |
990 return MarkAsWord32(node), VisitInt32Mul(node); | 990 return MarkAsWord32(node), VisitInt32Mul(node); |
| 991 case IrOpcode::kInt32MulWithOverflow: |
| 992 return MarkAsWord32(node), VisitInt32MulWithOverflow(node); |
991 case IrOpcode::kInt32MulHigh: | 993 case IrOpcode::kInt32MulHigh: |
992 return VisitInt32MulHigh(node); | 994 return VisitInt32MulHigh(node); |
993 case IrOpcode::kInt32Div: | 995 case IrOpcode::kInt32Div: |
994 return MarkAsWord32(node), VisitInt32Div(node); | 996 return MarkAsWord32(node), VisitInt32Div(node); |
995 case IrOpcode::kInt32Mod: | 997 case IrOpcode::kInt32Mod: |
996 return MarkAsWord32(node), VisitInt32Mod(node); | 998 return MarkAsWord32(node), VisitInt32Mod(node); |
997 case IrOpcode::kInt32LessThan: | 999 case IrOpcode::kInt32LessThan: |
998 return VisitInt32LessThan(node); | 1000 return VisitInt32LessThan(node); |
999 case IrOpcode::kInt32LessThanOrEqual: | 1001 case IrOpcode::kInt32LessThanOrEqual: |
1000 return VisitInt32LessThanOrEqual(node); | 1002 return VisitInt32LessThanOrEqual(node); |
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1473 } | 1475 } |
1474 | 1476 |
1475 | 1477 |
1476 void InstructionSelector::VisitInt64Sub(Node* node) { UNIMPLEMENTED(); } | 1478 void InstructionSelector::VisitInt64Sub(Node* node) { UNIMPLEMENTED(); } |
1477 | 1479 |
1478 | 1480 |
1479 void InstructionSelector::VisitInt64SubWithOverflow(Node* node) { | 1481 void InstructionSelector::VisitInt64SubWithOverflow(Node* node) { |
1480 UNIMPLEMENTED(); | 1482 UNIMPLEMENTED(); |
1481 } | 1483 } |
1482 | 1484 |
1483 | |
1484 void InstructionSelector::VisitInt64Mul(Node* node) { UNIMPLEMENTED(); } | 1485 void InstructionSelector::VisitInt64Mul(Node* node) { UNIMPLEMENTED(); } |
1485 | 1486 |
1486 | 1487 |
1487 void InstructionSelector::VisitInt64Div(Node* node) { UNIMPLEMENTED(); } | 1488 void InstructionSelector::VisitInt64Div(Node* node) { UNIMPLEMENTED(); } |
1488 | 1489 |
1489 | 1490 |
1490 void InstructionSelector::VisitInt64LessThan(Node* node) { UNIMPLEMENTED(); } | 1491 void InstructionSelector::VisitInt64LessThan(Node* node) { UNIMPLEMENTED(); } |
1491 | 1492 |
1492 | 1493 |
1493 void InstructionSelector::VisitInt64LessThanOrEqual(Node* node) { | 1494 void InstructionSelector::VisitInt64LessThanOrEqual(Node* node) { |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1641 } | 1642 } |
1642 } | 1643 } |
1643 | 1644 |
1644 | 1645 |
1645 void InstructionSelector::VisitProjection(Node* node) { | 1646 void InstructionSelector::VisitProjection(Node* node) { |
1646 OperandGenerator g(this); | 1647 OperandGenerator g(this); |
1647 Node* value = node->InputAt(0); | 1648 Node* value = node->InputAt(0); |
1648 switch (value->opcode()) { | 1649 switch (value->opcode()) { |
1649 case IrOpcode::kInt32AddWithOverflow: | 1650 case IrOpcode::kInt32AddWithOverflow: |
1650 case IrOpcode::kInt32SubWithOverflow: | 1651 case IrOpcode::kInt32SubWithOverflow: |
| 1652 case IrOpcode::kInt32MulWithOverflow: |
1651 case IrOpcode::kInt64AddWithOverflow: | 1653 case IrOpcode::kInt64AddWithOverflow: |
1652 case IrOpcode::kInt64SubWithOverflow: | 1654 case IrOpcode::kInt64SubWithOverflow: |
1653 case IrOpcode::kTryTruncateFloat32ToInt64: | 1655 case IrOpcode::kTryTruncateFloat32ToInt64: |
1654 case IrOpcode::kTryTruncateFloat64ToInt64: | 1656 case IrOpcode::kTryTruncateFloat64ToInt64: |
1655 case IrOpcode::kTryTruncateFloat32ToUint64: | 1657 case IrOpcode::kTryTruncateFloat32ToUint64: |
1656 case IrOpcode::kTryTruncateFloat64ToUint64: | 1658 case IrOpcode::kTryTruncateFloat64ToUint64: |
1657 case IrOpcode::kInt32PairAdd: | 1659 case IrOpcode::kInt32PairAdd: |
1658 case IrOpcode::kInt32PairSub: | 1660 case IrOpcode::kInt32PairSub: |
1659 case IrOpcode::kInt32PairMul: | 1661 case IrOpcode::kInt32PairMul: |
1660 case IrOpcode::kWord32PairShl: | 1662 case IrOpcode::kWord32PairShl: |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1986 return new (instruction_zone()) FrameStateDescriptor( | 1988 return new (instruction_zone()) FrameStateDescriptor( |
1987 instruction_zone(), state_info.type(), state_info.bailout_id(), | 1989 instruction_zone(), state_info.type(), state_info.bailout_id(), |
1988 state_info.state_combine(), parameters, locals, stack, | 1990 state_info.state_combine(), parameters, locals, stack, |
1989 state_info.shared_info(), outer_state); | 1991 state_info.shared_info(), outer_state); |
1990 } | 1992 } |
1991 | 1993 |
1992 | 1994 |
1993 } // namespace compiler | 1995 } // namespace compiler |
1994 } // namespace internal | 1996 } // namespace internal |
1995 } // namespace v8 | 1997 } // namespace v8 |
OLD | NEW |