| Index: src/ppc/full-codegen-ppc.cc
|
| diff --git a/src/ppc/full-codegen-ppc.cc b/src/ppc/full-codegen-ppc.cc
|
| index c88562007044125ccdc5fd826817248a5538ab20..fca0698d67eb9af8db83f62cfdb2853dc2a486cd 100644
|
| --- a/src/ppc/full-codegen-ppc.cc
|
| +++ b/src/ppc/full-codegen-ppc.cc
|
| @@ -3148,34 +3148,35 @@ void FullCodeGenerator::PushCalleeAndWithBaseObject(Call* expr) {
|
| EmitDynamicLookupFastCase(callee, NOT_INSIDE_TYPEOF, &slow, &done);
|
| }
|
| __ bind(&slow);
|
| - // Call the runtime to find the function to call (returned in rax) and
|
| - // the object holding it (returned in rdx).
|
| - __ Push(context_register());
|
| - __ Push(callee->name());
|
| + // Call the runtime to find the function to call (returned in r3) and
|
| + // the object holding it (returned in r4).
|
| + DCHECK(!context_register().is(r5));
|
| + __ mov(r5, Operand(callee->name()));
|
| + __ Push(context_register(), r5);
|
| __ CallRuntime(Runtime::kLoadLookupSlot, 2);
|
| - __ Push(rax); // Function.
|
| - __ Push(rdx); // Receiver.
|
| + __ Push(r3, r4); // Function, receiver.
|
| PrepareForBailoutForId(expr->LookupId(), NO_REGISTERS);
|
|
|
| // If fast case code has been generated, emit code to push the function
|
| // and receiver and have the slow path jump around this code.
|
| if (done.is_linked()) {
|
| Label call;
|
| - __ jmp(&call, Label::kNear);
|
| + __ b(&call);
|
| __ bind(&done);
|
| // Push function.
|
| - __ Push(rax);
|
| + __ push(r3);
|
| // Pass undefined as the receiver, which is the WithBaseObject of a
|
| // non-object environment record. If the callee is sloppy, it will patch
|
| // it up to be the global receiver.
|
| - __ PushRoot(Heap::kUndefinedValueRootIndex);
|
| + __ LoadRoot(r4, Heap::kUndefinedValueRootIndex);
|
| + __ push(r4);
|
| __ bind(&call);
|
| }
|
| } else {
|
| VisitForStackValue(callee);
|
| // refEnv.WithBaseObject()
|
| __ LoadRoot(r5, Heap::kUndefinedValueRootIndex);
|
| - __ push(r5);
|
| + __ push(r5); // Reserved receiver slot.
|
| }
|
| }
|
|
|
| @@ -3796,7 +3797,7 @@ void FullCodeGenerator::EmitArguments(CallRuntime* expr) {
|
| ZoneList<Expression*>* args = expr->arguments();
|
| DCHECK(args->length() == 1);
|
|
|
| - // ArgumentsAccessStub expects the key in edx and the formal
|
| + // ArgumentsAccessStub expects the key in r4 and the formal
|
| // parameter count in r3.
|
| VisitForAccumulatorValue(args->at(0));
|
| __ mr(r4, r3);
|
|
|