Chromium Code Reviews| 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 |