Revert of Fix clobbered register when setting this_function variable. (patchset #2 id:20001 of https://codereview.chromium.org/1185703002/)
Reason for revert: [Sheriff] Makes mjsunit/es6/block-const-assign flaky, e.g.: http://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/4082 Original issue's description: > Fix clobbered register when setting this_function variable. > > R=arv@chromium.org > TEST=mjsunit/regress/regress-crbug-498022 > BUG=chromium:498022 > LOG=N > > Committed: https://crrev.com/bf2bbc8ba508ccd21edf3c08d2e4192c4764ae91 > Cr-Commit-Position: refs/heads/master@{#29020} TBR=arv@chromium.org,rossberg@chromium.org,mstarzinger@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:498022 Review URL: https://codereview.chromium.org/1184093003 Cr-Commit-Position: refs/heads/master@{#29022}
This commit is contained in:
parent
2cde7dc82e
commit
06ac599d1e
@ -243,10 +243,6 @@ void FullCodeGenerator::Generate() {
|
||||
Variable* this_function_var = scope()->this_function_var();
|
||||
if (this_function_var != nullptr) {
|
||||
Comment cmnt(masm_, "[ This function");
|
||||
if (!function_in_register) {
|
||||
__ ldr(r1, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
||||
function_in_register = true;
|
||||
}
|
||||
SetVar(this_function_var, r1, r0, r2);
|
||||
}
|
||||
|
||||
|
@ -244,10 +244,6 @@ void FullCodeGenerator::Generate() {
|
||||
Variable* this_function_var = scope()->this_function_var();
|
||||
if (this_function_var != nullptr) {
|
||||
Comment cmnt(masm_, "[ This function");
|
||||
if (!function_in_register_x1) {
|
||||
__ Ldr(x1, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
||||
function_in_register_x1 = true;
|
||||
}
|
||||
SetVar(this_function_var, x1, x0, x2);
|
||||
}
|
||||
|
||||
|
@ -239,10 +239,6 @@ void FullCodeGenerator::Generate() {
|
||||
Variable* this_function_var = scope()->this_function_var();
|
||||
if (this_function_var != nullptr) {
|
||||
Comment cmnt(masm_, "[ This function");
|
||||
if (!function_in_register) {
|
||||
__ mov(edi, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset));
|
||||
function_in_register = true;
|
||||
}
|
||||
SetVar(this_function_var, edi, ebx, edx);
|
||||
}
|
||||
|
||||
|
@ -252,10 +252,6 @@ void FullCodeGenerator::Generate() {
|
||||
Variable* this_function_var = scope()->this_function_var();
|
||||
if (this_function_var != nullptr) {
|
||||
Comment cmnt(masm_, "[ This function");
|
||||
if (!function_in_register) {
|
||||
__ lw(a1, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
||||
function_in_register = true;
|
||||
}
|
||||
SetVar(this_function_var, a1, a2, a3);
|
||||
}
|
||||
|
||||
|
@ -249,10 +249,6 @@ void FullCodeGenerator::Generate() {
|
||||
Variable* this_function_var = scope()->this_function_var();
|
||||
if (this_function_var != nullptr) {
|
||||
Comment cmnt(masm_, "[ This function");
|
||||
if (!function_in_register) {
|
||||
__ ld(a1, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
||||
function_in_register = true;
|
||||
}
|
||||
SetVar(this_function_var, a1, a2, a3);
|
||||
}
|
||||
|
||||
|
@ -248,10 +248,6 @@ void FullCodeGenerator::Generate() {
|
||||
Variable* this_function_var = scope()->this_function_var();
|
||||
if (this_function_var != nullptr) {
|
||||
Comment cmnt(masm_, "[ This function");
|
||||
if (!function_in_register) {
|
||||
__ LoadP(r4, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
||||
function_in_register = true;
|
||||
}
|
||||
SetVar(this_function_var, r4, r3, r5);
|
||||
}
|
||||
|
||||
|
@ -235,10 +235,6 @@ void FullCodeGenerator::Generate() {
|
||||
Variable* this_function_var = scope()->this_function_var();
|
||||
if (this_function_var != nullptr) {
|
||||
Comment cmnt(masm_, "[ This function");
|
||||
if (!function_in_register) {
|
||||
__ movp(rdi, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
|
||||
function_in_register = true;
|
||||
}
|
||||
SetVar(this_function_var, rdi, rbx, rdx);
|
||||
}
|
||||
|
||||
|
@ -236,10 +236,6 @@ void FullCodeGenerator::Generate() {
|
||||
Variable* this_function_var = scope()->this_function_var();
|
||||
if (this_function_var != nullptr) {
|
||||
Comment cmnt(masm_, "[ This function");
|
||||
if (!function_in_register) {
|
||||
__ mov(edi, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset));
|
||||
function_in_register = true;
|
||||
}
|
||||
SetVar(this_function_var, edi, ebx, edx);
|
||||
}
|
||||
|
||||
|
@ -1,15 +0,0 @@
|
||||
// Copyright 2015 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --debug-code --nouse-gvn
|
||||
|
||||
"use strict";
|
||||
class Base {
|
||||
}
|
||||
class Derived extends Base {
|
||||
constructor() {
|
||||
eval();
|
||||
}
|
||||
}
|
||||
assertThrows("new Derived()", ReferenceError);
|
Loading…
Reference in New Issue
Block a user