| 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_IA32_H_ | 5 #ifndef VM_CONSTANTS_IA32_H_ |
| 6 #define VM_CONSTANTS_IA32_H_ | 6 #define VM_CONSTANTS_IA32_H_ |
| 7 | 7 |
| 8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
| 9 | 9 |
| 10 namespace dart { | 10 namespace dart { |
| 11 | 11 |
| 12 enum Register { | 12 enum Register { |
| 13 kFirstFreeCpuRegister = 0, |
| 13 EAX = 0, | 14 EAX = 0, |
| 14 ECX = 1, | 15 ECX = 1, |
| 15 EDX = 2, | 16 EDX = 2, |
| 16 EBX = 3, | 17 EBX = 3, |
| 17 ESP = 4, | 18 ESP = 4, |
| 18 EBP = 5, | 19 EBP = 5, |
| 19 ESI = 6, | 20 ESI = 6, |
| 20 EDI = 7, | 21 EDI = 7, |
| 22 kLastFreeCpuRegister = 7, |
| 21 kNumberOfCpuRegisters = 8, | 23 kNumberOfCpuRegisters = 8, |
| 22 kFirstByteUnsafeRegister = 4, | |
| 23 kNoRegister = -1 // Signals an illegal register. | 24 kNoRegister = -1 // Signals an illegal register. |
| 24 }; | 25 }; |
| 25 | 26 |
| 26 | 27 |
| 27 enum ByteRegister { | 28 enum ByteRegister { |
| 28 AL = 0, | 29 AL = 0, |
| 29 CL = 1, | 30 CL = 1, |
| 30 DL = 2, | 31 DL = 2, |
| 31 BL = 3, | 32 BL = 3, |
| 32 AH = 4, | 33 AH = 4, |
| (...skipping 19 matching lines...) Expand all Loading... |
| 52 | 53 |
| 53 | 54 |
| 54 // Architecture independent aliases. | 55 // Architecture independent aliases. |
| 55 typedef XmmRegister FpuRegister; | 56 typedef XmmRegister FpuRegister; |
| 56 const FpuRegister FpuTMP = XMM0; | 57 const FpuRegister FpuTMP = XMM0; |
| 57 const int kNumberOfFpuRegisters = kNumberOfXmmRegisters; | 58 const int kNumberOfFpuRegisters = kNumberOfXmmRegisters; |
| 58 | 59 |
| 59 | 60 |
| 60 // Register aliases. | 61 // Register aliases. |
| 61 const Register TMP = kNoRegister; // No scratch register used by assembler. | 62 const Register TMP = kNoRegister; // No scratch register used by assembler. |
| 62 const Register CTX = ESI; // Caches current context in generated code. | 63 const Register CTX = ESI; // Caches current context in generated code. |
| 63 const Register SPREG = ESP; | 64 const Register PP = kNoRegister; // No object pool pointer. |
| 64 const Register FPREG = EBP; | 65 const Register SPREG = ESP; // Stack pointer register. |
| 66 const Register FPREG = EBP; // Frame pointer register. |
| 65 | 67 |
| 66 // Exception object is passed in this register to the catch handlers when an | 68 // Exception object is passed in this register to the catch handlers when an |
| 67 // exception is thrown. | 69 // exception is thrown. |
| 68 const Register kExceptionObjectReg = EAX; | 70 const Register kExceptionObjectReg = EAX; |
| 69 | 71 |
| 70 // Stack trace object is passed in this register to the catch handlers when | 72 // Stack trace object is passed in this register to the catch handlers when |
| 71 // an exception is thrown. | 73 // an exception is thrown. |
| 72 const Register kStackTraceObjectReg = EDX; | 74 const Register kStackTraceObjectReg = EDX; |
| 73 | 75 |
| 74 enum ScaleFactor { | 76 enum ScaleFactor { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 }; | 134 }; |
| 133 | 135 |
| 134 | 136 |
| 135 // The largest multibyte nop we will emit. This could go up to 15 if it | 137 // The largest multibyte nop we will emit. This could go up to 15 if it |
| 136 // becomes important to us. | 138 // becomes important to us. |
| 137 const int MAX_NOP_SIZE = 8; | 139 const int MAX_NOP_SIZE = 8; |
| 138 | 140 |
| 139 } // namespace dart | 141 } // namespace dart |
| 140 | 142 |
| 141 #endif // VM_CONSTANTS_IA32_H_ | 143 #endif // VM_CONSTANTS_IA32_H_ |
| OLD | NEW |