| Index: runtime/vm/constants_x64.h
|
| diff --git a/runtime/vm/constants_x64.h b/runtime/vm/constants_x64.h
|
| index c2b48c56cab5b89b08ad3ae8eef6c0ef4765ffbd..9c92faa5d030af33954b91ee4b929e957dfb0385 100644
|
| --- a/runtime/vm/constants_x64.h
|
| +++ b/runtime/vm/constants_x64.h
|
| @@ -8,7 +8,6 @@
|
| namespace dart {
|
|
|
| enum Register {
|
| - kFirstFreeCpuRegister = 0,
|
| RAX = 0,
|
| RCX = 1,
|
| RDX = 2,
|
| @@ -25,9 +24,8 @@ enum Register {
|
| R13 = 13,
|
| R14 = 14,
|
| R15 = 15,
|
| - kLastFreeCpuRegister = 15,
|
| kNumberOfCpuRegisters = 16,
|
| - kNoRegister = -1 // Signals an illegal register.
|
| + kNoRegister = -1, // Signals an illegal register.
|
| };
|
|
|
|
|
| @@ -96,6 +94,7 @@ const Register ARGS_DESC_REG = R10; // Arguments descriptor register.
|
| const Register CODE_REG = R12;
|
| const Register THR = R14; // Caches current thread in generated code.
|
|
|
| +
|
| // Exception object is passed in this register to the catch handlers when an
|
| // exception is thrown.
|
| const Register kExceptionObjectReg = RAX;
|
| @@ -105,6 +104,20 @@ const Register kExceptionObjectReg = RAX;
|
| const Register kStackTraceObjectReg = RDX;
|
|
|
|
|
| +typedef uint32_t RegList;
|
| +const RegList kAllCpuRegistersList = 0xFFFF;
|
| +
|
| +const RegList kReservedCpuRegisters =
|
| + (1 << SPREG) |
|
| + (1 << FPREG) |
|
| + (1 << TMP) |
|
| + (1 << PP) |
|
| + (1 << THR);
|
| +// CPU registers available to Dart allocator.
|
| +const RegList kDartAvailableCpuRegs =
|
| + kAllCpuRegistersList & ~kReservedCpuRegisters;
|
| +
|
| +
|
| enum ScaleFactor {
|
| TIMES_1 = 0,
|
| TIMES_2 = 1,
|
|
|