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_ASSEMBLER_ARM64_H_ | 5 #ifndef V8_ARM64_ASSEMBLER_ARM64_H_ |
6 #define V8_ARM64_ASSEMBLER_ARM64_H_ | 6 #define V8_ARM64_ASSEMBLER_ARM64_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <map> | 9 #include <map> |
10 | 10 |
(...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
700 unsigned shift_amount() const { return shift_amount_; } | 700 unsigned shift_amount() const { return shift_amount_; } |
701 inline bool IsImmediateOffset() const; | 701 inline bool IsImmediateOffset() const; |
702 inline bool IsRegisterOffset() const; | 702 inline bool IsRegisterOffset() const; |
703 inline bool IsPreIndex() const; | 703 inline bool IsPreIndex() const; |
704 inline bool IsPostIndex() const; | 704 inline bool IsPostIndex() const; |
705 | 705 |
706 // For offset modes, return the offset as an Operand. This helper cannot | 706 // For offset modes, return the offset as an Operand. This helper cannot |
707 // handle indexed modes. | 707 // handle indexed modes. |
708 inline Operand OffsetAsOperand() const; | 708 inline Operand OffsetAsOperand() const; |
709 | 709 |
710 enum PairResult { | |
711 kNotPair, // Can't use a pair instruction. | |
712 kPairAB, // Can use a pair instruction (operandA has lower address). | |
713 kPairBA }; // Can use a pair instruction (operandB has lower address). | |
ulan
2014/06/04 09:28:19
Nit: "};" should be in a separate line.
vincent.belliard
2014/06/09 10:31:15
Done.
| |
714 // Check if two MemOperand are consistent for stp/ldp use. | |
715 static PairResult AreConsistentForPair(const MemOperand& operandA, | |
716 const MemOperand& operandB, | |
717 int access_size_log2 = kXRegSizeLog2); | |
718 | |
710 private: | 719 private: |
711 Register base_; | 720 Register base_; |
712 Register regoffset_; | 721 Register regoffset_; |
713 ptrdiff_t offset_; | 722 ptrdiff_t offset_; |
714 AddrMode addrmode_; | 723 AddrMode addrmode_; |
715 Shift shift_; | 724 Shift shift_; |
716 Extend extend_; | 725 Extend extend_; |
717 unsigned shift_amount_; | 726 unsigned shift_amount_; |
718 }; | 727 }; |
719 | 728 |
(...skipping 1518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2238 class EnsureSpace BASE_EMBEDDED { | 2247 class EnsureSpace BASE_EMBEDDED { |
2239 public: | 2248 public: |
2240 explicit EnsureSpace(Assembler* assembler) { | 2249 explicit EnsureSpace(Assembler* assembler) { |
2241 assembler->CheckBufferSpace(); | 2250 assembler->CheckBufferSpace(); |
2242 } | 2251 } |
2243 }; | 2252 }; |
2244 | 2253 |
2245 } } // namespace v8::internal | 2254 } } // namespace v8::internal |
2246 | 2255 |
2247 #endif // V8_ARM64_ASSEMBLER_ARM64_H_ | 2256 #endif // V8_ARM64_ASSEMBLER_ARM64_H_ |
OLD | NEW |