Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index 4a7b3aa3aeb06f9f10b905030c2b17928b96e774..f13e6908737e9a1c3ddb12caa73ba24a2fc254a6 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -305,15 +305,20 @@ 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); |
+ } else { |
+ return LStackSlot::Create(index); |
+ } |
} |
@@ -737,6 +742,7 @@ LInstruction* LChunkBuilder::DoArithmeticT(Token::Value op, |
return NULL; |
} |
+ |
void LChunkBuilder::DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block) { |
ASSERT(is_building()); |
current_block_ = block; |