| Index: src/builtins/ppc/builtins-ppc.cc | 
| diff --git a/src/builtins/ppc/builtins-ppc.cc b/src/builtins/ppc/builtins-ppc.cc | 
| index 81cb4a61fefae69788225a5e320462a5be0bb3b4..1ee2ee317fb4a02e38a79122cf9cbd0ed9827e24 100644 | 
| --- a/src/builtins/ppc/builtins-ppc.cc | 
| +++ b/src/builtins/ppc/builtins-ppc.cc | 
| @@ -1458,19 +1458,61 @@ void Builtins::Generate_InstantiateAsmJs(MacroAssembler* masm) { | 
| Label failed; | 
| { | 
| FrameScope scope(masm, StackFrame::INTERNAL); | 
| +    // Preserve argument count for later compare. | 
| +    __ Move(r5, r3); | 
| // Push a copy of the target function and the new target. | 
| // Push function as parameter to the runtime call. | 
| __ SmiTag(r3); | 
| __ Push(r3, r4, r6, r4); | 
|  | 
| // Copy arguments from caller (stdlib, foreign, heap). | 
| +    Label args_done; | 
| +    __ cmpi(r5, Operand(0)); | 
| +    __ B(eq, &args_done); | 
| + | 
| +    Label args2; | 
| +    __ cmpi(r5, Operand(1)); | 
| +    __ B(ne, &args2); | 
| +    __ LoadP(r5, MemOperand(fp, StandardFrameConstants::kCallerSPOffset + | 
| +                                    0 * kPointerSize)); | 
| +    __ push(r5); | 
| +    __ jmp(&args_done); | 
| + | 
| +    __ bind(&args2); | 
| +    Label args3; | 
| +    __ cmp(r5, Operand(2)); | 
| +    __ B(ne, &args3); | 
| +    __ LoadP(r5, MemOperand(fp, StandardFrameConstants::kCallerSPOffset + | 
| +                                    1 * kPointerSize)); | 
| +    __ push(r5); | 
| +    __ LoadP(r5, MemOperand(fp, StandardFrameConstants::kCallerSPOffset + | 
| +                                    0 * kPointerSize)); | 
| +    __ push(r5); | 
| +    __ jmp(&args_done); | 
| + | 
| +    __ bind(&args3); | 
| +    __ LoadP(r5, MemOperand(fp, StandardFrameConstants::kCallerSPOffset + | 
| +                                    2 * kPointerSize)); | 
| +    __ push(r5); | 
| +    __ LoadP(r5, MemOperand(fp, StandardFrameConstants::kCallerSPOffset + | 
| +                                    1 * kPointerSize)); | 
| +    __ push(r5); | 
| +    __ LoadP(r5, MemOperand(fp, StandardFrameConstants::kCallerSPOffset + | 
| +                                    0 * kPointerSize)); | 
| +    __ push(r5); | 
| +    __ bind(&args_done); | 
| + | 
| +    // Increment and restore argument count to call runtime method | 
| +    // with function as extra argument. | 
| +    __ add(r5, r5, Operand(1)); | 
| +    __ Move(r3, r5); | 
| for (int i = 2; i >= 0; --i) { | 
| __ LoadP(r4, MemOperand(fp, StandardFrameConstants::kCallerSPOffset + | 
| i * kPointerSize)); | 
| __ push(r4); | 
| } | 
| // Call runtime, on success unwind frame, and parent frame. | 
| -    __ CallRuntime(Runtime::kInstantiateAsmJs, 4); | 
| +    __ CallRuntime(Runtime::kInstantiateAsmJs, -1); | 
| // A smi 0 is returned on failure, an object on success. | 
| __ JumpIfSmi(r3, &failed); | 
| scope.GenerateLeaveFrame(); | 
| @@ -1483,7 +1525,7 @@ void Builtins::Generate_InstantiateAsmJs(MacroAssembler* masm) { | 
| __ SmiUntag(r3); | 
| } | 
| // On failure, tail call back to regular js. | 
| -  GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy); | 
| +  GenerateTailCallToReturnedCode(masm, Runtime::kCompileBaseline); | 
| } | 
|  | 
| static void GenerateMakeCodeYoungAgainCommon(MacroAssembler* masm) { | 
|  |