Commit Graph

60944 Commits

Author SHA1 Message Date
Georg Neis
3aa52a22ca Revert "[builtins] stop using imprecise fdlibm pow"
This reverts commit b12ba06edf.

Reason for revert:
After further discussion we decided to stick with fdlibm.

Original change's description:
> [builtins] stop using imprecise fdlibm pow
>
> This CL reinstates the old pow implementation which calls out to the
> system implementation of pow.
>
> Bug: v8:9622
> Change-Id: I3df997888ced3fb8b5bd4b810098e967649aaa55
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1774898
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Commit-Queue: Georg Neis <neis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#66303}

TBR=yangguo@chromium.org,neis@chromium.org,hpayer@chromium.org,me@gus.host

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: v8:9622
Change-Id: I941f70c7432cd2fab86e0eadcb2e1a9ec8195e91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072746
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66452}
2020-02-26 10:36:23 +00:00
Clemens Backes
1e4b043523 [base] Extend EnumSet
This extends EnumSet by
1) adding element-wise operations (without first creating an EnumSet of
   that element in the caller),
2) adding arithmetic assignment operators, and
3) adding a subtraction operation which removes all elements in another
   EnumSet, or a single element.

R=mlippautz@chromium.org

Change-Id: Ibe694e9e111e506ad09cf9729fa0b0ba38430b79
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071874
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66451}
2020-02-26 09:48:42 +00:00
Clemens Backes
e7fa1fbffe [wasm] Avoid adding callback that will never be called
In {InitializeRecompilationProgress}, we already have logic in place to
call the callback (all callbacks really) if no compilation units were
added.
In that case, the callback in fact does not need to be added to the list
of callbacks. Instead, it's enough to just call this one callback and
then discard it.

R=ahaas@chromium.org

Bug: v8:9654
Change-Id: I60bab2d67d67d10964404d897d13ffd628ff9964
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071861
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66450}
2020-02-26 09:34:42 +00:00
Georg Neis
51022eb8c9 Revert "[builtins] Replace V8_INFINITY with its definition"
This reverts commit 73f91a2d11.

Reason for revert: Reverting b12ba06edf

Original change's description:
> [builtins] Replace V8_INFINITY with its definition
> 
> V8_INFINITY is not defined here.
> "src/common/globals.h" is also not allowed to be included
> in this source file.
> 
> Change-Id: Ia3b14db8ac5099b6ce65839eb0fc59340dc59555
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2062930
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
> Cr-Commit-Position: refs/heads/master@{#66336}

TBR=neis@chromium.org,clemensb@chromium.org,me@gus.host,miladfar@ca.ibm.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: Ia43c3f7f735dfb622d4f5464a52a142d19ddeb26
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072745
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66449}
2020-02-26 09:32:55 +00:00
Emanuel Ziegler
abb727a3d9 [wasm][reference-types] Check type on Table.Init & Table.Copy
Added a type field to elements to distinguish anyref, funcref and
nullref elements and do a proper type checking at compile time as
the spec requires.

R=ahaas@chromium.org

Change-Id: I31be7aa1170439859ca7ec5e20aabb2720c290b3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2069330
Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66448}
2020-02-26 09:29:43 +00:00
Clemens Backes
151b85a0a5 [base] Pass EnumSet by value
EnumSet hold a single integral field, hence it should be passed by
value. All users already do this, we are just inconsistent within the
declaration of EnumSet itself.

R=mlippautz@chromium.org

Change-Id: Ic2cac35fbd8fe3e98c1fe135bd334547dca30ab5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071872
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66447}
2020-02-26 09:21:33 +00:00
Hannes Payer
eb201d6ff3 [heap] Remove idle Scavenge task and schedule regular foreground tasks.
Bug: chromium:1054771
Change-Id: I0773d60e5cd3d3b181446c11943eb19d5336b420
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066982
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66446}
2020-02-26 09:10:22 +00:00
Tobias Tebbi
645ca25595 [turbofan] fix nondeterminism in mksnapshot
This CL fixes two unrelated issues in Turbofan that contributed to
non-determinism:
- Most importantly, external references included their address in the
  node hash, but they're unpredictable due to ASLR. Fix by only looking
  at the lowest bits assuming a 4K page size.
- BranchElimination didn't properly trigger revisits for the
  IfTrue/IfFalse projections.

Bug: chromium:1046815
Change-Id: I9ba3535cc748890708e4638017e245a3f4e2a7d8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2069332
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66445}
2020-02-26 08:54:37 +00:00
Simon Zünd
e5ffd0ce90 Updated documentation for {replMode} parameter in {Runtime.evaluate}
R=yangguo@chromium.org

Change-Id: Icafeeccdcbe854d6986d3930ec6fcb2c856d274a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072743
Auto-Submit: Simon Zünd <szuend@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66444}
2020-02-26 08:53:32 +00:00
Shu-yu Guo
9c35cbc0de Roll test262
31f1bb5a..6d4b62614

Bug: v8:7834
Change-Id: Iecb139feb3db4001bc87d662f5acc006a521caad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2073380
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66443}
2020-02-26 07:34:42 +00:00
Ng Zhi An
86508e21dd [wasm-simd][arm64] Implement integer absolute
Implements i8x16.abs, i16x8.abs, and i32x4.abs.

Bug: v8:10233
Change-Id: I350ceca7ee75037615985ea955c5f17997996aac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2067842
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66442}
2020-02-26 04:59:24 +00:00
v8-ci-autoroll-builder
43c317e3ab Update V8 DEPS.
Rolling v8/build: 11be0fc..9dba72c

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/8fd825d..d2b5e78

Rolling v8/third_party/depot_tools: 9aa1a96..227d510

Rolling v8/third_party/fuchsia-sdk: 493c55d..2457e41

Rolling v8/third_party/icu: 9f40209..49ee7b1

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I8085056f080300b80449bc2ec186acc37746a9ea
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2073019
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#66441}
2020-02-26 03:59:03 +00:00
Ng Zhi An
fa350b5bf4 [wasm-simd][x64] Implement integer absolute on x64 and interpreter
Implements i8x16.abs, i16x8.abs, and i32x4.abs.

Bug: v8:10233
Change-Id: Iefe3c70bdc229c6da6a0ef07273ca654ca1e937e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2063200
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66440}
2020-02-26 03:57:11 +00:00
Ng Zhi An
a67a16aae4 [wasm-simd] Fix OpcodeLength of load splat/extend ops
Move load splat and load extend ops into the list of SIMD memory
opcodes, since they similarly take an i32 and an memarg. This fixes the
OpcodeLength calculation in function-body-decoder-impl.h.

And in turn, fixes the mjsunit test code that the fuzzer generates. See
the regress-1055692.js file for the weird S8x16LoadSplat followed by 2
kExprUnreachable, where the kExprUnreachable really is a memarg
{0x0, 0x0}. This bug was caught by the fuzzer, and that was the
generated test (with small fixes to add kExprDrop), so leaving it as it
is.

Bug: chromium:1055692
Change-Id: I743b6beb82350b5fea22c8dd10b546a02741cfed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071401
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66439}
2020-02-26 02:57:20 +00:00
Ng Zhi An
f9dc259a2d [wasm-simd] Expect fused results on Liftoff
FMA tests that are running on Liftoff can use fused results, since the
tests will fall back to TurboFan.

Bug: v8:9415
Change-Id: I02edea5ce1447263f7bc7574573418b0055aef8f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2063202
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66438}
2020-02-26 02:39:50 +00:00
Shu-yu Guo
ff89c6bc6f [weakrefs] Rename FinalizationGroup to FinalizationRegistry for JS
The deprecated legacy FinalizationGroup APIs are left unchanged for
compat.

Bug: v8:8179
Change-Id: I9bdcaa92360db318c96fc8524c04163ece25118e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071236
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66437}
2020-02-25 22:53:20 +00:00
Milad Farazmand
4c357f203b [wasm-simd] Scalar lowering for load extends on BE machines
LoadMem already does the proper sign extension based on the
passed memtype, so all is left is splatting it to the desired
number of lanes.

Change-Id: I54317b6e2b4d3daf2e980315198577f61c3f556a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2068031
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66436}
2020-02-25 21:01:53 +00:00
Milad Farazmand
bab898de2b PPC/s390: [arm][arm64] Remove dead code
Port cc12e94784

R=georgia.kouveli@arm.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I58e35c6fc007b01db4a51f93bff995ce8c14c37a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071512
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#66435}
2020-02-25 20:50:52 +00:00
Z Nguyen-Huu
560d366df9 [wasm] Adopt WAT compatible naming
We want to be consistent with wasdk/wasmparser.

The names used in V8 should follow the WAT convention and always start
with a dollar, both for names from the "names" section as well as
generated names.

Bug: v8:10242
Change-Id: If4dbd4c38208c9dd9377dd2f79120635a531d881
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2070637
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Kim-Anh Tran <kimanh@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66434}
2020-02-25 20:14:52 +00:00
Clemens Backes
fc55d73343 [wasm] Extend liftoff breakpoint test for scope inspection
This extends the existing test to also print scope information on every
break. Note that the currently printed information is not correct, since
register values are not reconstructed yet. We just always print {-11}
for register values.
Thus the expected output will change with follow-up CL.

R=thibaudm@chromium.org

Bug: v8:10222
Change-Id: I7be13ecb02957454c875a4280cec154a08c2deb7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2062403
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66433}
2020-02-25 17:09:48 +00:00
Victor Gomes
4717c9a223 [runtime] Change kDontAdaptArgumentsSentinel to be a global constant.
Context: This is part of a bigger CL:
https://chromium-review.googlesource.com/c/v8/v8/+/2043840

In order to get rid of the arguments adaptor frame, we will reverse
the JS arguments in the stack. Some macros will need to reverse its
arguments as well, we will do that using helper macros in another CL
(see src/builtins/builtins-descriptors.h in 2043840).
For that we need to stringify the name kDontAdaptArgumentsSentinel,
which cannot be done if '::' is in its name.

This CL should not have any impact performace/memory on V8.

Bug: v8:10201
Change-Id: If76b7f457c179fbddddfe1a0ae038d2f1210ad2b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066969
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66432}
2020-02-25 16:43:58 +00:00
Andreas Haas
7a31813024 Reland "[wasm] The name of a custom section can cause a validation error"
This is a reland of 03d5a7ba9b

Nothing changed here compared to the original test. The tests on the
blink side were invalid, I fixed them in https://crrev.com/c/2066907.

Original change's description:
> [wasm] The name of a custom section can cause a validation error
>
> The WebAssembly spec defines that the name of a custom section can cause
> a validation error. The streaming decoder, however, used a separate
> Decoder object to decode the name, and thereby avoided a validation
> error. With this CL the streaming decoder uses the main decoder to
> decode the name of the custom section.
>
> In addition this CL removes the test mjsunit/regress/wasm/regress-789952.
> This test defined an invalid WebAssembly module and expected it to
> compile. As it is a regression test, it makes no sense to fix the test.
> The module is invalid because it defines the length of the custom section
> to be '0', so there are no bytes in the custom section for its name.
>
> R=clemensb@chromium.org
> CC=thibaudm@chromium.org
>
> Bug: v8:10126
> Change-Id: I8cfc77c9a5916570d5362d5922e0179a29774da8
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2041446
> Commit-Queue: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#66348}

Bug: v8:10126
Change-Id: I48aaed8eb9899da1703030fb6809fe46a6e66191
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2069325
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66431}
2020-02-25 15:38:27 +00:00
Omer Katz
a2a50d7fec Revert "[heap] Align v8 and oilpan worklists"
This reverts commit 6cfba48b65.

Reason for revert: Removing dynamic parameter caused regressions for scavenger.

Original change's description:
> [heap] Align v8 and oilpan worklists
>
> This CL makes the following changes:
> 1) Size of allocated buffer is set by a template parameter
>    (with a default value instead of hardcoded size)
> 2) Remove dynamic parameter for initializing number of
>    tasks (see comment in scavenger.cc)
>
> This CL aligns the v8 and oilpan heaps so that they provide
> the same interface and functionality.
>
> Change-Id: I77d63793f0a54ea29198ddd6bd298eae2c15cf42
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030920
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Omer Katz <omerkatz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#66158}

TBR=ulan@chromium.org,mlippautz@chromium.org,omerkatz@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: Iab127d59882ded33d0df3897326031bfc2d2aaf2
Bug: chromium:1052750
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071862
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66430}
2020-02-25 15:34:12 +00:00
Andreas Haas
c8e10a1693 [wasm][liftoff] Implement Atomic(Compare)Exchange on x64
R=clemensb@chromium.org

Bug: v8:10108
Change-Id: Ic9ef9ba35218450d3f9e7838890c82b785c34da4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2037433
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66429}
2020-02-25 14:24:46 +00:00
Andreas Haas
6e452a1c9c [cleanup][wasm] Use early return in validation of FunctionIndexImmediate
R=clemensb@chromium.org

Bug: v8:10155
Change-Id: Ia89724ed5f8af4199bbce41ed12a0dace578c43f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2069326
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66428}
2020-02-25 14:21:16 +00:00
Camillo Bruni
fc2f00d3d9 [counters] CPU time for RCS
The newly introduced --rcs-cpu-time flag enables CPU time for all
runtime call stats timers. By default we still keep on using good
old wall time.

This CL also adds the long-awaited --rcs short flag.

Change-Id: I3173e3a0f846ec3bf0d319624a37741c56914be5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2060304
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66427}
2020-02-25 13:37:57 +00:00
Mythri A
443721bd7f Set bytecode budget to interrupt_budget when allocating feedback vector
We use the same interrupt to both allocate feedback vectors and
for updating the profiler ticks. If there is a feedback vector already
available, we just increment the profiler ticks that we use to mark
for optimizing function. Calling JSFunction::EnsureFeedbackVector
allocates a feedback vector, but doesn't reset the budget, so we
optimize much earlier than expected. This is currently only a problem
with %PrepareFunctionForOptimize that doesn't reset the budget. Other
code paths do also reset the interrupt budget.

Bug: chromium:10243
Change-Id: I611a9202e5e71077bf897def5959bcfe11b8fdf4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2064980
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66426}
2020-02-25 13:24:06 +00:00
Mike Stanton
8a492221d2 [TurboFan] Fix error in FastApiCall simplified lowering
CL Reland "[turbofan] Fast API calls from TurboFan
https://chromium-review.googlesource.com/c/v8/v8/+/2066971
had an off-by-one error in simplified lowering for fast
api calls.

Bug: chromium:1052746

Change-Id: I31bed7d1bb9564c6991521e84fd1a8edad6d0e32
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071259
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66425}
2020-02-25 12:48:26 +00:00
Clemens Backes
347700c7ca Reland "[inspector] Check that wasm wrappers appear in profiles"
This is a reland of 78defee492

Original change's description:
> [inspector] Check that wasm wrappers appear in profiles
>
> This extends the existing wasm profiling test to also check that
> wasm-to-js and js-to-wasm wrappers appear in the profiles as expected.
> It thus serves as a regression test for the status quo.
>
> R=bmeurer@chromium.org
>
> Bug: chromium:1054386
> Change-Id: I5d4d8e6a252c6eb266b910621fca43a6ff0837bd
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066970
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#66401}

TBR=bmeurer@chromium.org

Bug: chromium:1054386, v8:10266
Change-Id: Iae04c0564ee8f0330d61ce954d895a41497c5a85
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071260
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66424}
2020-02-25 12:40:36 +00:00
Ng Zhi An
0d0d38fec0 Reland "[liftoff] Check fp_pair when looking up register for reuse"
This is a reland of 548fda4afb

regress-1054466 is modified to not use 64x2 operations, since that was
causing problems on noavx/nosse builds, which requires scalar lowering,
and scalar lowering for 64x2 ops is not implemented.

Original change's description:
> [liftoff] Check fp_pair when looking up register for reuse
>
> Given two registers that are both not gp_pair, one could be an fp_pair,
> and the other not, and we will incorrect call == on them. The current
> check needs to be expanded to check that both registers are fp_pair.
>
> Bug: chromium:1054466
> Change-Id: Ib986c002a8a5cadb9668458597a797cecfd971b1
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2070006
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#66402}

Bug: chromium:1054466
Change-Id: If88f1ff2fb17aaa3727758cda5b368be1c6d9bd6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071396
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66423}
2020-02-25 12:18:46 +00:00
Georgia Kouveli
cc12e94784 [arm][arm64] Remove dead code
Change-Id: I22a6d25fb1d7b8e0db13df4a0be46d2f4104d20c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2064394
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Cr-Commit-Position: refs/heads/master@{#66422}
2020-02-25 11:12:57 +00:00
Dan Elphick
c57c661de9 [cleanup] TNodify RoundIntPtrToFloat64
Makes RoundIntPtrToFloat64 return TNode<Float64T> instead of Node*.

Bug: v8:10155
Change-Id: I1edd5456b2b86b264b66eeab5e46ceb2a1f0170f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2064978
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66421}
2020-02-25 10:42:13 +00:00
Andreas Haas
300c139b86 [wasm][i64-lowering] Refactor special CallDescriptor lowering
This CL generalizes the lowering of special CallDescriptors in the
int64-lowering. The reason is a planned extension of the special
handling due to a refactoring of the AtomicWait implementation.

R=jkummerow@chromium.org

Bug: v8:10108
Change-Id: I48d0087e2ad00ba9b44c5198ffdbbae8eb575a85
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2069333
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66420}
2020-02-25 10:23:46 +00:00
Richard Townsend
8af03419a6 [arm64][msvc] Implement missing functions in mksnapshot
Because this code is compile-time gated, it's bit-rotted as new
functions have come along. This patch brings things back to
parity with x86/x64.

Bug: v8:10012
Change-Id: Iba4cd1155a1ae46742ecddbed96f36938a10db48
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066973
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Richard Townsend <richard.townsend@arm.com>
Cr-Commit-Position: refs/heads/master@{#66419}
2020-02-25 10:04:06 +00:00
Camillo Bruni
b89f85141b [d8] Claim TLA TODOs
Bug: v8:9344
Change-Id: Iee66fc27b9f1c45ac3ac09dd82d88926414cc8f0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2061558
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66418}
2020-02-25 09:40:16 +00:00
v8-ci-autoroll-builder
fbc8e00b14 Update V8 DEPS.
Rolling v8/build: 49d87d5..11be0fc

Rolling v8/buildtools: feb2d0c..ef2f1b3

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/672b17e..8fd825d

Rolling v8/third_party/depot_tools: 1773f37..9aa1a96

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I22baa6ba92b307d8c282364eb694704dcff06509
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2070999
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#66417}
2020-02-25 03:56:46 +00:00
Shu-yu Guo
5e797bf82a [weakrefs] Rename FinalizationGroup to FinalizationRegistry in C++
Renaming the JS-visible identifiers and strings is left for a future CL.

FinalizationGroup was renamed at Feb 2020 TC39, to better signal that if
a FinalizationRegistry dies, the finalization actions registered with it
may no longer be performed.

Bug: v8:8179
Change-Id: I0d676a71a4a67d2b7175994a67458a6158065844
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2055381
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66416}
2020-02-24 23:02:12 +00:00
Igor Sheludko
aa9849470e [ptr-compr] Fix 32-bit smis on non-ptr-compr builds
Bug: v8:10047, v8:10257
Change-Id: Ifcc65235726420fe753e26707d84061400d5d2b1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2050384
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66415}
2020-02-24 21:42:43 +00:00
Richard Townsend
e00fdf2dfe [arm64][msvc] fix cctest build for ARM64 MSVC
Changes the lambda capture for this test so that referenced variables
are captured automatically. This means MSVC and Clang can compile the
same test without compiler-specific #ifdef's.

Bug: v8:10012
Change-Id: Ife4ee050e227478842c0f8def92adb0857082ccf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066984
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Richard Townsend <richard.townsend@arm.com>
Cr-Commit-Position: refs/heads/master@{#66414}
2020-02-24 21:25:32 +00:00
Shu-yu Guo
5594158c90 Add a synthetic return for async generator functions
Currently implicit returns do not correctly resolve the async generator
objects. This is observable via AsyncGenerator#throw as the implicit
return won't override the rejection.

Bug: v8:10238
Change-Id: I012fc3507d1e4106e7f35b21275be180a6e274c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2065343
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66413}
2020-02-24 19:33:46 +00:00
Gus Caplan
1161fe868d [api] add v8::Object::IsUndetectable
This will enable people to check if an object is
document.all without having to use tricks like
`typeof v === 'undefined' && v !== undefined`.

Change-Id: I74670e4d3886fcd90f0f3cef9c3644a24ee08fda
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2067681
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66412}
2020-02-24 19:17:56 +00:00
Frank Tang
8158c2160b Fix format of -NAN in toLocaleString()
Bug: chromium:1030160
Change-Id: I4e1b762b10c77ec671712355c61cdbb0b5f033da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2068725
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66411}
2020-02-24 17:11:26 +00:00
Frank Tang
31b34fe953 Change FATAL to IcuError exception
Bug: v8:10224
Change-Id: Ief05b93d71f6da53b0bcfd68719fa79fc2b59e51
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2068903
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66410}
2020-02-24 17:07:06 +00:00
Philip Pfaffe
f07db34d85 Revert "[wasm-debug] Let wasm scripts report correct column information."
This reverts commit 827107a7dc.

Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=1054664

Original change's description:
> [wasm-debug] Let wasm scripts report correct column information.
>
> In the debugger, wasm scripts currently do not contain meaningful column
> informations. Fix that by keeping track of the offset and size of the
> wasm code section inthe module and reporting that to the debugger.
>
> Bug: chromium:1042636
> Change-Id: Ie2b5d3a50952a467d256f815c16e459cb0ae600e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2011083
> Commit-Queue: Philip Pfaffe <pfaffe@chromium.org>
> Reviewed-by: Simon Zünd <szuend@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65913}


Bug: chromium:1042636
Change-Id: Ic59d71111c3274688828bdbf6894f7f3274dc50a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066983
Commit-Queue: Philip Pfaffe <pfaffe@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66409}
2020-02-24 14:24:26 +00:00
Emanuel Ziegler
1a2a812382 [wasm] Save FP & PC when calling C functions (x64 only)
This change is needed for profiling of Wasm code that calls C-function
to ignore the C-stack above the Wasm stack that otherwise couldn't be
parsed otherwise.

R=clemensb@chromium.org
R=petermarshall@chromium.org
R=jgruber@chromium.org

Bug: chromium:1045860
Change-Id: Ia0788189ca666e77f1564576903c1dc4fd745b8d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066964
Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66408}
2020-02-24 14:04:46 +00:00
Clemens Backes
75931f18ee [wasm] Extend debug side table for registers
This extends the debug side table to also store register locations in
addition to constants and stack values.
Previously, every value that was not constant was assumed to be spilled
to the stack. This made sense, because without breakpoints we would only
emit debug side table entries at call sites, where all registers are
spilled.
With breakpoints, this changes. At break locations, values might be live
in registers.

The logic to decide whether a value will live in the register or on the
stack is extended, because we sometimes generate the debug side table
entry at a point where the registers are not spilled yet. The debug side
table entry creation needs to account for that, and assume that these
registers will still be spilled.

R=thibaudm@chromium.org

Bug: v8:10147, v8:10222
Change-Id: I3b020dfaa29fc007047663706ee286180a996bfd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066960
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66407}
2020-02-24 13:29:06 +00:00
Clemens Backes
11d4a38948 Revert "[inspector] Check that wasm wrappers appear in profiles"
This reverts commit 78defee492.

Reason for revert: Timeout on TSan: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/30410

Original change's description:
> [inspector] Check that wasm wrappers appear in profiles
> 
> This extends the existing wasm profiling test to also check that
> wasm-to-js and js-to-wasm wrappers appear in the profiles as expected.
> It thus serves as a regression test for the status quo.
> 
> R=​bmeurer@chromium.org
> 
> Bug: chromium:1054386
> Change-Id: I5d4d8e6a252c6eb266b910621fca43a6ff0837bd
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066970
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#66401}

TBR=clemensb@chromium.org,bmeurer@chromium.org

Change-Id: Iac4299d5a4dc74041fbceac98cd2c2b96b9425df
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1054386
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2069328
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66406}
2020-02-24 13:19:51 +00:00
Clemens Backes
37425fe968 Revert "[liftoff] Check fp_pair when looking up register for reuse"
This reverts commit 548fda4afb.

Reason for revert: Segfault on nosse bot: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux/35905?

Original change's description:
> [liftoff] Check fp_pair when looking up register for reuse
> 
> Given two registers that are both not gp_pair, one could be an fp_pair,
> and the other not, and we will incorrect call == on them. The current
> check needs to be expanded to check that both registers are fp_pair.
> 
> Bug: chromium:1054466
> Change-Id: Ib986c002a8a5cadb9668458597a797cecfd971b1
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2070006
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#66402}

TBR=clemensb@chromium.org,zhin@chromium.org

Change-Id: I56f13406ef3cc3793c9d0e2273c4dc5fb0e3de38
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1054466
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2069327
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66405}
2020-02-24 13:18:46 +00:00
Yolanda Chen
4f5ec4d852 [regalloc] Fix liverange bundle TryMerge to merge connected UseIntervals
The current bundle merge check on uses does not merge UseInterval starting from the other UserInterval's end.
This is incorrect and will miss some bundle merge opportunties.

Change-Id: I0b828f83cfe7ae401e3c0c40dc94aa3787f2e05e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2059570
Commit-Queue: Yolanda Chen <yolanda.chen@intel.com>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66404}
2020-02-24 12:42:06 +00:00
Vadim
93230d31f5 Define basestring in Python 3
The Python builtin `basestring` has been removed from all [currently supported version of Python](https://devguide.python.org/#status-of-python-branches) so define `basestring` in Python3 so that line 60 does not raise a NameError at runtime.

Related task: https://github.com/v8/v8/pull/38

Bug: v8:10256
Change-Id: I087c561fff5a19aab1fec71e1ea0435cbfeca5d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2069317
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Tamer Tas <tmrts@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66403}
2020-02-24 12:32:06 +00:00