Index: src/ppc/lithium-codegen-ppc.cc |
diff --git a/src/ppc/lithium-codegen-ppc.cc b/src/ppc/lithium-codegen-ppc.cc |
index 188318478d0e94633221f72e93f27f0aff6bcb3e..1c2dcd8e52a3485f0444536c86f02408b379d3a8 100644 |
--- a/src/ppc/lithium-codegen-ppc.cc |
+++ b/src/ppc/lithium-codegen-ppc.cc |
@@ -612,15 +612,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) { |