| 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 |