Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index 478f8a3eb14d595a52ff8389424680dcfa7179a1..286c3eee1f3270524f776abcb97e97ef0c4ae72c 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -1836,7 +1836,7 @@ void LCodeGen::DoDeferredLInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr, |
Label before_push_delta; |
__ bind(&before_push_delta); |
__ mov(temp, Immediate(delta)); |
- __ mov(Operand(esp, EspIndexForPushAll(temp) * kPointerSize), temp); |
+ __ StoreToSafepointRegisterSlot(temp, temp); |
__ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset)); |
__ call(stub.GetCode(), RelocInfo::CODE_TARGET); |
ASSERT_EQ(kAdditionalDelta, |
@@ -1844,8 +1844,7 @@ void LCodeGen::DoDeferredLInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr, |
RecordSafepointWithRegisters( |
instr->pointer_map(), 0, Safepoint::kNoDeoptimizationIndex); |
// Put the result value into the eax slot and restore all registers. |
- __ mov(Operand(esp, EspIndexForPushAll(eax) * kPointerSize), eax); |
- |
+ __ StoreToSafepointRegisterSlot(eax, eax); |
__ PopSafepointRegisters(); |
} |
@@ -2360,7 +2359,7 @@ void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LUnaryMathOperation* instr) { |
if (!tmp.is(eax)) __ mov(tmp, eax); |
// Restore input_reg after call to runtime. |
- __ mov(input_reg, Operand(esp, EspIndexForPushAll(input_reg) * kPointerSize)); |
+ __ LoadFromSafepointRegisterSlot(input_reg, input_reg); |
__ bind(&allocated); |
__ mov(tmp2, FieldOperand(input_reg, HeapNumber::kExponentOffset)); |
@@ -2368,7 +2367,7 @@ void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LUnaryMathOperation* instr) { |
__ mov(FieldOperand(tmp, HeapNumber::kExponentOffset), tmp2); |
__ mov(tmp2, FieldOperand(input_reg, HeapNumber::kMantissaOffset)); |
__ mov(FieldOperand(tmp, HeapNumber::kMantissaOffset), tmp2); |
- __ mov(Operand(esp, EspIndexForPushAll(input_reg) * kPointerSize), tmp); |
+ __ StoreToSafepointRegisterSlot(input_reg, tmp); |
__ bind(&done); |
__ PopSafepointRegisters(); |
@@ -2923,7 +2922,7 @@ void LCodeGen::DoDeferredStringCharCodeAt(LStringCharCodeAt* instr) { |
__ AbortIfNotSmi(eax); |
} |
__ SmiUntag(eax); |
- __ mov(Operand(esp, EspIndexForPushAll(result) * kPointerSize), eax); |
+ __ StoreToSafepointRegisterSlot(result, eax); |
__ PopSafepointRegisters(); |
} |
@@ -2991,7 +2990,7 @@ void LCodeGen::DoDeferredNumberTagI(LNumberTagI* instr) { |
// TODO(3095996): Put a valid pointer value in the stack slot where the result |
// register is stored, as this register is in the pointer map, but contains an |
// integer value. |
- __ mov(Operand(esp, EspIndexForPushAll(reg) * kPointerSize), Immediate(0)); |
+ __ StoreToSafepointRegisterSlot(reg, Immediate(0)); |
__ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset)); |
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber); |
@@ -3003,7 +3002,7 @@ void LCodeGen::DoDeferredNumberTagI(LNumberTagI* instr) { |
// number. |
__ bind(&done); |
__ movdbl(FieldOperand(reg, HeapNumber::kValueOffset), xmm0); |
- __ mov(Operand(esp, EspIndexForPushAll(reg) * kPointerSize), reg); |
+ __ StoreToSafepointRegisterSlot(reg, reg); |
__ PopSafepointRegisters(); |
} |
@@ -3045,7 +3044,7 @@ void LCodeGen::DoDeferredNumberTagD(LNumberTagD* instr) { |
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber); |
RecordSafepointWithRegisters( |
instr->pointer_map(), 0, Safepoint::kNoDeoptimizationIndex); |
- __ mov(Operand(esp, EspIndexForPushAll(reg) * kPointerSize), eax); |
+ __ StoreToSafepointRegisterSlot(reg, eax); |
__ PopSafepointRegisters(); |
} |