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 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "src/arm64/assembler-arm64.h" | 10 #include "src/arm64/assembler-arm64.h" |
(...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
735 void PokePair(const CPURegister& src1, const CPURegister& src2, int offset); | 735 void PokePair(const CPURegister& src1, const CPURegister& src2, int offset); |
736 | 736 |
737 // Peek at two values on the stack, and put them in 'dst1' and 'dst2'. The | 737 // Peek at two values on the stack, and put them in 'dst1' and 'dst2'. The |
738 // values peeked will be adjacent, with the value in 'dst2' being from a | 738 // values peeked will be adjacent, with the value in 'dst2' being from a |
739 // higher address than 'dst1'. The offset is in bytes. | 739 // higher address than 'dst1'. The offset is in bytes. |
740 // | 740 // |
741 // If the current stack pointer (according to StackPointer()) is csp, then | 741 // If the current stack pointer (according to StackPointer()) is csp, then |
742 // csp must be aligned to 16 bytes. | 742 // csp must be aligned to 16 bytes. |
743 void PeekPair(const CPURegister& dst1, const CPURegister& dst2, int offset); | 743 void PeekPair(const CPURegister& dst1, const CPURegister& dst2, int offset); |
744 | 744 |
| 745 // Emit code that loads |parameter_index|'th parameter from the stack to |
| 746 // the register according to the CallInterfaceDescriptor definition. |
| 747 // |sp_to_caller_sp_offset_in_words| specifies the number of words pushed |
| 748 // below the caller's sp. |
| 749 template <class Descriptor> |
| 750 void LoadParameterFromStack( |
| 751 Register reg, typename Descriptor::ParameterIndices parameter_index, |
| 752 int sp_to_ra_offset_in_words = 0) { |
| 753 DCHECK(Descriptor::kPassLastArgsOnStack); |
| 754 UNIMPLEMENTED(); |
| 755 } |
| 756 |
745 // Claim or drop stack space without actually accessing memory. | 757 // Claim or drop stack space without actually accessing memory. |
746 // | 758 // |
747 // In debug mode, both of these will write invalid data into the claimed or | 759 // In debug mode, both of these will write invalid data into the claimed or |
748 // dropped space. | 760 // dropped space. |
749 // | 761 // |
750 // If the current stack pointer (according to StackPointer()) is csp, then it | 762 // If the current stack pointer (according to StackPointer()) is csp, then it |
751 // must be aligned to 16 bytes and the size claimed or dropped must be a | 763 // must be aligned to 16 bytes and the size claimed or dropped must be a |
752 // multiple of 16 bytes. | 764 // multiple of 16 bytes. |
753 // | 765 // |
754 // Note that unit_size must be specified in bytes. For variants which take a | 766 // Note that unit_size must be specified in bytes. For variants which take a |
(...skipping 1553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2308 class RegisterBits : public BitField<unsigned, 0, 5> {}; | 2320 class RegisterBits : public BitField<unsigned, 0, 5> {}; |
2309 class DeltaBits : public BitField<uint32_t, 5, 32-5> {}; | 2321 class DeltaBits : public BitField<uint32_t, 5, 32-5> {}; |
2310 }; | 2322 }; |
2311 | 2323 |
2312 } // namespace internal | 2324 } // namespace internal |
2313 } // namespace v8 | 2325 } // namespace v8 |
2314 | 2326 |
2315 #define ACCESS_MASM(masm) masm-> | 2327 #define ACCESS_MASM(masm) masm-> |
2316 | 2328 |
2317 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 2329 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
OLD | NEW |