Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Issue 1335723002: [stubs] Simplify the non-function case of CallConstructStub. (Closed)

Created:
5 years, 3 months ago by Benedikt Meurer
Modified:
5 years, 3 months ago
Reviewers:
Michael Starzinger
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[stubs] Simplify the non-function case of CallConstructStub. Currently we do this dance between the CallConstructStub, the CALL_* builtins and the %GetConstructorDelegate, %GetProxyTrap, and %Apply runtime functions for every [[Construct]] operation on non-function callables. This is complexity is unnecessary, and can be simplified to work without any JS builtin. This will also make it a lot easier to implement ES6 compliant [[Construct]] for proxies. Also sanitize the invariant for CallConstructStub, which up until now always restored the context itself, but that force us to always create another copy of all arguments in case of proxies and other callables, so we can relax that constraint by making the caller restore the context (this only affects fullcodegen, since the optimizing compilers already properly restore the context anyway). R=mstarzinger@chromium.org Committed: https://crrev.com/622fa0ea21b3517b1feaed447c87e580bafac865 Cr-Commit-Position: refs/heads/master@{#30691}

Patch Set 1 : #

Patch Set 2 : Fix ia32. #

Total comments: 2

Patch Set 3 : Address Michi's comment. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+181 lines, -123 lines) Patch
M src/arm/code-stubs-arm.cc View 1 2 1 chunk +23 lines, -15 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 1 chunk +23 lines, -16 lines 0 comments Download
M src/contexts.h View 1 chunk +0 lines, -4 lines 0 comments Download
M src/full-codegen/arm/full-codegen-arm.cc View 3 chunks +7 lines, -2 lines 0 comments Download
M src/full-codegen/arm64/full-codegen-arm64.cc View 3 chunks +7 lines, -2 lines 0 comments Download
M src/full-codegen/ia32/full-codegen-ia32.cc View 3 chunks +7 lines, -2 lines 0 comments Download
M src/full-codegen/mips/full-codegen-mips.cc View 3 chunks +7 lines, -2 lines 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 3 chunks +7 lines, -2 lines 0 comments Download
M src/full-codegen/x64/full-codegen-x64.cc View 3 chunks +8 lines, -2 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 1 chunk +24 lines, -18 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 1 2 1 chunk +22 lines, -14 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 2 1 chunk +22 lines, -14 lines 0 comments Download
M src/runtime.js View 2 chunks +0 lines, -15 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 1 chunk +24 lines, -15 lines 0 comments Download

Messages

Total messages: 15 (6 generated)
Benedikt Meurer
Hey Michi, This is the cleanup I mentioned for CALL* builtin removal (getting closer to ...
5 years, 3 months ago (2015-09-11 08:00:12 UTC) #3
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1335723002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1335723002/20001
5 years, 3 months ago (2015-09-11 08:00:28 UTC) #5
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_win_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_rel/builds/9616)
5 years, 3 months ago (2015-09-11 08:15:13 UTC) #7
Michael Starzinger
https://codereview.chromium.org/1335723002/diff/60001/src/arm/code-stubs-arm.cc File src/arm/code-stubs-arm.cc (right): https://codereview.chromium.org/1335723002/diff/60001/src/arm/code-stubs-arm.cc#newcode2536 src/arm/code-stubs-arm.cc:2536: __ str(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); This is confusing. ...
5 years, 3 months ago (2015-09-11 09:17:37 UTC) #9
Benedikt Meurer
Fixed. https://codereview.chromium.org/1335723002/diff/60001/src/arm/code-stubs-arm.cc File src/arm/code-stubs-arm.cc (right): https://codereview.chromium.org/1335723002/diff/60001/src/arm/code-stubs-arm.cc#newcode2536 src/arm/code-stubs-arm.cc:2536: __ str(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); You're right, ...
5 years, 3 months ago (2015-09-11 09:20:28 UTC) #10
Michael Starzinger
LGTM.
5 years, 3 months ago (2015-09-11 09:24:25 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1335723002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1335723002/80001
5 years, 3 months ago (2015-09-11 09:24:46 UTC) #13
commit-bot: I haz the power
Committed patchset #3 (id:80001)
5 years, 3 months ago (2015-09-11 09:45:12 UTC) #14
commit-bot: I haz the power
5 years, 3 months ago (2015-09-11 09:45:35 UTC) #15
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/622fa0ea21b3517b1feaed447c87e580bafac865
Cr-Commit-Position: refs/heads/master@{#30691}

Powered by Google App Engine
This is Rietveld 408576698