Index: src/ia32/macro-assembler-ia32.h |
diff --git a/src/ia32/macro-assembler-ia32.h b/src/ia32/macro-assembler-ia32.h |
index 16361ad2390ffeea3a19c4f1789f0a2e10f8ab60..62bb0f36343c93019e5dd5ed87076addd6fab91d 100644 |
--- a/src/ia32/macro-assembler-ia32.h |
+++ b/src/ia32/macro-assembler-ia32.h |
@@ -143,7 +143,11 @@ 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); |
+ // Store the value in register/immediate src in the safepoint |
+ // register stack slot for register dst. |
+ void StoreToSafepointRegisterSlot(Register dst, Register src); |
+ void StoreToSafepointRegisterSlot(Register dst, Immediate src); |
+ void LoadFromSafepointRegisterSlot(Register dst, Register src); |
// --------------------------------------------------------------------------- |
// JavaScript invokes |
@@ -667,6 +671,15 @@ class MacroAssembler: public Assembler { |
MUST_USE_RESULT MaybeObject* 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); |
+ |
+ // Needs access to SafepointRegisterStackIndex for optimized frame |
+ // traversal. |
+ friend class OptimizedFrame; |
}; |