Index: src/ia32/macro-assembler-ia32.cc |
diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc |
index 7f93b843d4fbf8846032d4680910153555c15278..91b6651fe03776bb31cbc7ea56c36f9f949e952c 100644 |
--- a/src/ia32/macro-assembler-ia32.cc |
+++ b/src/ia32/macro-assembler-ia32.cc |
@@ -1654,6 +1654,28 @@ void MacroAssembler::LoadGlobalFunctionInitialMap(Register function, |
} |
+// Store the value in register src in the safepoint register stack |
+// slot for register dst. |
+void MacroAssembler::StoreToSafepointRegisterSlot(Register dst, Register src) { |
+ mov(SafepointRegisterSlot(dst), src); |
+} |
+ |
+ |
+void MacroAssembler::StoreToSafepointRegisterSlot(Register dst, Immediate src) { |
+ mov(SafepointRegisterSlot(dst), src); |
+} |
+ |
+ |
+void MacroAssembler::LoadFromSafepointRegisterSlot(Register dst, Register src) { |
+ mov(dst, SafepointRegisterSlot(src)); |
+} |
+ |
+ |
+Operand MacroAssembler::SafepointRegisterSlot(Register reg) { |
+ return Operand(esp, SafepointRegisterStackIndex(reg.code()) * kPointerSize); |
+} |
+ |
+ |
int MacroAssembler::SafepointRegisterStackIndex(int reg_code) { |
// The registers are pushed starting with the lowest encoding, |
// which means that lowest encodings are furthest away from |