| Index: src/ppc/lithium-ppc.cc
|
| diff --git a/src/ppc/lithium-ppc.cc b/src/ppc/lithium-ppc.cc
|
| index 4f15a60d5de9a45ca51a664b05782aa09ec95b04..296f0ac364fce880be25ff33c5e25647eab2b13f 100644
|
| --- a/src/ppc/lithium-ppc.cc
|
| +++ b/src/ppc/lithium-ppc.cc
|
| @@ -343,6 +343,12 @@ void LAccessArgumentsAt::PrintDataTo(StringStream* stream) {
|
| }
|
|
|
|
|
| +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;
|
| @@ -361,6 +367,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("[");
|
| @@ -2108,6 +2122,15 @@ LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
|
| }
|
|
|
|
|
| +LInstruction* LChunkBuilder::DoLoadGlobalViaContext(
|
| + HLoadGlobalViaContext* instr) {
|
| + LOperand* context = UseFixed(instr->context(), cp);
|
| + DCHECK(instr->slot_index() > 0);
|
| + LLoadGlobalViaContext* result = new (zone()) LLoadGlobalViaContext(context);
|
| + return MarkAsCall(DefineFixed(result, r3), instr);
|
| +}
|
| +
|
| +
|
| LInstruction* LChunkBuilder::DoLoadContextSlot(HLoadContextSlot* instr) {
|
| LOperand* context = UseRegisterAtStart(instr->value());
|
| LInstruction* result =
|
| @@ -2388,6 +2411,19 @@ LInstruction* LChunkBuilder::DoStoreNamedGeneric(HStoreNamedGeneric* instr) {
|
| }
|
|
|
|
|
| +LInstruction* LChunkBuilder::DoStoreGlobalViaContext(
|
| + HStoreGlobalViaContext* instr) {
|
| + LOperand* context = UseFixed(instr->context(), cp);
|
| + 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(), cp);
|
| LOperand* left = UseFixed(instr->left(), r4);
|
|
|