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