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 namespace dart { | 8 namespace dart { |
9 | 9 |
10 enum Register { | 10 enum Register { |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 | 134 |
135 | 135 |
136 // Register aliases. | 136 // Register aliases. |
137 const Register TMP = AT; // Used as scratch register by assembler. | 137 const Register TMP = AT; // Used as scratch register by assembler. |
138 const Register CTX = S6; // Caches current context in generated code. | 138 const Register CTX = S6; // Caches current context in generated code. |
139 const Register PP = S7; // Caches object pool pointer in generated code. | 139 const Register PP = S7; // Caches object pool pointer in generated code. |
140 const Register SPREG = SP; // Stack pointer register. | 140 const Register SPREG = SP; // Stack pointer register. |
141 const Register FPREG = FP; // Frame pointer register. | 141 const Register FPREG = FP; // Frame pointer register. |
142 | 142 |
143 | 143 |
| 144 // Dart stack frame layout. |
| 145 static const int kLastParamSlotIndex = 3; |
| 146 static const int kFirstLocalSlotIndex = -2; |
| 147 |
| 148 |
144 // Values for the condition field. // UNIMPLEMENTED. | 149 // Values for the condition field. // UNIMPLEMENTED. |
145 enum Condition { | 150 enum Condition { |
146 kNoCondition = -1, | 151 kNoCondition = -1, |
147 kMaxCondition = 16, | 152 kMaxCondition = 16, |
148 }; | 153 }; |
149 | 154 |
150 | 155 |
151 // Constants used for the decoding or encoding of the individual fields of | 156 // Constants used for the decoding or encoding of the individual fields of |
152 // instructions. Based on the "Table 4.25 CPU Instruction Format Fields". | 157 // instructions. Based on the "Table 4.25 CPU Instruction Format Fields". |
153 enum InstructionFields { | 158 enum InstructionFields { |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 static Instr* At(uword pc) { return reinterpret_cast<Instr*>(pc); } | 377 static Instr* At(uword pc) { return reinterpret_cast<Instr*>(pc); } |
373 | 378 |
374 private: | 379 private: |
375 DISALLOW_ALLOCATION(); | 380 DISALLOW_ALLOCATION(); |
376 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); | 381 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); |
377 }; | 382 }; |
378 | 383 |
379 } // namespace dart | 384 } // namespace dart |
380 | 385 |
381 #endif // VM_CONSTANTS_MIPS_H_ | 386 #endif // VM_CONSTANTS_MIPS_H_ |
OLD | NEW |