| 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). |
| 714 }; |
| 715 // Check if two MemOperand are consistent for stp/ldp use. |
| 716 static PairResult AreConsistentForPair(const MemOperand& operandA, |
| 717 const MemOperand& operandB, |
| 718 int access_size_log2 = kXRegSizeLog2); |
| 719 |
| 710 private: | 720 private: |
| 711 Register base_; | 721 Register base_; |
| 712 Register regoffset_; | 722 Register regoffset_; |
| 713 ptrdiff_t offset_; | 723 ptrdiff_t offset_; |
| 714 AddrMode addrmode_; | 724 AddrMode addrmode_; |
| 715 Shift shift_; | 725 Shift shift_; |
| 716 Extend extend_; | 726 Extend extend_; |
| 717 unsigned shift_amount_; | 727 unsigned shift_amount_; |
| 718 }; | 728 }; |
| 719 | 729 |
| (...skipping 1518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2238 class EnsureSpace BASE_EMBEDDED { | 2248 class EnsureSpace BASE_EMBEDDED { |
| 2239 public: | 2249 public: |
| 2240 explicit EnsureSpace(Assembler* assembler) { | 2250 explicit EnsureSpace(Assembler* assembler) { |
| 2241 assembler->CheckBufferSpace(); | 2251 assembler->CheckBufferSpace(); |
| 2242 } | 2252 } |
| 2243 }; | 2253 }; |
| 2244 | 2254 |
| 2245 } } // namespace v8::internal | 2255 } } // namespace v8::internal |
| 2246 | 2256 |
| 2247 #endif // V8_ARM64_ASSEMBLER_ARM64_H_ | 2257 #endif // V8_ARM64_ASSEMBLER_ARM64_H_ |
| OLD | NEW |