Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 930a8e388fc37404649ac59caad159dae1e55251..31a111d908dbc53a7842e1197fc246b7eb7f9769 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -647,15 +647,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) { |