MIPS64: Perform receiver patching for sloppy mode in high-level IR.
authorbalazs.kilvady <balazs.kilvady@imgtec.com>
Thu, 5 Feb 2015 17:17:29 +0000 (09:17 -0800)
committerCommit bot <commit-bot@chromium.org>
Thu, 5 Feb 2015 17:17:43 +0000 (17:17 +0000)
Port 9e0865069fa53678d24def0f1e7828b5391f11d2

TEST=cctest/test-run-jscalls/ReceiverPatching
BUG=

Review URL: https://codereview.chromium.org/904663003

Cr-Commit-Position: refs/heads/master@{#26470}

src/compiler/mips64/code-generator-mips64.cc

index 38a8543..67b9d3f 100644 (file)
@@ -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(