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/ast/scopes.h" | 5 #include "src/ast/scopes.h" |
6 #include "src/compiler/code-generator.h" | 6 #include "src/compiler/code-generator.h" |
7 #include "src/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
8 #include "src/compiler/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
9 #include "src/compiler/node-matchers.h" | 9 #include "src/compiler/node-matchers.h" |
10 #include "src/compiler/osr.h" | 10 #include "src/compiler/osr.h" |
(...skipping 1617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1628 break; | 1628 break; |
1629 case kMips64Lb: | 1629 case kMips64Lb: |
1630 __ lb(i.OutputRegister(), i.MemoryOperand()); | 1630 __ lb(i.OutputRegister(), i.MemoryOperand()); |
1631 break; | 1631 break; |
1632 case kMips64Sb: | 1632 case kMips64Sb: |
1633 __ sb(i.InputRegister(2), i.MemoryOperand()); | 1633 __ sb(i.InputRegister(2), i.MemoryOperand()); |
1634 break; | 1634 break; |
1635 case kMips64Lhu: | 1635 case kMips64Lhu: |
1636 __ lhu(i.OutputRegister(), i.MemoryOperand()); | 1636 __ lhu(i.OutputRegister(), i.MemoryOperand()); |
1637 break; | 1637 break; |
| 1638 case kMips64Ulhu: |
| 1639 __ Ulhu(i.OutputRegister(), i.MemoryOperand()); |
| 1640 break; |
1638 case kMips64Lh: | 1641 case kMips64Lh: |
1639 __ lh(i.OutputRegister(), i.MemoryOperand()); | 1642 __ lh(i.OutputRegister(), i.MemoryOperand()); |
1640 break; | 1643 break; |
| 1644 case kMips64Ulh: |
| 1645 __ Ulh(i.OutputRegister(), i.MemoryOperand()); |
| 1646 break; |
1641 case kMips64Sh: | 1647 case kMips64Sh: |
1642 __ sh(i.InputRegister(2), i.MemoryOperand()); | 1648 __ sh(i.InputRegister(2), i.MemoryOperand()); |
1643 break; | 1649 break; |
| 1650 case kMips64Ush: |
| 1651 __ Ush(i.InputRegister(2), i.MemoryOperand(), kScratchReg); |
| 1652 break; |
1644 case kMips64Lw: | 1653 case kMips64Lw: |
1645 __ lw(i.OutputRegister(), i.MemoryOperand()); | 1654 __ lw(i.OutputRegister(), i.MemoryOperand()); |
1646 break; | 1655 break; |
| 1656 case kMips64Ulw: |
| 1657 __ Ulw(i.OutputRegister(), i.MemoryOperand()); |
| 1658 break; |
1647 case kMips64Lwu: | 1659 case kMips64Lwu: |
1648 __ lwu(i.OutputRegister(), i.MemoryOperand()); | 1660 __ lwu(i.OutputRegister(), i.MemoryOperand()); |
1649 break; | 1661 break; |
| 1662 case kMips64Ulwu: |
| 1663 __ Ulwu(i.OutputRegister(), i.MemoryOperand()); |
| 1664 break; |
1650 case kMips64Ld: | 1665 case kMips64Ld: |
1651 __ ld(i.OutputRegister(), i.MemoryOperand()); | 1666 __ ld(i.OutputRegister(), i.MemoryOperand()); |
1652 break; | 1667 break; |
| 1668 case kMips64Uld: |
| 1669 __ Uld(i.OutputRegister(), i.MemoryOperand()); |
| 1670 break; |
1653 case kMips64Sw: | 1671 case kMips64Sw: |
1654 __ sw(i.InputRegister(2), i.MemoryOperand()); | 1672 __ sw(i.InputRegister(2), i.MemoryOperand()); |
1655 break; | 1673 break; |
| 1674 case kMips64Usw: |
| 1675 __ Usw(i.InputRegister(2), i.MemoryOperand()); |
| 1676 break; |
1656 case kMips64Sd: | 1677 case kMips64Sd: |
1657 __ sd(i.InputRegister(2), i.MemoryOperand()); | 1678 __ sd(i.InputRegister(2), i.MemoryOperand()); |
1658 break; | 1679 break; |
| 1680 case kMips64Usd: |
| 1681 __ Usd(i.InputRegister(2), i.MemoryOperand()); |
| 1682 break; |
1659 case kMips64Lwc1: { | 1683 case kMips64Lwc1: { |
1660 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); | 1684 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); |
1661 break; | 1685 break; |
1662 } | 1686 } |
| 1687 case kMips64Ulwc1: { |
| 1688 __ Ulwc1(i.OutputSingleRegister(), i.MemoryOperand(), kScratchReg); |
| 1689 break; |
| 1690 } |
1663 case kMips64Swc1: { | 1691 case kMips64Swc1: { |
1664 size_t index = 0; | 1692 size_t index = 0; |
1665 MemOperand operand = i.MemoryOperand(&index); | 1693 MemOperand operand = i.MemoryOperand(&index); |
1666 __ swc1(i.InputSingleRegister(index), operand); | 1694 __ swc1(i.InputSingleRegister(index), operand); |
1667 break; | 1695 break; |
1668 } | 1696 } |
| 1697 case kMips64Uswc1: { |
| 1698 size_t index = 0; |
| 1699 MemOperand operand = i.MemoryOperand(&index); |
| 1700 __ Uswc1(i.InputSingleRegister(index), operand, kScratchReg); |
| 1701 break; |
| 1702 } |
1669 case kMips64Ldc1: | 1703 case kMips64Ldc1: |
1670 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); | 1704 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); |
1671 break; | 1705 break; |
| 1706 case kMips64Uldc1: |
| 1707 __ Uldc1(i.OutputDoubleRegister(), i.MemoryOperand(), kScratchReg); |
| 1708 break; |
1672 case kMips64Sdc1: | 1709 case kMips64Sdc1: |
1673 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); | 1710 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); |
1674 break; | 1711 break; |
| 1712 case kMips64Usdc1: |
| 1713 __ Usdc1(i.InputDoubleRegister(2), i.MemoryOperand(), kScratchReg); |
| 1714 break; |
1675 case kMips64Push: | 1715 case kMips64Push: |
1676 if (instr->InputAt(0)->IsFPRegister()) { | 1716 if (instr->InputAt(0)->IsFPRegister()) { |
1677 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); | 1717 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); |
1678 __ Subu(sp, sp, Operand(kDoubleSize)); | 1718 __ Subu(sp, sp, Operand(kDoubleSize)); |
1679 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); | 1719 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); |
1680 } else { | 1720 } else { |
1681 __ Push(i.InputRegister(0)); | 1721 __ Push(i.InputRegister(0)); |
1682 frame_access_state()->IncreaseSPDelta(1); | 1722 frame_access_state()->IncreaseSPDelta(1); |
1683 } | 1723 } |
1684 break; | 1724 break; |
(...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2417 padding_size -= v8::internal::Assembler::kInstrSize; | 2457 padding_size -= v8::internal::Assembler::kInstrSize; |
2418 } | 2458 } |
2419 } | 2459 } |
2420 } | 2460 } |
2421 | 2461 |
2422 #undef __ | 2462 #undef __ |
2423 | 2463 |
2424 } // namespace compiler | 2464 } // namespace compiler |
2425 } // namespace internal | 2465 } // namespace internal |
2426 } // namespace v8 | 2466 } // namespace v8 |
OLD | NEW |