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 #include "platform/globals.h" | 8 #include "platform/globals.h" |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 | 10 |
(...skipping 27 matching lines...) Expand all Loading... |
38 R7 = 7, | 38 R7 = 7, |
39 R8 = 8, | 39 R8 = 8, |
40 R9 = 9, | 40 R9 = 9, |
41 R10 = 10, | 41 R10 = 10, |
42 R11 = 11, | 42 R11 = 11, |
43 R12 = 12, | 43 R12 = 12, |
44 R13 = 13, | 44 R13 = 13, |
45 R14 = 14, | 45 R14 = 14, |
46 kLastFreeCpuRegister = 14, | 46 kLastFreeCpuRegister = 14, |
47 R15 = 15, | 47 R15 = 15, |
48 FP = 11, | 48 FP = R11, |
49 IP = 12, | 49 IP = R12, |
50 SP = 13, | 50 SP = R13, |
51 LR = 14, | 51 LR = R14, |
52 PC = 15, | 52 PC = R15, |
53 kNumberOfCpuRegisters = 16, | 53 kNumberOfCpuRegisters = 16, |
54 }; | 54 }; |
55 | 55 |
56 | 56 |
57 // Values for single-precision floating point registers. | 57 // Values for single-precision floating point registers. |
58 enum SRegister { | 58 enum SRegister { |
59 kNoSRegister = -1, | 59 kNoSRegister = -1, |
60 S0 = 0, | 60 S0 = 0, |
61 S1 = 1, | 61 S1 = 1, |
62 S2 = 2, | 62 S2 = 2, |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 // Architecture independent aliases. | 224 // Architecture independent aliases. |
225 typedef QRegister FpuRegister; | 225 typedef QRegister FpuRegister; |
226 | 226 |
227 const FpuRegister FpuTMP = QTMP; | 227 const FpuRegister FpuTMP = QTMP; |
228 const int kNumberOfFpuRegisters = kNumberOfQRegisters; | 228 const int kNumberOfFpuRegisters = kNumberOfQRegisters; |
229 const FpuRegister kNoFpuRegister = kNoQRegister; | 229 const FpuRegister kNoFpuRegister = kNoQRegister; |
230 | 230 |
231 // Register aliases. | 231 // Register aliases. |
232 const Register TMP = IP; // Used as scratch register by assembler. | 232 const Register TMP = IP; // Used as scratch register by assembler. |
233 const Register TMP2 = kNoRegister; // There is no second assembler temporary. | 233 const Register TMP2 = kNoRegister; // There is no second assembler temporary. |
234 const Register CTX = R9; // Location of current context at method entry. | 234 const Register CTX = R10; // Location of current context at method entry. |
235 const Register PP = R10; // Caches object pool pointer in generated code. | 235 const Register PP = R9; // Caches object pool pointer in generated code. |
236 const Register SPREG = SP; // Stack pointer register. | 236 const Register SPREG = SP; // Stack pointer register. |
237 const Register FPREG = FP; // Frame pointer register. | 237 const Register FPREG = FP; // Frame pointer register. |
238 const Register LRREG = LR; // Link register. | 238 const Register LRREG = LR; // Link register. |
239 const Register ICREG = R5; // IC data register. | 239 const Register ICREG = R5; // IC data register. |
240 const Register ARGS_DESC_REG = R4; | 240 const Register ARGS_DESC_REG = R4; |
| 241 const Register CODE_REG = R10; |
241 const Register THR = R8; // Caches current thread in generated code. | 242 const Register THR = R8; // Caches current thread in generated code. |
242 | 243 |
243 // R15 encodes APSR in the vmrs instruction. | 244 // R15 encodes APSR in the vmrs instruction. |
244 const Register APSR = R15; | 245 const Register APSR = R15; |
245 | 246 |
246 // Exception object is passed in this register to the catch handlers when an | 247 // Exception object is passed in this register to the catch handlers when an |
247 // exception is thrown. | 248 // exception is thrown. |
248 const Register kExceptionObjectReg = R0; | 249 const Register kExceptionObjectReg = R0; |
249 | 250 |
250 // Stack trace object is passed in this register to the catch handlers when | 251 // Stack trace object is passed in this register to the catch handlers when |
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
706 static Instr* At(uword pc) { return reinterpret_cast<Instr*>(pc); } | 707 static Instr* At(uword pc) { return reinterpret_cast<Instr*>(pc); } |
707 | 708 |
708 private: | 709 private: |
709 DISALLOW_ALLOCATION(); | 710 DISALLOW_ALLOCATION(); |
710 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); | 711 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); |
711 }; | 712 }; |
712 | 713 |
713 } // namespace dart | 714 } // namespace dart |
714 | 715 |
715 #endif // VM_CONSTANTS_ARM_H_ | 716 #endif // VM_CONSTANTS_ARM_H_ |
OLD | NEW |