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

Issue 2571563004: [Turbofan] Implement super calls with spread bytecode in assembly code. (Closed)

Created:
4 years ago by petermarshall
Modified:
3 years, 11 months ago
CC:
rmcilroy, v8-mips-ports_googlegroups.com, v8-reviews_googlegroups.com
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[Turbofan] Implement super calls with spread bytecode in assembly code. BUG=v8:5659 Review-Url: https://codereview.chromium.org/2571563004 Cr-Commit-Position: refs/heads/master@{#42444} Committed: https://chromium.googlesource.com/v8/v8/+/0b8200c7664089b101fe4d1ec2695af885929dbe

Patch Set 1 #

Patch Set 2 : Context is important #

Patch Set 3 : Re-do registers so they make some sense #

Patch Set 4 : Move arguments processing to a helper #

Patch Set 5 : Backout changes to test #

Patch Set 6 : Check for new target as well, fix some comments: #

Patch Set 7 : Rebase on master #

Total comments: 5

Patch Set 8 : Remove constructor checks and use leap instruction #

Patch Set 9 : Do the fast-path checks for iteration in ASM #

Patch Set 10 : Don't mess with the backing store, just full-copy stuff out in slow case #

Patch Set 11 : Add tests for arguments obj and fix bug with fixed array #

Patch Set 12 : Update bytecode expectations tests #

Patch Set 13 : Backout changes to tests #

Patch Set 14 : Implement in arm64 except for fast-path checks #

Patch Set 15 : Start implementing fast path checks in arm64 #

Patch Set 16 : Add array kind check in arm64 and fix some naming #

Patch Set 17 : Fix up bytecode expectation test #

Patch Set 18 : Add arm code and clean up a few inconsistencies #

Patch Set 19 : Add ia32 implementation without fast-path #

Patch Set 20 : Clean up register allocations a bit #

Patch Set 21 : Implement fast path for ia32 #

Patch Set 22 : Change arm64 loop to be similar to the rest #

Total comments: 13

Patch Set 23 : Address Ross' comments and add empty functions for mips builtins #

Patch Set 24 : Remove CodeFactory::InterpreterPushArgsAndConstructWithSpread #

Patch Set 25 : Remove unused NewWithSpread runtime function #

Patch Set 26 : Use a new enum for switching PushArgs behaviour #

Patch Set 27 : Update builtins for new push args modes #

Total comments: 7

Patch Set 28 : Move stuff, add TODO #

Patch Set 29 : MIPS port #

Patch Set 30 : MIPS64 port #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1181 lines, -152 lines) Patch
M src/builtins/arm/builtins-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 4 chunks +150 lines, -4 lines 0 comments Download
M src/builtins/arm64/builtins-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 4 chunks +145 lines, -3 lines 0 comments Download
M src/builtins/builtins.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 5 chunks +5 lines, -2 lines 0 comments Download
M src/builtins/builtins-interpreter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 chunks +15 lines, -6 lines 0 comments Download
M src/builtins/ia32/builtins-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 4 chunks +169 lines, -4 lines 0 comments Download
M src/builtins/mips/builtins-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 4 chunks +140 lines, -3 lines 0 comments Download
M src/builtins/mips64/builtins-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 4 chunks +140 lines, -3 lines 0 comments Download
M src/builtins/ppc/builtins-ppc.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3 chunks +7 lines, -4 lines 0 comments Download
M src/builtins/s390/builtins-s390.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3 chunks +7 lines, -4 lines 0 comments Download
M src/builtins/x64/builtins-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 4 chunks +139 lines, -3 lines 0 comments Download
M src/builtins/x87/builtins-x87.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3 chunks +7 lines, -4 lines 0 comments Download
M src/code-factory.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 chunks +3 lines, -2 lines 0 comments Download
M src/code-factory.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 chunks +9 lines, -4 lines 0 comments Download
M src/compiler/bytecode-graph-builder.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +4 lines, -0 lines 0 comments Download
M src/compiler/bytecode-graph-builder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +24 lines, -4 lines 0 comments Download
M src/compiler/js-generic-lowering.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +15 lines, -2 lines 0 comments Download
M src/globals.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1 chunk +23 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-array-builder.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +5 lines, -5 lines 0 comments Download
M src/interpreter/bytecode-array-builder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 1 chunk +3 lines, -2 lines 0 comments Download
M src/interpreter/bytecode-generator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1 chunk +8 lines, -18 lines 0 comments Download
M src/interpreter/bytecodes.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +2 lines, -2 lines 0 comments Download
M src/interpreter/interpreter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1 chunk +11 lines, -11 lines 0 comments Download
M src/interpreter/interpreter-assembler.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +10 lines, -0 lines 0 comments Download
M src/interpreter/interpreter-assembler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 3 chunks +19 lines, -2 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 2 chunks +3 lines, -3 lines 0 comments Download
M src/runtime/runtime-array.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 1 chunk +28 lines, -0 lines 0 comments Download
M src/runtime/runtime-classes.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +0 lines, -43 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 chunks +10 lines, -13 lines 0 comments Download
M test/mjsunit/es6/spread-call-new-class.js View 1 2 3 4 5 6 7 8 9 10 1 chunk +79 lines, -0 lines 0 comments Download
M test/unittests/interpreter/bytecode-array-builder-unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 108 (92 generated)
petermarshall
I've just implemented this for x64 so far, could you PTAL before I go any ...
4 years ago (2016-12-15 09:15:34 UTC) #16
Benedikt Meurer
Looks good as a first step. https://codereview.chromium.org/2571563004/diff/120001/src/builtins/x64/builtins-x64.cc File src/builtins/x64/builtins-x64.cc (right): https://codereview.chromium.org/2571563004/diff/120001/src/builtins/x64/builtins-x64.cc#newcode2896 src/builtins/x64/builtins-x64.cc:2896: Label target_not_constructor; These ...
4 years ago (2016-12-15 11:59:52 UTC) #19
petermarshall
Thanks! https://codereview.chromium.org/2571563004/diff/120001/src/builtins/x64/builtins-x64.cc File src/builtins/x64/builtins-x64.cc (right): https://codereview.chromium.org/2571563004/diff/120001/src/builtins/x64/builtins-x64.cc#newcode2896 src/builtins/x64/builtins-x64.cc:2896: Label target_not_constructor; On 2016/12/15 at 11:59:52, Benedikt Meurer ...
4 years ago (2016-12-15 13:37:27 UTC) #22
petermarshall
Benedikt, could you take a look at src/builtins/x64/builtins-x64.cc as a final glance before I port ...
4 years ago (2016-12-21 10:26:13 UTC) #33
Benedikt Meurer
Looks good to me :-)
4 years ago (2016-12-21 11:51:34 UTC) #34
petermarshall
mips-team, could you please port the builtins code. Thanks!
3 years, 11 months ago (2017-01-11 14:40:23 UTC) #67
rmcilroy
https://codereview.chromium.org/2571563004/diff/420001/src/builtins/x64/builtins-x64.cc File src/builtins/x64/builtins-x64.cc (right): https://codereview.chromium.org/2571563004/diff/420001/src/builtins/x64/builtins-x64.cc#newcode917 src/builtins/x64/builtins-x64.cc:917: void Builtins::Generate_InterpreterPushArgsAndConstructWithSpread( High level question - this seems to ...
3 years, 11 months ago (2017-01-11 15:24:45 UTC) #72
petermarshall
Thanks Ross. https://codereview.chromium.org/2571563004/diff/420001/src/builtins/x64/builtins-x64.cc File src/builtins/x64/builtins-x64.cc (right): https://codereview.chromium.org/2571563004/diff/420001/src/builtins/x64/builtins-x64.cc#newcode917 src/builtins/x64/builtins-x64.cc:917: void Builtins::Generate_InterpreterPushArgsAndConstructWithSpread( On 2017/01/11 at 15:24:44, rmcilroy ...
3 years, 11 months ago (2017-01-11 16:50:03 UTC) #75
rmcilroy
https://codereview.chromium.org/2571563004/diff/420001/src/builtins/x64/builtins-x64.cc File src/builtins/x64/builtins-x64.cc (right): https://codereview.chromium.org/2571563004/diff/420001/src/builtins/x64/builtins-x64.cc#newcode917 src/builtins/x64/builtins-x64.cc:917: void Builtins::Generate_InterpreterPushArgsAndConstructWithSpread( On 2017/01/11 16:50:03, petermarshall wrote: > On ...
3 years, 11 months ago (2017-01-12 10:40:38 UTC) #78
petermarshall
PTAL for interpreter/ updates =] https://codereview.chromium.org/2571563004/diff/420001/src/builtins/x64/builtins-x64.cc File src/builtins/x64/builtins-x64.cc (right): https://codereview.chromium.org/2571563004/diff/420001/src/builtins/x64/builtins-x64.cc#newcode917 src/builtins/x64/builtins-x64.cc:917: void Builtins::Generate_InterpreterPushArgsAndConstructWithSpread( On 2017/01/12 ...
3 years, 11 months ago (2017-01-16 16:06:06 UTC) #89
rmcilroy
Interpreter LGTM with nits, thanks for the changes. https://codereview.chromium.org/2571563004/diff/520001/src/interpreter/bytecode-array-builder.h File src/interpreter/bytecode-array-builder.h (right): https://codereview.chromium.org/2571563004/diff/520001/src/interpreter/bytecode-array-builder.h#newcode249 src/interpreter/bytecode-array-builder.h:249: BytecodeArrayBuilder& ...
3 years, 11 months ago (2017-01-16 16:28:02 UTC) #90
Benedikt Meurer
Awesome, Thanks! LGTM!
3 years, 11 months ago (2017-01-16 18:08:01 UTC) #93
petermarshall
Benedikt, could you PTAL at the MIPS64 port? Then we are good to go! https://codereview.chromium.org/2571563004/diff/520001/src/interpreter/bytecode-array-builder.h ...
3 years, 11 months ago (2017-01-18 10:05:32 UTC) #100
Benedikt Meurer
LGTM on mips64.
3 years, 11 months ago (2017-01-18 10:13:10 UTC) #101
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2571563004/580001
3 years, 11 months ago (2017-01-18 10:15:36 UTC) #105
commit-bot: I haz the power
3 years, 11 months ago (2017-01-18 10:34:33 UTC) #108
Message was sent while issue was closed.
Committed patchset #30 (id:580001) as
https://chromium.googlesource.com/v8/v8/+/0b8200c7664089b101fe4d1ec2695af8859...

Powered by Google App Engine
This is Rietveld 408576698