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/assert.h" | 8 #include "platform/assert.h" |
9 | 9 |
10 namespace dart { | 10 namespace dart { |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 const FpuRegister kNoFpuRegister = kNoDRegister; | 136 const FpuRegister kNoFpuRegister = kNoDRegister; |
137 | 137 |
138 | 138 |
139 // Register aliases. | 139 // Register aliases. |
140 const Register TMP = IP; // Used as scratch register by assembler. | 140 const Register TMP = IP; // Used as scratch register by assembler. |
141 const Register CTX = R9; // Caches current context in generated code. | 141 const Register CTX = R9; // Caches current context in generated code. |
142 const Register PP = R10; // Caches object pool pointer in generated code. | 142 const Register PP = R10; // Caches object pool pointer in generated code. |
143 const Register SPREG = SP; // Stack pointer register. | 143 const Register SPREG = SP; // Stack pointer register. |
144 const Register FPREG = FP; // Frame pointer register. | 144 const Register FPREG = FP; // Frame pointer register. |
145 | 145 |
146 | |
147 // Exception object is passed in this register to the catch handlers when an | 146 // Exception object is passed in this register to the catch handlers when an |
148 // exception is thrown. | 147 // exception is thrown. |
149 const Register kExceptionObjectReg = R0; // Unimplemented. | 148 const Register kExceptionObjectReg = R0; |
| 149 |
| 150 // Stack trace object is passed in this register to the catch handlers when |
| 151 // an exception is thrown. |
| 152 const Register kStackTraceObjectReg = R1; |
150 | 153 |
151 | 154 |
152 // List of registers used in load/store multiple. | 155 // List of registers used in load/store multiple. |
153 typedef uint16_t RegList; | 156 typedef uint16_t RegList; |
154 const RegList kAllCpuRegistersList = 0xFFFF; | 157 const RegList kAllCpuRegistersList = 0xFFFF; |
155 | 158 |
156 | 159 |
157 // C++ ABI call registers. | 160 // C++ ABI call registers. |
158 const RegList kAbiArgumentCpuRegs = | 161 const RegList kAbiArgumentCpuRegs = |
159 (1 << R0) | (1 << R1) | (1 << R2) | (1 << R3); | 162 (1 << R0) | (1 << R1) | (1 << R2) | (1 << R3); |
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
564 static Instr* At(uword pc) { return reinterpret_cast<Instr*>(pc); } | 567 static Instr* At(uword pc) { return reinterpret_cast<Instr*>(pc); } |
565 | 568 |
566 private: | 569 private: |
567 DISALLOW_ALLOCATION(); | 570 DISALLOW_ALLOCATION(); |
568 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); | 571 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); |
569 }; | 572 }; |
570 | 573 |
571 } // namespace dart | 574 } // namespace dart |
572 | 575 |
573 #endif // VM_CONSTANTS_ARM_H_ | 576 #endif // VM_CONSTANTS_ARM_H_ |
OLD | NEW |