Index: src/x87/lithium-codegen-x87.cc |
diff --git a/src/x87/lithium-codegen-x87.cc b/src/x87/lithium-codegen-x87.cc |
index 092df73de6e4bda0832c0760d5a2c27edc9c8327..0c1306e1445b6b15ab2819807aeb33d51fedc049 100644 |
--- a/src/x87/lithium-codegen-x87.cc |
+++ b/src/x87/lithium-codegen-x87.cc |
@@ -943,15 +943,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) { |