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 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 } | 314 } |
315 | 315 |
316 Register rm() const { | 316 Register rm() const { |
317 return ((kind() == IndexRegister) || (kind() == ScaledIndexRegister)) ? | 317 return ((kind() == IndexRegister) || (kind() == ScaledIndexRegister)) ? |
318 Instr::At(reinterpret_cast<uword>(&encoding_))->RmField() : | 318 Instr::At(reinterpret_cast<uword>(&encoding_))->RmField() : |
319 kNoRegister; | 319 kNoRegister; |
320 } | 320 } |
321 | 321 |
322 Mode mode() const { return static_cast<Mode>(encoding() & kModeMask); } | 322 Mode mode() const { return static_cast<Mode>(encoding() & kModeMask); } |
323 | 323 |
| 324 bool has_writeback() const { |
| 325 return (mode() == PreIndex) || (mode() == PostIndex) || |
| 326 (mode() == NegPreIndex) || (mode() == NegPostIndex); |
| 327 } |
| 328 |
324 uint32_t encoding() const { return encoding_; } | 329 uint32_t encoding() const { return encoding_; } |
325 | 330 |
326 // Encoding for addressing mode 3. | 331 // Encoding for addressing mode 3. |
327 uint32_t encoding3() const; | 332 uint32_t encoding3() const; |
328 | 333 |
329 // Encoding for vfp load/store addressing. | 334 // Encoding for vfp load/store addressing. |
330 uint32_t vencoding() const; | 335 uint32_t vencoding() const; |
331 | 336 |
332 OffsetKind kind() const { return kind_; } | 337 OffsetKind kind() const { return kind_; } |
333 | 338 |
(...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1205 Register new_value, | 1210 Register new_value, |
1206 FieldContent old_content); | 1211 FieldContent old_content); |
1207 | 1212 |
1208 DISALLOW_ALLOCATION(); | 1213 DISALLOW_ALLOCATION(); |
1209 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1214 DISALLOW_COPY_AND_ASSIGN(Assembler); |
1210 }; | 1215 }; |
1211 | 1216 |
1212 } // namespace dart | 1217 } // namespace dart |
1213 | 1218 |
1214 #endif // VM_ASSEMBLER_ARM_H_ | 1219 #endif // VM_ASSEMBLER_ARM_H_ |
OLD | NEW |