Index: src/crankshaft/x64/lithium-x64.cc |
diff --git a/src/crankshaft/x64/lithium-x64.cc b/src/crankshaft/x64/lithium-x64.cc |
index 171a58115ae9c58499725b8d151fe5ce56875a03..c4ec47b07fa9e1d3c91a65d09ff714775676d3c8 100644 |
--- a/src/crankshaft/x64/lithium-x64.cc |
+++ b/src/crankshaft/x64/lithium-x64.cc |
@@ -334,15 +334,15 @@ void LAccessArgumentsAt::PrintDataTo(StringStream* stream) { |
int LPlatformChunk::GetNextSpillIndex(RegisterKind kind) { |
if (kind == DOUBLE_REGISTERS && kDoubleSize == 2 * kPointerSize) { |
// Skip a slot if for a double-width slot for x32 port. |
- spill_slot_count_++; |
+ current_frame_slots_++; |
// The spill slot's address is at rbp - (index + 1) * kPointerSize - |
// StandardFrameConstants::kFixedFrameSizeFromFp. kFixedFrameSizeFromFp is |
// 2 * kPointerSize, if rbp is aligned at 8-byte boundary, the below "|= 1" |
// will make sure the spilled doubles are aligned at 8-byte boundary. |
// TODO(haitao): make sure rbp is aligned at 8-byte boundary for x32 port. |
- spill_slot_count_ |= 1; |
+ current_frame_slots_ |= 1; |
} |
- return spill_slot_count_++; |
+ return current_frame_slots_++; |
} |
@@ -2501,6 +2501,7 @@ LInstruction* LChunkBuilder::DoUnknownOSRValue(HUnknownOSRValue* instr) { |
Retry(kTooManySpillSlotsNeededForOSR); |
spill_index = 0; |
} |
+ spill_index += StandardFrameConstants::kFixedSlotCount; |
} |
return DefineAsSpilled(new(zone()) LUnknownOSRValue, spill_index); |
} |