Index: src/mips64/lithium-codegen-mips64.cc |
diff --git a/src/mips64/lithium-codegen-mips64.cc b/src/mips64/lithium-codegen-mips64.cc |
index acbaffdadee7af7b86a2575fbbb7cfe56196618c..02d55ead49dba2e97eb9f948faec982d7d26dae6 100644 |
--- a/src/mips64/lithium-codegen-mips64.cc |
+++ b/src/mips64/lithium-codegen-mips64.cc |
@@ -635,15 +635,23 @@ void LCodeGen::AddToTranslation(LEnvironment* environment, |
} |
if (op->IsStackSlot()) { |
+ int index = op->index(); |
+ if (index >= 0) { |
+ index += StandardFrameConstants::kFixedFrameSize / kPointerSize; |
+ } |
if (is_tagged) { |
- translation->StoreStackSlot(op->index()); |
+ translation->StoreStackSlot(index); |
} else if (is_uint32) { |
- translation->StoreUint32StackSlot(op->index()); |
+ translation->StoreUint32StackSlot(index); |
} else { |
- translation->StoreInt32StackSlot(op->index()); |
+ translation->StoreInt32StackSlot(index); |
} |
} else if (op->IsDoubleStackSlot()) { |
- translation->StoreDoubleStackSlot(op->index()); |
+ int index = op->index(); |
+ if (index >= 0) { |
+ index += StandardFrameConstants::kFixedFrameSize / kPointerSize; |
+ } |
+ translation->StoreDoubleStackSlot(index); |
} else if (op->IsRegister()) { |
Register reg = ToRegister(op); |
if (is_tagged) { |