Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index 4a7b3aa3aeb06f9f10b905030c2b17928b96e774..1ee1f64e76a1a89b624af7c69b2637a5227ded33 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -305,15 +305,17 @@ void LAccessArgumentsAt::PrintDataTo(StringStream* stream) { |
int LChunk::GetNextSpillIndex(bool is_double) { |
- // Need to consider what index means: Is it 32 bit or 64 bit index? |
- UNIMPLEMENTED(); |
- return 0; |
+ return spill_slot_count_++; |
} |
LOperand* LChunk::GetNextSpillSlot(bool is_double) { |
- UNIMPLEMENTED(); |
- return NULL; |
+ // All stack slots are Double stack slots on x64. |
+ // Alternatively, at some point, start using half-size |
+ // stack slots for int32 values. |
+ int index = GetNextSpillIndex(is_double); |
+ if (is_double) return LDoubleStackSlot::Create(index); |
+ return LStackSlot::Create(index); |
} |
@@ -737,6 +739,7 @@ LInstruction* LChunkBuilder::DoArithmeticT(Token::Value op, |
return NULL; |
} |
+ |
void LChunkBuilder::DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block) { |
ASSERT(is_building()); |
current_block_ = block; |