OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 <stdlib.h> | 5 #include <stdlib.h> |
6 #include <cmath> | 6 #include <cmath> |
7 #include <cstdarg> | 7 #include <cstdarg> |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #if V8_TARGET_ARCH_ARM64 | 10 #if V8_TARGET_ARCH_ARM64 |
(...skipping 1658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1669 void Simulator::VisitLoadStorePairPreIndex(Instruction* instr) { | 1669 void Simulator::VisitLoadStorePairPreIndex(Instruction* instr) { |
1670 LoadStorePairHelper(instr, PreIndex); | 1670 LoadStorePairHelper(instr, PreIndex); |
1671 } | 1671 } |
1672 | 1672 |
1673 | 1673 |
1674 void Simulator::VisitLoadStorePairPostIndex(Instruction* instr) { | 1674 void Simulator::VisitLoadStorePairPostIndex(Instruction* instr) { |
1675 LoadStorePairHelper(instr, PostIndex); | 1675 LoadStorePairHelper(instr, PostIndex); |
1676 } | 1676 } |
1677 | 1677 |
1678 | 1678 |
1679 void Simulator::VisitLoadStorePairNonTemporal(Instruction* instr) { | |
1680 LoadStorePairHelper(instr, Offset); | |
1681 } | |
1682 | |
1683 | |
1684 void Simulator::LoadStorePairHelper(Instruction* instr, | 1679 void Simulator::LoadStorePairHelper(Instruction* instr, |
1685 AddrMode addrmode) { | 1680 AddrMode addrmode) { |
1686 unsigned rt = instr->Rt(); | 1681 unsigned rt = instr->Rt(); |
1687 unsigned rt2 = instr->Rt2(); | 1682 unsigned rt2 = instr->Rt2(); |
1688 unsigned addr_reg = instr->Rn(); | 1683 unsigned addr_reg = instr->Rn(); |
1689 size_t access_size = 1 << instr->SizeLSPair(); | 1684 size_t access_size = 1 << instr->SizeLSPair(); |
1690 int64_t offset = instr->ImmLSPair() * access_size; | 1685 int64_t offset = instr->ImmLSPair() * access_size; |
1691 uintptr_t address = LoadStoreAddress(addr_reg, offset, addrmode); | 1686 uintptr_t address = LoadStoreAddress(addr_reg, offset, addrmode); |
1692 uintptr_t address2 = address + access_size; | 1687 uintptr_t address2 = address + access_size; |
1693 uintptr_t stack = 0; | 1688 uintptr_t stack = 0; |
(...skipping 2140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3834 delete[] format; | 3829 delete[] format; |
3835 } | 3830 } |
3836 | 3831 |
3837 | 3832 |
3838 #endif // USE_SIMULATOR | 3833 #endif // USE_SIMULATOR |
3839 | 3834 |
3840 } // namespace internal | 3835 } // namespace internal |
3841 } // namespace v8 | 3836 } // namespace v8 |
3842 | 3837 |
3843 #endif // V8_TARGET_ARCH_ARM64 | 3838 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |