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 1594 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1605 break; | 1605 break; |
1606 case kMips64Lb: | 1606 case kMips64Lb: |
1607 __ lb(i.OutputRegister(), i.MemoryOperand()); | 1607 __ lb(i.OutputRegister(), i.MemoryOperand()); |
1608 break; | 1608 break; |
1609 case kMips64Sb: | 1609 case kMips64Sb: |
1610 __ sb(i.InputRegister(2), i.MemoryOperand()); | 1610 __ sb(i.InputRegister(2), i.MemoryOperand()); |
1611 break; | 1611 break; |
1612 case kMips64Lhu: | 1612 case kMips64Lhu: |
1613 __ lhu(i.OutputRegister(), i.MemoryOperand()); | 1613 __ lhu(i.OutputRegister(), i.MemoryOperand()); |
1614 break; | 1614 break; |
| 1615 case kMips64Ulhu: |
| 1616 __ Ulhu(i.OutputRegister(), i.MemoryOperand()); |
| 1617 break; |
1615 case kMips64Lh: | 1618 case kMips64Lh: |
1616 __ lh(i.OutputRegister(), i.MemoryOperand()); | 1619 __ lh(i.OutputRegister(), i.MemoryOperand()); |
1617 break; | 1620 break; |
| 1621 case kMips64Ulh: |
| 1622 __ Ulh(i.OutputRegister(), i.MemoryOperand()); |
| 1623 break; |
1618 case kMips64Sh: | 1624 case kMips64Sh: |
1619 __ sh(i.InputRegister(2), i.MemoryOperand()); | 1625 __ sh(i.InputRegister(2), i.MemoryOperand()); |
1620 break; | 1626 break; |
| 1627 case kMips64Ush: |
| 1628 __ Ush(i.InputRegister(2), i.MemoryOperand(), kScratchReg); |
| 1629 break; |
1621 case kMips64Lw: | 1630 case kMips64Lw: |
1622 __ lw(i.OutputRegister(), i.MemoryOperand()); | 1631 __ lw(i.OutputRegister(), i.MemoryOperand()); |
1623 break; | 1632 break; |
| 1633 case kMips64Ulw: |
| 1634 __ Ulw(i.OutputRegister(), i.MemoryOperand()); |
| 1635 break; |
1624 case kMips64Lwu: | 1636 case kMips64Lwu: |
1625 __ lwu(i.OutputRegister(), i.MemoryOperand()); | 1637 __ lwu(i.OutputRegister(), i.MemoryOperand()); |
1626 break; | 1638 break; |
| 1639 case kMips64Ulwu: |
| 1640 __ Ulwu(i.OutputRegister(), i.MemoryOperand()); |
| 1641 break; |
1627 case kMips64Ld: | 1642 case kMips64Ld: |
1628 __ ld(i.OutputRegister(), i.MemoryOperand()); | 1643 __ ld(i.OutputRegister(), i.MemoryOperand()); |
1629 break; | 1644 break; |
| 1645 case kMips64Uld: |
| 1646 __ Uld(i.OutputRegister(), i.MemoryOperand()); |
| 1647 break; |
1630 case kMips64Sw: | 1648 case kMips64Sw: |
1631 __ sw(i.InputRegister(2), i.MemoryOperand()); | 1649 __ sw(i.InputRegister(2), i.MemoryOperand()); |
1632 break; | 1650 break; |
| 1651 case kMips64Usw: |
| 1652 __ Usw(i.InputRegister(2), i.MemoryOperand()); |
| 1653 break; |
1633 case kMips64Sd: | 1654 case kMips64Sd: |
1634 __ sd(i.InputRegister(2), i.MemoryOperand()); | 1655 __ sd(i.InputRegister(2), i.MemoryOperand()); |
1635 break; | 1656 break; |
| 1657 case kMips64Usd: |
| 1658 __ Usd(i.InputRegister(2), i.MemoryOperand()); |
| 1659 break; |
1636 case kMips64Lwc1: { | 1660 case kMips64Lwc1: { |
1637 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); | 1661 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); |
1638 break; | 1662 break; |
1639 } | 1663 } |
| 1664 case kMips64Ulwc1: { |
| 1665 __ Ulwc1(i.OutputSingleRegister(), i.MemoryOperand(), kScratchReg); |
| 1666 break; |
| 1667 } |
1640 case kMips64Swc1: { | 1668 case kMips64Swc1: { |
1641 size_t index = 0; | 1669 size_t index = 0; |
1642 MemOperand operand = i.MemoryOperand(&index); | 1670 MemOperand operand = i.MemoryOperand(&index); |
1643 __ swc1(i.InputSingleRegister(index), operand); | 1671 __ swc1(i.InputSingleRegister(index), operand); |
1644 break; | 1672 break; |
1645 } | 1673 } |
| 1674 case kMips64Uswc1: { |
| 1675 size_t index = 0; |
| 1676 MemOperand operand = i.MemoryOperand(&index); |
| 1677 __ Uswc1(i.InputSingleRegister(index), operand, kScratchReg); |
| 1678 break; |
| 1679 } |
1646 case kMips64Ldc1: | 1680 case kMips64Ldc1: |
1647 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); | 1681 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); |
1648 break; | 1682 break; |
| 1683 case kMips64Uldc1: |
| 1684 __ Uldc1(i.OutputDoubleRegister(), i.MemoryOperand(), kScratchReg); |
| 1685 break; |
1649 case kMips64Sdc1: | 1686 case kMips64Sdc1: |
1650 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); | 1687 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); |
1651 break; | 1688 break; |
| 1689 case kMips64Usdc1: |
| 1690 __ Usdc1(i.InputDoubleRegister(2), i.MemoryOperand(), kScratchReg); |
| 1691 break; |
1652 case kMips64Push: | 1692 case kMips64Push: |
1653 if (instr->InputAt(0)->IsFPRegister()) { | 1693 if (instr->InputAt(0)->IsFPRegister()) { |
1654 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); | 1694 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); |
1655 __ Subu(sp, sp, Operand(kDoubleSize)); | 1695 __ Subu(sp, sp, Operand(kDoubleSize)); |
1656 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); | 1696 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); |
1657 } else { | 1697 } else { |
1658 __ Push(i.InputRegister(0)); | 1698 __ Push(i.InputRegister(0)); |
1659 frame_access_state()->IncreaseSPDelta(1); | 1699 frame_access_state()->IncreaseSPDelta(1); |
1660 } | 1700 } |
1661 break; | 1701 break; |
(...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2372 padding_size -= v8::internal::Assembler::kInstrSize; | 2412 padding_size -= v8::internal::Assembler::kInstrSize; |
2373 } | 2413 } |
2374 } | 2414 } |
2375 } | 2415 } |
2376 | 2416 |
2377 #undef __ | 2417 #undef __ |
2378 | 2418 |
2379 } // namespace compiler | 2419 } // namespace compiler |
2380 } // namespace internal | 2420 } // namespace internal |
2381 } // namespace v8 | 2421 } // namespace v8 |
OLD | NEW |