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_CONSTANTS_ARM_H_ | 5 #ifndef VM_CONSTANTS_ARM_H_ |
6 #define VM_CONSTANTS_ARM_H_ | 6 #define VM_CONSTANTS_ARM_H_ |
7 | 7 |
8 namespace dart { | 8 namespace dart { |
9 | 9 |
10 // We support both VFPv3-D16 and VFPv3-D32 profiles, but currently only one at | 10 // We support both VFPv3-D16 and VFPv3-D32 profiles, but currently only one at |
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 // } | 288 // } |
289 // | 289 // |
290 class Instr { | 290 class Instr { |
291 public: | 291 public: |
292 enum { | 292 enum { |
293 kInstrSize = 4, | 293 kInstrSize = 4, |
294 kInstrSizeLog2 = 2, | 294 kInstrSizeLog2 = 2, |
295 kPCReadOffset = 8 | 295 kPCReadOffset = 8 |
296 }; | 296 }; |
297 | 297 |
| 298 static const int32_t kBreakPointInstruction = // svc #kBreakpointSvcCode |
| 299 ((AL << kConditionShift) | (0xf << 24) | kBreakpointSvcCode); |
298 static const int kBreakPointInstructionSize = kInstrSize; | 300 static const int kBreakPointInstructionSize = kInstrSize; |
299 bool IsBreakPoint() { | 301 bool IsBreakPoint() { |
300 return IsBkpt(); | 302 return IsBkpt(); |
301 } | 303 } |
302 | 304 |
303 // Get the raw instruction bits. | 305 // Get the raw instruction bits. |
304 inline int32_t InstructionBits() const { | 306 inline int32_t InstructionBits() const { |
305 return *reinterpret_cast<const int32_t*>(this); | 307 return *reinterpret_cast<const int32_t*>(this); |
306 } | 308 } |
307 | 309 |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
498 Instr* Next() { return this + kInstrSize; } | 500 Instr* Next() { return this + kInstrSize; } |
499 | 501 |
500 private: | 502 private: |
501 DISALLOW_ALLOCATION(); | 503 DISALLOW_ALLOCATION(); |
502 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); | 504 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); |
503 }; | 505 }; |
504 | 506 |
505 } // namespace dart | 507 } // namespace dart |
506 | 508 |
507 #endif // VM_CONSTANTS_ARM_H_ | 509 #endif // VM_CONSTANTS_ARM_H_ |
OLD | NEW |