| Index: src/x87/lithium-x87.cc
|
| diff --git a/src/x87/lithium-x87.cc b/src/x87/lithium-x87.cc
|
| index a57aa915767b132ff53121b0309190a0423055f8..301f128e11afec06245c512b7456e20297856af7 100644
|
| --- a/src/x87/lithium-x87.cc
|
| +++ b/src/x87/lithium-x87.cc
|
| @@ -390,6 +390,12 @@ LOperand* LPlatformChunk::GetNextSpillSlot(RegisterKind kind) {
|
| }
|
|
|
|
|
| +void LLoadGlobalViaContext::PrintDataTo(StringStream* stream) {
|
| + stream->Add(String::cast(*name())->ToCString().get());
|
| + stream->Add(" depth:%d slot:%d", depth(), slot_index());
|
| +}
|
| +
|
| +
|
| void LStoreNamedField::PrintDataTo(StringStream* stream) {
|
| object()->PrintTo(stream);
|
| std::ostringstream os;
|
| @@ -408,6 +414,14 @@ void LStoreNamedGeneric::PrintDataTo(StringStream* stream) {
|
| }
|
|
|
|
|
| +void LStoreGlobalViaContext::PrintDataTo(StringStream* stream) {
|
| + stream->Add(String::cast(*name())->ToCString().get());
|
| + stream->Add(" <- ");
|
| + value()->PrintTo(stream);
|
| + stream->Add(" depth:%d slot:%d", depth(), slot_index());
|
| +}
|
| +
|
| +
|
| void LLoadKeyed::PrintDataTo(StringStream* stream) {
|
| elements()->PrintTo(stream);
|
| stream->Add("[");
|
| @@ -2142,6 +2156,15 @@ LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
|
| }
|
|
|
|
|
| +LInstruction* LChunkBuilder::DoLoadGlobalViaContext(
|
| + HLoadGlobalViaContext* instr) {
|
| + LOperand* context = UseFixed(instr->context(), esi);
|
| + DCHECK(instr->slot_index() > 0);
|
| + LLoadGlobalViaContext* result = new (zone()) LLoadGlobalViaContext(context);
|
| + return MarkAsCall(DefineFixed(result, eax), instr);
|
| +}
|
| +
|
| +
|
| LInstruction* LChunkBuilder::DoLoadContextSlot(HLoadContextSlot* instr) {
|
| LOperand* context = UseRegisterAtStart(instr->value());
|
| LInstruction* result =
|
| @@ -2487,6 +2510,19 @@ LInstruction* LChunkBuilder::DoStoreNamedGeneric(HStoreNamedGeneric* instr) {
|
| }
|
|
|
|
|
| +LInstruction* LChunkBuilder::DoStoreGlobalViaContext(
|
| + HStoreGlobalViaContext* instr) {
|
| + LOperand* context = UseFixed(instr->context(), esi);
|
| + LOperand* value = UseFixed(instr->value(),
|
| + StoreGlobalViaContextDescriptor::ValueRegister());
|
| + DCHECK(instr->slot_index() > 0);
|
| +
|
| + LStoreGlobalViaContext* result =
|
| + new (zone()) LStoreGlobalViaContext(context, value);
|
| + return MarkAsCall(result, instr);
|
| +}
|
| +
|
| +
|
| LInstruction* LChunkBuilder::DoStringAdd(HStringAdd* instr) {
|
| LOperand* context = UseFixed(instr->context(), esi);
|
| LOperand* left = UseFixed(instr->left(), edx);
|
|
|