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_X64_H_ | 5 #ifndef VM_CONSTANTS_X64_H_ |
6 #define VM_CONSTANTS_X64_H_ | 6 #define VM_CONSTANTS_X64_H_ |
7 | 7 |
8 namespace dart { | 8 namespace dart { |
9 | 9 |
10 enum Register { | 10 enum Register { |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 const Register FPREG = RBP; // Frame pointer register. | 90 const Register FPREG = RBP; // Frame pointer register. |
91 | 91 |
92 // Exception object is passed in this register to the catch handlers when an | 92 // Exception object is passed in this register to the catch handlers when an |
93 // exception is thrown. | 93 // exception is thrown. |
94 const Register kExceptionObjectReg = RAX; | 94 const Register kExceptionObjectReg = RAX; |
95 | 95 |
96 // Stack trace object is passed in this register to the catch handlers when | 96 // Stack trace object is passed in this register to the catch handlers when |
97 // an exception is thrown. | 97 // an exception is thrown. |
98 const Register kStackTraceObjectReg = RDX; | 98 const Register kStackTraceObjectReg = RDX; |
99 | 99 |
| 100 |
| 101 // Dart stack frame layout. |
| 102 static const int kLastParamSlotIndex = 2; |
| 103 static const int kFirstLocalSlotIndex = -2; |
| 104 |
| 105 |
100 enum ScaleFactor { | 106 enum ScaleFactor { |
101 TIMES_1 = 0, | 107 TIMES_1 = 0, |
102 TIMES_2 = 1, | 108 TIMES_2 = 1, |
103 TIMES_4 = 2, | 109 TIMES_4 = 2, |
104 TIMES_8 = 3, | 110 TIMES_8 = 3, |
105 TIMES_HALF_WORD_SIZE = kWordSizeLog2 - 1 | 111 TIMES_HALF_WORD_SIZE = kWordSizeLog2 - 1 |
106 }; | 112 }; |
107 | 113 |
108 | 114 |
109 enum Condition { | 115 enum Condition { |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 }; | 164 }; |
159 | 165 |
160 | 166 |
161 // The largest multibyte nop we will emit. This could go up to 15 if it | 167 // The largest multibyte nop we will emit. This could go up to 15 if it |
162 // becomes important to us. | 168 // becomes important to us. |
163 const int MAX_NOP_SIZE = 8; | 169 const int MAX_NOP_SIZE = 8; |
164 | 170 |
165 } // namespace dart | 171 } // namespace dart |
166 | 172 |
167 #endif // VM_CONSTANTS_X64_H_ | 173 #endif // VM_CONSTANTS_X64_H_ |
OLD | NEW |