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/assembler-inl.h" | 9 #include "src/assembler-inl.h" |
10 #include "src/base/adapters.h" | 10 #include "src/base/adapters.h" |
(...skipping 1506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1517 return MarkAsSimd128(node), VisitF32x4AddHoriz(node); | 1517 return MarkAsSimd128(node), VisitF32x4AddHoriz(node); |
1518 case IrOpcode::kF32x4Sub: | 1518 case IrOpcode::kF32x4Sub: |
1519 return MarkAsSimd128(node), VisitF32x4Sub(node); | 1519 return MarkAsSimd128(node), VisitF32x4Sub(node); |
1520 case IrOpcode::kF32x4Mul: | 1520 case IrOpcode::kF32x4Mul: |
1521 return MarkAsSimd128(node), VisitF32x4Mul(node); | 1521 return MarkAsSimd128(node), VisitF32x4Mul(node); |
1522 case IrOpcode::kF32x4Min: | 1522 case IrOpcode::kF32x4Min: |
1523 return MarkAsSimd128(node), VisitF32x4Min(node); | 1523 return MarkAsSimd128(node), VisitF32x4Min(node); |
1524 case IrOpcode::kF32x4Max: | 1524 case IrOpcode::kF32x4Max: |
1525 return MarkAsSimd128(node), VisitF32x4Max(node); | 1525 return MarkAsSimd128(node), VisitF32x4Max(node); |
1526 case IrOpcode::kF32x4Eq: | 1526 case IrOpcode::kF32x4Eq: |
1527 return MarkAsSimd1x4(node), VisitF32x4Eq(node); | 1527 return MarkAsSimd128(node), VisitF32x4Eq(node); |
1528 case IrOpcode::kF32x4Ne: | 1528 case IrOpcode::kF32x4Ne: |
1529 return MarkAsSimd1x4(node), VisitF32x4Ne(node); | 1529 return MarkAsSimd128(node), VisitF32x4Ne(node); |
1530 case IrOpcode::kF32x4Lt: | 1530 case IrOpcode::kF32x4Lt: |
1531 return MarkAsSimd1x4(node), VisitF32x4Lt(node); | 1531 return MarkAsSimd128(node), VisitF32x4Lt(node); |
1532 case IrOpcode::kF32x4Le: | 1532 case IrOpcode::kF32x4Le: |
1533 return MarkAsSimd1x4(node), VisitF32x4Le(node); | 1533 return MarkAsSimd128(node), VisitF32x4Le(node); |
1534 case IrOpcode::kI32x4Splat: | 1534 case IrOpcode::kI32x4Splat: |
1535 return MarkAsSimd128(node), VisitI32x4Splat(node); | 1535 return MarkAsSimd128(node), VisitI32x4Splat(node); |
1536 case IrOpcode::kI32x4ExtractLane: | 1536 case IrOpcode::kI32x4ExtractLane: |
1537 return MarkAsWord32(node), VisitI32x4ExtractLane(node); | 1537 return MarkAsWord32(node), VisitI32x4ExtractLane(node); |
1538 case IrOpcode::kI32x4ReplaceLane: | 1538 case IrOpcode::kI32x4ReplaceLane: |
1539 return MarkAsSimd128(node), VisitI32x4ReplaceLane(node); | 1539 return MarkAsSimd128(node), VisitI32x4ReplaceLane(node); |
1540 case IrOpcode::kI32x4SConvertF32x4: | 1540 case IrOpcode::kI32x4SConvertF32x4: |
1541 return MarkAsSimd128(node), VisitI32x4SConvertF32x4(node); | 1541 return MarkAsSimd128(node), VisitI32x4SConvertF32x4(node); |
1542 case IrOpcode::kI32x4SConvertI16x8Low: | 1542 case IrOpcode::kI32x4SConvertI16x8Low: |
1543 return MarkAsSimd128(node), VisitI32x4SConvertI16x8Low(node); | 1543 return MarkAsSimd128(node), VisitI32x4SConvertI16x8Low(node); |
(...skipping 11 matching lines...) Expand all Loading... |
1555 return MarkAsSimd128(node), VisitI32x4AddHoriz(node); | 1555 return MarkAsSimd128(node), VisitI32x4AddHoriz(node); |
1556 case IrOpcode::kI32x4Sub: | 1556 case IrOpcode::kI32x4Sub: |
1557 return MarkAsSimd128(node), VisitI32x4Sub(node); | 1557 return MarkAsSimd128(node), VisitI32x4Sub(node); |
1558 case IrOpcode::kI32x4Mul: | 1558 case IrOpcode::kI32x4Mul: |
1559 return MarkAsSimd128(node), VisitI32x4Mul(node); | 1559 return MarkAsSimd128(node), VisitI32x4Mul(node); |
1560 case IrOpcode::kI32x4MinS: | 1560 case IrOpcode::kI32x4MinS: |
1561 return MarkAsSimd128(node), VisitI32x4MinS(node); | 1561 return MarkAsSimd128(node), VisitI32x4MinS(node); |
1562 case IrOpcode::kI32x4MaxS: | 1562 case IrOpcode::kI32x4MaxS: |
1563 return MarkAsSimd128(node), VisitI32x4MaxS(node); | 1563 return MarkAsSimd128(node), VisitI32x4MaxS(node); |
1564 case IrOpcode::kI32x4Eq: | 1564 case IrOpcode::kI32x4Eq: |
1565 return MarkAsSimd1x4(node), VisitI32x4Eq(node); | 1565 return MarkAsSimd128(node), VisitI32x4Eq(node); |
1566 case IrOpcode::kI32x4Ne: | 1566 case IrOpcode::kI32x4Ne: |
1567 return MarkAsSimd1x4(node), VisitI32x4Ne(node); | 1567 return MarkAsSimd128(node), VisitI32x4Ne(node); |
1568 case IrOpcode::kI32x4GtS: | 1568 case IrOpcode::kI32x4GtS: |
1569 return MarkAsSimd1x4(node), VisitI32x4GtS(node); | 1569 return MarkAsSimd128(node), VisitI32x4GtS(node); |
1570 case IrOpcode::kI32x4GeS: | 1570 case IrOpcode::kI32x4GeS: |
1571 return MarkAsSimd1x4(node), VisitI32x4GeS(node); | 1571 return MarkAsSimd128(node), VisitI32x4GeS(node); |
1572 case IrOpcode::kI32x4UConvertF32x4: | 1572 case IrOpcode::kI32x4UConvertF32x4: |
1573 return MarkAsSimd128(node), VisitI32x4UConvertF32x4(node); | 1573 return MarkAsSimd128(node), VisitI32x4UConvertF32x4(node); |
1574 case IrOpcode::kI32x4UConvertI16x8Low: | 1574 case IrOpcode::kI32x4UConvertI16x8Low: |
1575 return MarkAsSimd128(node), VisitI32x4UConvertI16x8Low(node); | 1575 return MarkAsSimd128(node), VisitI32x4UConvertI16x8Low(node); |
1576 case IrOpcode::kI32x4UConvertI16x8High: | 1576 case IrOpcode::kI32x4UConvertI16x8High: |
1577 return MarkAsSimd128(node), VisitI32x4UConvertI16x8High(node); | 1577 return MarkAsSimd128(node), VisitI32x4UConvertI16x8High(node); |
1578 case IrOpcode::kI32x4ShrU: | 1578 case IrOpcode::kI32x4ShrU: |
1579 return MarkAsSimd128(node), VisitI32x4ShrU(node); | 1579 return MarkAsSimd128(node), VisitI32x4ShrU(node); |
1580 case IrOpcode::kI32x4MinU: | 1580 case IrOpcode::kI32x4MinU: |
1581 return MarkAsSimd128(node), VisitI32x4MinU(node); | 1581 return MarkAsSimd128(node), VisitI32x4MinU(node); |
1582 case IrOpcode::kI32x4MaxU: | 1582 case IrOpcode::kI32x4MaxU: |
1583 return MarkAsSimd128(node), VisitI32x4MaxU(node); | 1583 return MarkAsSimd128(node), VisitI32x4MaxU(node); |
1584 case IrOpcode::kI32x4GtU: | 1584 case IrOpcode::kI32x4GtU: |
1585 return MarkAsSimd1x4(node), VisitI32x4GtU(node); | 1585 return MarkAsSimd128(node), VisitI32x4GtU(node); |
1586 case IrOpcode::kI32x4GeU: | 1586 case IrOpcode::kI32x4GeU: |
1587 return MarkAsSimd1x4(node), VisitI32x4GeU(node); | 1587 return MarkAsSimd128(node), VisitI32x4GeU(node); |
1588 case IrOpcode::kI16x8Splat: | 1588 case IrOpcode::kI16x8Splat: |
1589 return MarkAsSimd128(node), VisitI16x8Splat(node); | 1589 return MarkAsSimd128(node), VisitI16x8Splat(node); |
1590 case IrOpcode::kI16x8ExtractLane: | 1590 case IrOpcode::kI16x8ExtractLane: |
1591 return MarkAsWord32(node), VisitI16x8ExtractLane(node); | 1591 return MarkAsWord32(node), VisitI16x8ExtractLane(node); |
1592 case IrOpcode::kI16x8ReplaceLane: | 1592 case IrOpcode::kI16x8ReplaceLane: |
1593 return MarkAsSimd128(node), VisitI16x8ReplaceLane(node); | 1593 return MarkAsSimd128(node), VisitI16x8ReplaceLane(node); |
1594 case IrOpcode::kI16x8SConvertI8x16Low: | 1594 case IrOpcode::kI16x8SConvertI8x16Low: |
1595 return MarkAsSimd128(node), VisitI16x8SConvertI8x16Low(node); | 1595 return MarkAsSimd128(node), VisitI16x8SConvertI8x16Low(node); |
1596 case IrOpcode::kI16x8SConvertI8x16High: | 1596 case IrOpcode::kI16x8SConvertI8x16High: |
1597 return MarkAsSimd128(node), VisitI16x8SConvertI8x16High(node); | 1597 return MarkAsSimd128(node), VisitI16x8SConvertI8x16High(node); |
(...skipping 15 matching lines...) Expand all Loading... |
1613 return MarkAsSimd128(node), VisitI16x8Sub(node); | 1613 return MarkAsSimd128(node), VisitI16x8Sub(node); |
1614 case IrOpcode::kI16x8SubSaturateS: | 1614 case IrOpcode::kI16x8SubSaturateS: |
1615 return MarkAsSimd128(node), VisitI16x8SubSaturateS(node); | 1615 return MarkAsSimd128(node), VisitI16x8SubSaturateS(node); |
1616 case IrOpcode::kI16x8Mul: | 1616 case IrOpcode::kI16x8Mul: |
1617 return MarkAsSimd128(node), VisitI16x8Mul(node); | 1617 return MarkAsSimd128(node), VisitI16x8Mul(node); |
1618 case IrOpcode::kI16x8MinS: | 1618 case IrOpcode::kI16x8MinS: |
1619 return MarkAsSimd128(node), VisitI16x8MinS(node); | 1619 return MarkAsSimd128(node), VisitI16x8MinS(node); |
1620 case IrOpcode::kI16x8MaxS: | 1620 case IrOpcode::kI16x8MaxS: |
1621 return MarkAsSimd128(node), VisitI16x8MaxS(node); | 1621 return MarkAsSimd128(node), VisitI16x8MaxS(node); |
1622 case IrOpcode::kI16x8Eq: | 1622 case IrOpcode::kI16x8Eq: |
1623 return MarkAsSimd1x8(node), VisitI16x8Eq(node); | 1623 return MarkAsSimd128(node), VisitI16x8Eq(node); |
1624 case IrOpcode::kI16x8Ne: | 1624 case IrOpcode::kI16x8Ne: |
1625 return MarkAsSimd1x8(node), VisitI16x8Ne(node); | 1625 return MarkAsSimd128(node), VisitI16x8Ne(node); |
1626 case IrOpcode::kI16x8GtS: | 1626 case IrOpcode::kI16x8GtS: |
1627 return MarkAsSimd1x8(node), VisitI16x8GtS(node); | 1627 return MarkAsSimd128(node), VisitI16x8GtS(node); |
1628 case IrOpcode::kI16x8GeS: | 1628 case IrOpcode::kI16x8GeS: |
1629 return MarkAsSimd1x8(node), VisitI16x8GeS(node); | 1629 return MarkAsSimd128(node), VisitI16x8GeS(node); |
1630 case IrOpcode::kI16x8UConvertI8x16Low: | 1630 case IrOpcode::kI16x8UConvertI8x16Low: |
1631 return MarkAsSimd128(node), VisitI16x8UConvertI8x16Low(node); | 1631 return MarkAsSimd128(node), VisitI16x8UConvertI8x16Low(node); |
1632 case IrOpcode::kI16x8UConvertI8x16High: | 1632 case IrOpcode::kI16x8UConvertI8x16High: |
1633 return MarkAsSimd128(node), VisitI16x8UConvertI8x16High(node); | 1633 return MarkAsSimd128(node), VisitI16x8UConvertI8x16High(node); |
1634 case IrOpcode::kI16x8ShrU: | 1634 case IrOpcode::kI16x8ShrU: |
1635 return MarkAsSimd128(node), VisitI16x8ShrU(node); | 1635 return MarkAsSimd128(node), VisitI16x8ShrU(node); |
1636 case IrOpcode::kI16x8UConvertI32x4: | 1636 case IrOpcode::kI16x8UConvertI32x4: |
1637 return MarkAsSimd128(node), VisitI16x8UConvertI32x4(node); | 1637 return MarkAsSimd128(node), VisitI16x8UConvertI32x4(node); |
1638 case IrOpcode::kI16x8AddSaturateU: | 1638 case IrOpcode::kI16x8AddSaturateU: |
1639 return MarkAsSimd128(node), VisitI16x8AddSaturateU(node); | 1639 return MarkAsSimd128(node), VisitI16x8AddSaturateU(node); |
1640 case IrOpcode::kI16x8SubSaturateU: | 1640 case IrOpcode::kI16x8SubSaturateU: |
1641 return MarkAsSimd128(node), VisitI16x8SubSaturateU(node); | 1641 return MarkAsSimd128(node), VisitI16x8SubSaturateU(node); |
1642 case IrOpcode::kI16x8MinU: | 1642 case IrOpcode::kI16x8MinU: |
1643 return MarkAsSimd128(node), VisitI16x8MinU(node); | 1643 return MarkAsSimd128(node), VisitI16x8MinU(node); |
1644 case IrOpcode::kI16x8MaxU: | 1644 case IrOpcode::kI16x8MaxU: |
1645 return MarkAsSimd128(node), VisitI16x8MaxU(node); | 1645 return MarkAsSimd128(node), VisitI16x8MaxU(node); |
1646 case IrOpcode::kI16x8GtU: | 1646 case IrOpcode::kI16x8GtU: |
1647 return MarkAsSimd1x8(node), VisitI16x8GtU(node); | 1647 return MarkAsSimd128(node), VisitI16x8GtU(node); |
1648 case IrOpcode::kI16x8GeU: | 1648 case IrOpcode::kI16x8GeU: |
1649 return MarkAsSimd1x8(node), VisitI16x8GeU(node); | 1649 return MarkAsSimd128(node), VisitI16x8GeU(node); |
1650 case IrOpcode::kI8x16Splat: | 1650 case IrOpcode::kI8x16Splat: |
1651 return MarkAsSimd128(node), VisitI8x16Splat(node); | 1651 return MarkAsSimd128(node), VisitI8x16Splat(node); |
1652 case IrOpcode::kI8x16ExtractLane: | 1652 case IrOpcode::kI8x16ExtractLane: |
1653 return MarkAsWord32(node), VisitI8x16ExtractLane(node); | 1653 return MarkAsWord32(node), VisitI8x16ExtractLane(node); |
1654 case IrOpcode::kI8x16ReplaceLane: | 1654 case IrOpcode::kI8x16ReplaceLane: |
1655 return MarkAsSimd128(node), VisitI8x16ReplaceLane(node); | 1655 return MarkAsSimd128(node), VisitI8x16ReplaceLane(node); |
1656 case IrOpcode::kI8x16Neg: | 1656 case IrOpcode::kI8x16Neg: |
1657 return MarkAsSimd128(node), VisitI8x16Neg(node); | 1657 return MarkAsSimd128(node), VisitI8x16Neg(node); |
1658 case IrOpcode::kI8x16Shl: | 1658 case IrOpcode::kI8x16Shl: |
1659 return MarkAsSimd128(node), VisitI8x16Shl(node); | 1659 return MarkAsSimd128(node), VisitI8x16Shl(node); |
1660 case IrOpcode::kI8x16ShrS: | 1660 case IrOpcode::kI8x16ShrS: |
1661 return MarkAsSimd128(node), VisitI8x16ShrS(node); | 1661 return MarkAsSimd128(node), VisitI8x16ShrS(node); |
1662 case IrOpcode::kI8x16SConvertI16x8: | 1662 case IrOpcode::kI8x16SConvertI16x8: |
1663 return MarkAsSimd128(node), VisitI8x16SConvertI16x8(node); | 1663 return MarkAsSimd128(node), VisitI8x16SConvertI16x8(node); |
1664 case IrOpcode::kI8x16Add: | 1664 case IrOpcode::kI8x16Add: |
1665 return MarkAsSimd128(node), VisitI8x16Add(node); | 1665 return MarkAsSimd128(node), VisitI8x16Add(node); |
1666 case IrOpcode::kI8x16AddSaturateS: | 1666 case IrOpcode::kI8x16AddSaturateS: |
1667 return MarkAsSimd128(node), VisitI8x16AddSaturateS(node); | 1667 return MarkAsSimd128(node), VisitI8x16AddSaturateS(node); |
1668 case IrOpcode::kI8x16Sub: | 1668 case IrOpcode::kI8x16Sub: |
1669 return MarkAsSimd128(node), VisitI8x16Sub(node); | 1669 return MarkAsSimd128(node), VisitI8x16Sub(node); |
1670 case IrOpcode::kI8x16SubSaturateS: | 1670 case IrOpcode::kI8x16SubSaturateS: |
1671 return MarkAsSimd128(node), VisitI8x16SubSaturateS(node); | 1671 return MarkAsSimd128(node), VisitI8x16SubSaturateS(node); |
1672 case IrOpcode::kI8x16Mul: | 1672 case IrOpcode::kI8x16Mul: |
1673 return MarkAsSimd128(node), VisitI8x16Mul(node); | 1673 return MarkAsSimd128(node), VisitI8x16Mul(node); |
1674 case IrOpcode::kI8x16MinS: | 1674 case IrOpcode::kI8x16MinS: |
1675 return MarkAsSimd128(node), VisitI8x16MinS(node); | 1675 return MarkAsSimd128(node), VisitI8x16MinS(node); |
1676 case IrOpcode::kI8x16MaxS: | 1676 case IrOpcode::kI8x16MaxS: |
1677 return MarkAsSimd128(node), VisitI8x16MaxS(node); | 1677 return MarkAsSimd128(node), VisitI8x16MaxS(node); |
1678 case IrOpcode::kI8x16Eq: | 1678 case IrOpcode::kI8x16Eq: |
1679 return MarkAsSimd1x16(node), VisitI8x16Eq(node); | 1679 return MarkAsSimd128(node), VisitI8x16Eq(node); |
1680 case IrOpcode::kI8x16Ne: | 1680 case IrOpcode::kI8x16Ne: |
1681 return MarkAsSimd1x16(node), VisitI8x16Ne(node); | 1681 return MarkAsSimd128(node), VisitI8x16Ne(node); |
1682 case IrOpcode::kI8x16GtS: | 1682 case IrOpcode::kI8x16GtS: |
1683 return MarkAsSimd1x16(node), VisitI8x16GtS(node); | 1683 return MarkAsSimd128(node), VisitI8x16GtS(node); |
1684 case IrOpcode::kI8x16GeS: | 1684 case IrOpcode::kI8x16GeS: |
1685 return MarkAsSimd1x16(node), VisitI8x16GeS(node); | 1685 return MarkAsSimd128(node), VisitI8x16GeS(node); |
1686 case IrOpcode::kI8x16ShrU: | 1686 case IrOpcode::kI8x16ShrU: |
1687 return MarkAsSimd128(node), VisitI8x16ShrU(node); | 1687 return MarkAsSimd128(node), VisitI8x16ShrU(node); |
1688 case IrOpcode::kI8x16UConvertI16x8: | 1688 case IrOpcode::kI8x16UConvertI16x8: |
1689 return MarkAsSimd128(node), VisitI8x16UConvertI16x8(node); | 1689 return MarkAsSimd128(node), VisitI8x16UConvertI16x8(node); |
1690 case IrOpcode::kI8x16AddSaturateU: | 1690 case IrOpcode::kI8x16AddSaturateU: |
1691 return MarkAsSimd128(node), VisitI8x16AddSaturateU(node); | 1691 return MarkAsSimd128(node), VisitI8x16AddSaturateU(node); |
1692 case IrOpcode::kI8x16SubSaturateU: | 1692 case IrOpcode::kI8x16SubSaturateU: |
1693 return MarkAsSimd128(node), VisitI8x16SubSaturateU(node); | 1693 return MarkAsSimd128(node), VisitI8x16SubSaturateU(node); |
1694 case IrOpcode::kI8x16MinU: | 1694 case IrOpcode::kI8x16MinU: |
1695 return MarkAsSimd128(node), VisitI8x16MinU(node); | 1695 return MarkAsSimd128(node), VisitI8x16MinU(node); |
1696 case IrOpcode::kI8x16MaxU: | 1696 case IrOpcode::kI8x16MaxU: |
1697 return MarkAsSimd128(node), VisitI8x16MaxU(node); | 1697 return MarkAsSimd128(node), VisitI8x16MaxU(node); |
1698 case IrOpcode::kI8x16GtU: | 1698 case IrOpcode::kI8x16GtU: |
1699 return MarkAsSimd1x16(node), VisitI8x16GtU(node); | 1699 return MarkAsSimd128(node), VisitI8x16GtU(node); |
1700 case IrOpcode::kI8x16GeU: | 1700 case IrOpcode::kI8x16GeU: |
1701 return MarkAsSimd1x16(node), VisitI16x8GeU(node); | 1701 return MarkAsSimd128(node), VisitI16x8GeU(node); |
1702 case IrOpcode::kS128Zero: | 1702 case IrOpcode::kS128Zero: |
1703 return MarkAsSimd128(node), VisitS128Zero(node); | 1703 return MarkAsSimd128(node), VisitS128Zero(node); |
1704 case IrOpcode::kS128And: | 1704 case IrOpcode::kS128And: |
1705 return MarkAsSimd128(node), VisitS128And(node); | 1705 return MarkAsSimd128(node), VisitS128And(node); |
1706 case IrOpcode::kS128Or: | 1706 case IrOpcode::kS128Or: |
1707 return MarkAsSimd128(node), VisitS128Or(node); | 1707 return MarkAsSimd128(node), VisitS128Or(node); |
1708 case IrOpcode::kS128Xor: | 1708 case IrOpcode::kS128Xor: |
1709 return MarkAsSimd128(node), VisitS128Xor(node); | 1709 return MarkAsSimd128(node), VisitS128Xor(node); |
1710 case IrOpcode::kS128Not: | 1710 case IrOpcode::kS128Not: |
1711 return MarkAsSimd128(node), VisitS128Not(node); | 1711 return MarkAsSimd128(node), VisitS128Not(node); |
| 1712 case IrOpcode::kS128Select: |
| 1713 return MarkAsSimd128(node), VisitS128Select(node); |
1712 case IrOpcode::kS32x4Shuffle: | 1714 case IrOpcode::kS32x4Shuffle: |
1713 return MarkAsSimd128(node), VisitS32x4Shuffle(node); | 1715 return MarkAsSimd128(node), VisitS32x4Shuffle(node); |
1714 case IrOpcode::kS32x4Select: | |
1715 return MarkAsSimd128(node), VisitS32x4Select(node); | |
1716 case IrOpcode::kS16x8Shuffle: | 1716 case IrOpcode::kS16x8Shuffle: |
1717 return MarkAsSimd128(node), VisitS16x8Shuffle(node); | 1717 return MarkAsSimd128(node), VisitS16x8Shuffle(node); |
1718 case IrOpcode::kS16x8Select: | |
1719 return MarkAsSimd128(node), VisitS16x8Select(node); | |
1720 case IrOpcode::kS8x16Shuffle: | 1718 case IrOpcode::kS8x16Shuffle: |
1721 return MarkAsSimd128(node), VisitS8x16Shuffle(node); | 1719 return MarkAsSimd128(node), VisitS8x16Shuffle(node); |
1722 case IrOpcode::kS8x16Select: | |
1723 return MarkAsSimd128(node), VisitS8x16Select(node); | |
1724 case IrOpcode::kS1x4Zero: | |
1725 return MarkAsSimd1x4(node), VisitS1x4Zero(node); | |
1726 case IrOpcode::kS1x4And: | |
1727 return MarkAsSimd1x4(node), VisitS1x4And(node); | |
1728 case IrOpcode::kS1x4Or: | |
1729 return MarkAsSimd1x4(node), VisitS1x4Or(node); | |
1730 case IrOpcode::kS1x4Xor: | |
1731 return MarkAsSimd1x4(node), VisitS1x4Xor(node); | |
1732 case IrOpcode::kS1x4Not: | |
1733 return MarkAsSimd1x4(node), VisitS1x4Not(node); | |
1734 case IrOpcode::kS1x4AnyTrue: | 1720 case IrOpcode::kS1x4AnyTrue: |
1735 return MarkAsWord32(node), VisitS1x4AnyTrue(node); | 1721 return MarkAsWord32(node), VisitS1x4AnyTrue(node); |
1736 case IrOpcode::kS1x4AllTrue: | 1722 case IrOpcode::kS1x4AllTrue: |
1737 return MarkAsWord32(node), VisitS1x4AllTrue(node); | 1723 return MarkAsWord32(node), VisitS1x4AllTrue(node); |
1738 case IrOpcode::kS1x8Zero: | |
1739 return MarkAsSimd1x8(node), VisitS1x8Zero(node); | |
1740 case IrOpcode::kS1x8And: | |
1741 return MarkAsSimd1x8(node), VisitS1x8And(node); | |
1742 case IrOpcode::kS1x8Or: | |
1743 return MarkAsSimd1x8(node), VisitS1x8Or(node); | |
1744 case IrOpcode::kS1x8Xor: | |
1745 return MarkAsSimd1x8(node), VisitS1x8Xor(node); | |
1746 case IrOpcode::kS1x8Not: | |
1747 return MarkAsSimd1x8(node), VisitS1x8Not(node); | |
1748 case IrOpcode::kS1x8AnyTrue: | 1724 case IrOpcode::kS1x8AnyTrue: |
1749 return MarkAsWord32(node), VisitS1x8AnyTrue(node); | 1725 return MarkAsWord32(node), VisitS1x8AnyTrue(node); |
1750 case IrOpcode::kS1x8AllTrue: | 1726 case IrOpcode::kS1x8AllTrue: |
1751 return MarkAsWord32(node), VisitS1x8AllTrue(node); | 1727 return MarkAsWord32(node), VisitS1x8AllTrue(node); |
1752 case IrOpcode::kS1x16Zero: | |
1753 return MarkAsSimd1x16(node), VisitS1x16Zero(node); | |
1754 case IrOpcode::kS1x16And: | |
1755 return MarkAsSimd1x16(node), VisitS1x16And(node); | |
1756 case IrOpcode::kS1x16Or: | |
1757 return MarkAsSimd1x16(node), VisitS1x16Or(node); | |
1758 case IrOpcode::kS1x16Xor: | |
1759 return MarkAsSimd1x16(node), VisitS1x16Xor(node); | |
1760 case IrOpcode::kS1x16Not: | |
1761 return MarkAsSimd1x16(node), VisitS1x16Not(node); | |
1762 case IrOpcode::kS1x16AnyTrue: | 1728 case IrOpcode::kS1x16AnyTrue: |
1763 return MarkAsWord32(node), VisitS1x16AnyTrue(node); | 1729 return MarkAsWord32(node), VisitS1x16AnyTrue(node); |
1764 case IrOpcode::kS1x16AllTrue: | 1730 case IrOpcode::kS1x16AllTrue: |
1765 return MarkAsWord32(node), VisitS1x16AllTrue(node); | 1731 return MarkAsWord32(node), VisitS1x16AllTrue(node); |
1766 default: | 1732 default: |
1767 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", | 1733 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", |
1768 node->opcode(), node->op()->mnemonic(), node->id()); | 1734 node->opcode(), node->op()->mnemonic(), node->id()); |
1769 break; | 1735 break; |
1770 } | 1736 } |
1771 } | 1737 } |
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2405 | 2371 |
2406 void InstructionSelector::VisitS128Xor(Node* node) { UNIMPLEMENTED(); } | 2372 void InstructionSelector::VisitS128Xor(Node* node) { UNIMPLEMENTED(); } |
2407 | 2373 |
2408 void InstructionSelector::VisitS128Not(Node* node) { UNIMPLEMENTED(); } | 2374 void InstructionSelector::VisitS128Not(Node* node) { UNIMPLEMENTED(); } |
2409 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && | 2375 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && |
2410 // !V8_TARGET_ARCH_MIPS64 | 2376 // !V8_TARGET_ARCH_MIPS64 |
2411 | 2377 |
2412 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && \ | 2378 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && \ |
2413 !V8_TARGET_ARCH_MIPS64 | 2379 !V8_TARGET_ARCH_MIPS64 |
2414 void InstructionSelector::VisitS128Zero(Node* node) { UNIMPLEMENTED(); } | 2380 void InstructionSelector::VisitS128Zero(Node* node) { UNIMPLEMENTED(); } |
2415 | |
2416 void InstructionSelector::VisitS1x4Zero(Node* node) { UNIMPLEMENTED(); } | |
2417 | |
2418 void InstructionSelector::VisitS1x8Zero(Node* node) { UNIMPLEMENTED(); } | |
2419 | |
2420 void InstructionSelector::VisitS1x16Zero(Node* node) { UNIMPLEMENTED(); } | |
2421 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && | 2381 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && |
2422 // !V8_TARGET_ARCH_MIPS64 | 2382 // !V8_TARGET_ARCH_MIPS64 |
2423 | 2383 |
2424 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && \ | 2384 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && \ |
2425 !V8_TARGET_ARCH_MIPS64 | 2385 !V8_TARGET_ARCH_MIPS64 |
2426 void InstructionSelector::VisitS32x4Select(Node* node) { UNIMPLEMENTED(); } | 2386 void InstructionSelector::VisitS128Select(Node* node) { UNIMPLEMENTED(); } |
2427 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && | 2387 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && |
2428 // !V8_TARGET_ARCH_MIPS64 | 2388 // !V8_TARGET_ARCH_MIPS64 |
2429 | 2389 |
2430 #if !V8_TARGET_ARCH_ARM | 2390 #if !V8_TARGET_ARCH_ARM |
2431 void InstructionSelector::VisitS32x4Shuffle(Node* node) { UNIMPLEMENTED(); } | 2391 void InstructionSelector::VisitS32x4Shuffle(Node* node) { UNIMPLEMENTED(); } |
2432 | 2392 |
2433 void InstructionSelector::VisitS16x8Shuffle(Node* node) { UNIMPLEMENTED(); } | 2393 void InstructionSelector::VisitS16x8Shuffle(Node* node) { UNIMPLEMENTED(); } |
2434 | 2394 |
2435 #endif // !V8_TARGET_ARCH_ARM | 2395 #endif // !V8_TARGET_ARCH_ARM |
2436 | 2396 |
2437 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && \ | |
2438 !V8_TARGET_ARCH_MIPS64 | |
2439 void InstructionSelector::VisitS16x8Select(Node* node) { UNIMPLEMENTED(); } | |
2440 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && | |
2441 // !V8_TARGET_ARCH_MIPS64 | |
2442 | |
2443 #if !V8_TARGET_ARCH_ARM | 2397 #if !V8_TARGET_ARCH_ARM |
2444 void InstructionSelector::VisitS8x16Shuffle(Node* node) { UNIMPLEMENTED(); } | 2398 void InstructionSelector::VisitS8x16Shuffle(Node* node) { UNIMPLEMENTED(); } |
2445 | |
2446 #endif // !V8_TARGET_ARCH_ARM | 2399 #endif // !V8_TARGET_ARCH_ARM |
2447 | 2400 |
2448 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && \ | |
2449 !V8_TARGET_ARCH_MIPS64 | |
2450 void InstructionSelector::VisitS8x16Select(Node* node) { UNIMPLEMENTED(); } | |
2451 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && | |
2452 // !V8_TARGET_ARCH_MIPS64 | |
2453 | |
2454 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 | 2401 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 |
2455 void InstructionSelector::VisitS1x4And(Node* node) { UNIMPLEMENTED(); } | |
2456 | |
2457 void InstructionSelector::VisitS1x4Or(Node* node) { UNIMPLEMENTED(); } | |
2458 | |
2459 void InstructionSelector::VisitS1x4Xor(Node* node) { UNIMPLEMENTED(); } | |
2460 | |
2461 void InstructionSelector::VisitS1x4Not(Node* node) { UNIMPLEMENTED(); } | |
2462 | |
2463 void InstructionSelector::VisitS1x4AnyTrue(Node* node) { UNIMPLEMENTED(); } | 2402 void InstructionSelector::VisitS1x4AnyTrue(Node* node) { UNIMPLEMENTED(); } |
2464 | 2403 |
2465 void InstructionSelector::VisitS1x4AllTrue(Node* node) { UNIMPLEMENTED(); } | 2404 void InstructionSelector::VisitS1x4AllTrue(Node* node) { UNIMPLEMENTED(); } |
2466 | 2405 |
2467 void InstructionSelector::VisitS1x8And(Node* node) { UNIMPLEMENTED(); } | |
2468 | |
2469 void InstructionSelector::VisitS1x8Or(Node* node) { UNIMPLEMENTED(); } | |
2470 | |
2471 void InstructionSelector::VisitS1x8Xor(Node* node) { UNIMPLEMENTED(); } | |
2472 | |
2473 void InstructionSelector::VisitS1x8Not(Node* node) { UNIMPLEMENTED(); } | |
2474 | |
2475 void InstructionSelector::VisitS1x8AnyTrue(Node* node) { UNIMPLEMENTED(); } | 2406 void InstructionSelector::VisitS1x8AnyTrue(Node* node) { UNIMPLEMENTED(); } |
2476 | 2407 |
2477 void InstructionSelector::VisitS1x8AllTrue(Node* node) { UNIMPLEMENTED(); } | 2408 void InstructionSelector::VisitS1x8AllTrue(Node* node) { UNIMPLEMENTED(); } |
2478 | 2409 |
2479 void InstructionSelector::VisitS1x16And(Node* node) { UNIMPLEMENTED(); } | |
2480 | |
2481 void InstructionSelector::VisitS1x16Or(Node* node) { UNIMPLEMENTED(); } | |
2482 | |
2483 void InstructionSelector::VisitS1x16Xor(Node* node) { UNIMPLEMENTED(); } | |
2484 | |
2485 void InstructionSelector::VisitS1x16Not(Node* node) { UNIMPLEMENTED(); } | |
2486 | |
2487 void InstructionSelector::VisitS1x16AnyTrue(Node* node) { UNIMPLEMENTED(); } | 2410 void InstructionSelector::VisitS1x16AnyTrue(Node* node) { UNIMPLEMENTED(); } |
2488 | 2411 |
2489 void InstructionSelector::VisitS1x16AllTrue(Node* node) { UNIMPLEMENTED(); } | 2412 void InstructionSelector::VisitS1x16AllTrue(Node* node) { UNIMPLEMENTED(); } |
2490 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 | 2413 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 |
2491 | 2414 |
2492 void InstructionSelector::VisitFinishRegion(Node* node) { EmitIdentity(node); } | 2415 void InstructionSelector::VisitFinishRegion(Node* node) { EmitIdentity(node); } |
2493 | 2416 |
2494 void InstructionSelector::VisitParameter(Node* node) { | 2417 void InstructionSelector::VisitParameter(Node* node) { |
2495 OperandGenerator g(this); | 2418 OperandGenerator g(this); |
2496 int index = ParameterIndexOf(node->op()); | 2419 int index = ParameterIndexOf(node->op()); |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2861 return new (instruction_zone()) FrameStateDescriptor( | 2784 return new (instruction_zone()) FrameStateDescriptor( |
2862 instruction_zone(), state_info.type(), state_info.bailout_id(), | 2785 instruction_zone(), state_info.type(), state_info.bailout_id(), |
2863 state_info.state_combine(), parameters, locals, stack, | 2786 state_info.state_combine(), parameters, locals, stack, |
2864 state_info.shared_info(), outer_state); | 2787 state_info.shared_info(), outer_state); |
2865 } | 2788 } |
2866 | 2789 |
2867 | 2790 |
2868 } // namespace compiler | 2791 } // namespace compiler |
2869 } // namespace internal | 2792 } // namespace internal |
2870 } // namespace v8 | 2793 } // namespace v8 |
OLD | NEW |