| 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_MIPS_H_ | 5 #ifndef VM_CONSTANTS_MIPS_H_ |
| 6 #define VM_CONSTANTS_MIPS_H_ | 6 #define VM_CONSTANTS_MIPS_H_ |
| 7 | 7 |
| 8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
| 9 | 9 |
| 10 namespace dart { | 10 namespace dart { |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 kDartAvailableCpuRegs & ~kAbiPreservedCpuRegs; | 194 kDartAvailableCpuRegs & ~kAbiPreservedCpuRegs; |
| 195 const int kDartVolatileCpuRegCount = 14; | 195 const int kDartVolatileCpuRegCount = 14; |
| 196 const Register kDartFirstVolatileCpuReg = R2; | 196 const Register kDartFirstVolatileCpuReg = R2; |
| 197 const Register kDartLastVolatileCpuReg = R15; | 197 const Register kDartLastVolatileCpuReg = R15; |
| 198 | 198 |
| 199 // FPU registers 0 - 19 are not preserved across calls. | 199 // FPU registers 0 - 19 are not preserved across calls. |
| 200 const FRegister kDartFirstVolatileFpuReg = F0; | 200 const FRegister kDartFirstVolatileFpuReg = F0; |
| 201 const FRegister kDartLastVolatileFpuReg = F19; | 201 const FRegister kDartLastVolatileFpuReg = F19; |
| 202 const int kDartVolatileFpuRegCount = 20; | 202 const int kDartVolatileFpuRegCount = 20; |
| 203 | 203 |
| 204 |
| 205 // TODO(regis): Move these constants to stack_frame_mips.h. |
| 204 // Dart stack frame layout. | 206 // Dart stack frame layout. |
| 205 static const int kLastParamSlotIndex = 3; | 207 static const int kLastParamSlotIndex = 3; // From fp. |
| 206 static const int kFirstLocalSlotIndex = -2; | 208 static const int kFirstLocalSlotIndex = -2; // From fp. |
| 209 static const int kPcSlotIndexFromSp = -2; |
| 210 |
| 211 /* MIPS Dart Frame Layout |
| 212 |
| 213 | | <- TOS |
| 214 Callee frame | ... | |
| 215 | current RA | (PC of current frame) |
| 216 | PC Marker | (callee's frame code entry) |
| 217 +-------------------+ |
| 218 Current frame | ... | <- SP of current frame |
| 219 | first local | |
| 220 | caller's PP | |
| 221 | caller's FP | <- FP of current frame |
| 222 | caller's RA | (PC of caller frame) |
| 223 | PC Marker | (current frame's code entry) |
| 224 +-------------------+ |
| 225 Caller frame | last parameter | |
| 226 | ... | |
| 227 */ |
| 207 | 228 |
| 208 | 229 |
| 209 // Values for the condition field. | 230 // Values for the condition field. |
| 210 // There is no condition field on MIPS, but Conditions are used and passed | 231 // There is no condition field on MIPS, but Conditions are used and passed |
| 211 // around by the intermediate language, so we need them here, too. | 232 // around by the intermediate language, so we need them here, too. |
| 212 enum Condition { | 233 enum Condition { |
| 213 EQ, // equal | 234 EQ, // equal |
| 214 NE, // not equal | 235 NE, // not equal |
| 215 GT, // greater than | 236 GT, // greater than |
| 216 GE, // greater equal | 237 GE, // greater equal |
| (...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 #endif // defined(DEBUG) | 566 #endif // defined(DEBUG) |
| 546 | 567 |
| 547 private: | 568 private: |
| 548 DISALLOW_ALLOCATION(); | 569 DISALLOW_ALLOCATION(); |
| 549 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); | 570 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); |
| 550 }; | 571 }; |
| 551 | 572 |
| 552 } // namespace dart | 573 } // namespace dart |
| 553 | 574 |
| 554 #endif // VM_CONSTANTS_MIPS_H_ | 575 #endif // VM_CONSTANTS_MIPS_H_ |
| OLD | NEW |