| Index: src/x64/lithium-x64.cc
|
| ===================================================================
|
| --- src/x64/lithium-x64.cc (revision 7048)
|
| +++ src/x64/lithium-x64.cc (working copy)
|
| @@ -291,13 +291,15 @@
|
|
|
|
|
| void LLoadContextSlot::PrintDataTo(StringStream* stream) {
|
| + InputAt(0)->PrintTo(stream);
|
| stream->Add("[%d]", slot_index());
|
| }
|
|
|
|
|
| void LStoreContextSlot::PrintDataTo(StringStream* stream) {
|
| + InputAt(0)->PrintTo(stream);
|
| stream->Add("[%d] <- ", slot_index());
|
| - InputAt(0)->PrintTo(stream);
|
| + InputAt(1)->PrintTo(stream);
|
| }
|
|
|
|
|
| @@ -1718,22 +1720,23 @@
|
|
|
|
|
| LInstruction* LChunkBuilder::DoLoadContextSlot(HLoadContextSlot* instr) {
|
| - return DefineAsRegister(new LLoadContextSlot());
|
| + LOperand* context = UseRegisterAtStart(instr->value());
|
| + return DefineAsRegister(new LLoadContextSlot(context));
|
| }
|
|
|
|
|
| LInstruction* LChunkBuilder::DoStoreContextSlot(HStoreContextSlot* instr) {
|
| + Abort("Unimplemented: DoStoreContextSlot"); // Temporarily disabled (whesse).
|
| + LOperand* context;
|
| LOperand* value;
|
| - LOperand* temp_1 = NULL;
|
| - LOperand* temp_2 = NULL;
|
| if (instr->NeedsWriteBarrier()) {
|
| + context = UseTempRegister(instr->context());
|
| value = UseTempRegister(instr->value());
|
| - temp_1 = TempRegister();
|
| - temp_2 = TempRegister();
|
| } else {
|
| + context = UseRegister(instr->context());
|
| value = UseRegister(instr->value());
|
| }
|
| - return new LStoreContextSlot(value, temp_1, temp_2);
|
| + return new LStoreContextSlot(context, value);
|
| }
|
|
|
|
|
|
|