Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Side by Side Diff: src/compiler/instruction-selector.cc

Issue 2919203002: [WASM] Eliminate SIMD boolean vector types. (Closed)
Patch Set: Restore DCHECKs in AssembleMove/Swap now that we're back to 1 SIMD representation. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/compiler/instruction-selector.h ('k') | src/compiler/js-native-context-specialization.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « src/compiler/instruction-selector.h ('k') | src/compiler/js-native-context-specialization.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698