From: balazs.kilvady Date: Thu, 5 Feb 2015 17:17:29 +0000 (-0800) Subject: MIPS64: Perform receiver patching for sloppy mode in high-level IR. X-Git-Tag: upstream/4.7.83~4570 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0d035dc2594995617d43cc805bf73b2fc4674c4e;p=platform%2Fupstream%2Fv8.git MIPS64: Perform receiver patching for sloppy mode in high-level IR. Port 9e0865069fa53678d24def0f1e7828b5391f11d2 TEST=cctest/test-run-jscalls/ReceiverPatching BUG= Review URL: https://codereview.chromium.org/904663003 Cr-Commit-Position: refs/heads/master@{#26470} --- diff --git a/src/compiler/mips64/code-generator-mips64.cc b/src/compiler/mips64/code-generator-mips64.cc index 38a8543..67b9d3f 100644 --- a/src/compiler/mips64/code-generator-mips64.cc +++ b/src/compiler/mips64/code-generator-mips64.cc @@ -1062,24 +1062,6 @@ void CodeGenerator::AssemblePrologue() { __ Prologue(info->IsCodePreAgingActive()); frame()->SetRegisterSaveAreaSize( StandardFrameConstants::kFixedFrameSizeFromFp); - - // Sloppy mode functions and builtins need to replace the receiver with the - // global proxy when called as functions (without an explicit receiver - // object). - // TODO(mstarzinger/verwaest): Should this be moved back into the CallIC? - if (is_sloppy(info->language_mode()) && !info->is_native()) { - Label ok; - // +2 for return address and saved frame pointer. - int receiver_slot = info->scope()->num_parameters() + 2; - __ ld(a2, MemOperand(fp, receiver_slot * kPointerSize)); - __ LoadRoot(at, Heap::kUndefinedValueRootIndex); - __ Branch(&ok, ne, a2, Operand(at)); - - __ ld(a2, GlobalObjectOperand()); - __ ld(a2, FieldMemOperand(a2, GlobalObject::kGlobalProxyOffset)); - __ sd(a2, MemOperand(fp, receiver_slot * kPointerSize)); - __ bind(&ok); - } } else { __ StubPrologue(); frame()->SetRegisterSaveAreaSize(