| 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;
|
|
|