Index: src/x64/macro-assembler-x64.h |
diff --git a/src/x64/macro-assembler-x64.h b/src/x64/macro-assembler-x64.h |
index 845de57cda4e849d44c5cfb49c015b9c1ce23dbd..4c5c60c8f0009b8db26c8daa07c49203df7204fd 100644 |
--- a/src/x64/macro-assembler-x64.h |
+++ b/src/x64/macro-assembler-x64.h |
@@ -171,10 +171,9 @@ class MacroAssembler: public Assembler { |
// Push and pop the registers that can hold pointers. |
void PushSafepointRegisters() { Pushad(); } |
void PopSafepointRegisters() { Popad(); } |
- static int SafepointRegisterStackIndex(int reg_code) { |
- return kNumSafepointRegisters - 1 - |
- kSafepointPushRegisterIndices[reg_code]; |
- } |
+ // Store the value in register src in the safepoint register stack |
+ // slot for register dst. |
+ void StoreToSafepointRegisterSlot(Register dst, Register src); |
// --------------------------------------------------------------------------- |
@@ -1035,6 +1034,17 @@ class MacroAssembler: public Assembler { |
Object* PopHandleScopeHelper(Register saved, |
Register scratch, |
bool gc_allowed); |
+ |
+ |
+ // Compute memory operands for safepoint stack slots. |
+ Operand SafepointRegisterSlot(Register reg); |
+ static int SafepointRegisterStackIndex(int reg_code) { |
+ return kNumSafepointRegisters - kSafepointPushRegisterIndices[reg_code] - 1; |
+ } |
+ |
+ // Needs access to SafepointRegisterStackIndex for optimized frame |
+ // traversal. |
+ friend class OptimizedFrame; |
}; |