| Index: src/crankshaft/ia32/lithium-ia32.cc
|
| diff --git a/src/crankshaft/ia32/lithium-ia32.cc b/src/crankshaft/ia32/lithium-ia32.cc
|
| index 130ac852d33bfe6490b6c62de717ebe8a314c82d..7193c558d9972ced9202c8836fa65c847461f06a 100644
|
| --- a/src/crankshaft/ia32/lithium-ia32.cc
|
| +++ b/src/crankshaft/ia32/lithium-ia32.cc
|
| @@ -344,11 +344,11 @@ void LAccessArgumentsAt::PrintDataTo(StringStream* stream) {
|
| int LPlatformChunk::GetNextSpillIndex(RegisterKind kind) {
|
| // Skip a slot if for a double-width slot.
|
| if (kind == DOUBLE_REGISTERS) {
|
| - spill_slot_count_++;
|
| - spill_slot_count_ |= 1;
|
| + current_frame_slots_++;
|
| + current_frame_slots_ |= 1;
|
| num_double_slots_++;
|
| }
|
| - return spill_slot_count_++;
|
| + return current_frame_slots_++;
|
| }
|
|
|
|
|
| @@ -437,7 +437,7 @@ LPlatformChunk* LChunkBuilder::Build() {
|
| // Reserve the first spill slot for the state of dynamic alignment.
|
| if (info()->IsOptimizing()) {
|
| int alignment_state_index = chunk_->GetNextSpillIndex(GENERAL_REGISTERS);
|
| - DCHECK_EQ(alignment_state_index, 0);
|
| + DCHECK_EQ(alignment_state_index, 4);
|
| USE(alignment_state_index);
|
| }
|
|
|
| @@ -2512,6 +2512,7 @@ LInstruction* LChunkBuilder::DoUnknownOSRValue(HUnknownOSRValue* instr) {
|
| // The first local is saved at the end of the unoptimized frame.
|
| spill_index = graph()->osr()->UnoptimizedFrameSlots();
|
| }
|
| + spill_index += StandardFrameConstants::kFixedSlotCount;
|
| }
|
| return DefineAsSpilled(new(zone()) LUnknownOSRValue, spill_index);
|
| }
|
|
|