Index: src/lithium.cc |
diff --git a/src/lithium.cc b/src/lithium.cc |
index 5b3a30332c6d88d609206e0ba3c78927399964c4..196188bbcacd1e3bda52a7093d796b24804facad 100644 |
--- a/src/lithium.cc |
+++ b/src/lithium.cc |
@@ -263,14 +263,16 @@ int ElementsKindToShiftSize(ElementsKind elements_kind) { |
} |
-int StackSlotOffset(int index) { |
+int StackSlotOffset(int index, int fp_sp_delta) { |
+ ASSERT(fp_sp_delta > 0); |
if (index >= 0) { |
// Local or spill slot. Skip the frame pointer, function, and |
// context in the fixed part of the frame. |
- return -(index + 3) * kPointerSize; |
+ return -(index + 3) * kPointerSize + fp_sp_delta; |
} else { |
// Incoming parameter. Skip the return address. |
- return -(index + 1) * kPointerSize + kFPOnStackSize + kPCOnStackSize; |
+ return -(index + 1) * kPointerSize + kFPOnStackSize + |
+ kPCOnStackSize + fp_sp_delta; |
} |
} |