| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VM_ASSEMBLER_ARM_H_ | 5 #ifndef VM_ASSEMBLER_ARM_H_ |
| 6 #define VM_ASSEMBLER_ARM_H_ | 6 #define VM_ASSEMBLER_ARM_H_ |
| 7 | 7 |
| 8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
| 9 #error Do not include assembler_arm.h directly; use assembler.h instead. | 9 #error Do not include assembler_arm.h directly; use assembler.h instead. |
| 10 #endif | 10 #endif |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 } | 252 } |
| 253 | 253 |
| 254 explicit Address(Register rn, Register rm, Shift shift = LSL, | 254 explicit Address(Register rn, Register rm, Shift shift = LSL, |
| 255 uint32_t shift_imm = 0, Mode am = Offset) { | 255 uint32_t shift_imm = 0, Mode am = Offset) { |
| 256 ShifterOperand so(rm, shift, shift_imm); | 256 ShifterOperand so(rm, shift, shift_imm); |
| 257 | 257 |
| 258 kind_ = ShiftedRegister; | 258 kind_ = ShiftedRegister; |
| 259 encoding_ = so.encoding() | am | (static_cast<uint32_t>(rn) << kRnShift); | 259 encoding_ = so.encoding() | am | (static_cast<uint32_t>(rn) << kRnShift); |
| 260 } | 260 } |
| 261 | 261 |
| 262 static bool CanHoldLoadOffset(LoadOperandType type, int offset); | 262 static bool CanHoldLoadOffset(LoadOperandType type, |
| 263 static bool CanHoldStoreOffset(StoreOperandType type, int offset); | 263 int32_t offset, |
| 264 int32_t* offset_mask); |
| 265 static bool CanHoldStoreOffset(StoreOperandType type, |
| 266 int32_t offset, |
| 267 int32_t* offset_mask); |
| 264 | 268 |
| 265 private: | 269 private: |
| 266 uint32_t encoding() const { return encoding_; } | 270 uint32_t encoding() const { return encoding_; } |
| 267 | 271 |
| 268 // Encoding for addressing mode 3. | 272 // Encoding for addressing mode 3. |
| 269 uint32_t encoding3() const; | 273 uint32_t encoding3() const; |
| 270 | 274 |
| 271 // Encoding for vfp load/store addressing. | 275 // Encoding for vfp load/store addressing. |
| 272 uint32_t vencoding() const; | 276 uint32_t vencoding() const; |
| 273 | 277 |
| (...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 764 return *reg1 - *reg2; | 768 return *reg1 - *reg2; |
| 765 } | 769 } |
| 766 | 770 |
| 767 DISALLOW_ALLOCATION(); | 771 DISALLOW_ALLOCATION(); |
| 768 DISALLOW_COPY_AND_ASSIGN(Assembler); | 772 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 769 }; | 773 }; |
| 770 | 774 |
| 771 } // namespace dart | 775 } // namespace dart |
| 772 | 776 |
| 773 #endif // VM_ASSEMBLER_ARM_H_ | 777 #endif // VM_ASSEMBLER_ARM_H_ |
| OLD | NEW |