Commit Graph

79598 Commits

Author SHA1 Message Date
Simon Zünd
5b8d62d830 [debug] Only 'step-in' on function entry for scheduled pauses
This CL fixes a bug where we wouldn't pause (or even crash) when trying
to interrupt an infinite loop.

When we pause via stack check (i.e. a scheduled break) we currently do
one additional step-in. We do so to enter functions properly in case
we are paused in the middle of setting up the stack frame.

Loops also do a stack check, to support pausing infinite loops. In
that case we can skip the additional step-in as we are already
in a valid pause position (as implemented by this CL).

This CL also removes two bogus DCHECKs. We assumed that
a scheduled break never happens after a step. This is wrong, e.g.
a user can click the pause button after stepping over a long running
function.

Note that we duplicate the various loop interruption cctests to
also interrupt the loops with the "scheduled" break reason. Without
the changes in debug.cc, those won't pass.

The CL https://crrev.com/c/4136058 adds a regression test on the
blink side.

R=jarin@chromium.org

Fixed: chromium:1401674
Change-Id: I42b44744b17d24351f01b83c0446908c24e6c5fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4134246
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85106}
2023-01-05 06:19:47 +00:00
v8-ci-autoroll-builder
70253ba04e Update V8 DEPS (trusted)
Rolling v8/build: 44b5138..33bb56b

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/a404e6d..038b25e

Rolling v8/third_party/depot_tools: 252b198..58a343c

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20230103.1.1..version:11.20230104.1.1

Rolling v8/third_party/zlib: 18d27fa..fa5dc47

Change-Id: I49c9e11b32c782a4f0cb29b1559f708549d6e8bb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4133999
Bot-Commit: 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/main@{#85105}
2023-01-05 04:05:20 +00:00
Lu Yahan
2bb36a2275 [riscv] Fix disasm error about fcvt.s.d
Change-Id: I1046f5d7147a032b6f7c830c4ae3235bc9f55088
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4134468
Commit-Queue: ji qiu <qiuji@iscas.ac.cn>
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#85104}
2023-01-05 03:19:51 +00:00
Lu Yahan
a6c2b39080 [riscv] Remove unnecessary unbound label count
The bind_to function doesn't link branch long to trampoline, so it doesn't need to add  unbound_labels_count_.

Change-Id: I2e3861a38eb65c285f19accb12bccb9f4c9fcfb1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4133426
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Commit-Queue: ji qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#85103}
2023-01-05 03:11:14 +00:00
Shu-yu Guo
071de173dc [string] Rename String::GetChars -> String::GetDirectStringChars
GetChars may give the misimpression that it's usable with all flat
strings, while it is only usable with direct strings.

Change-Id: I1fd1ae93f75aca4079a2f65b5440a693dc2eb5c8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4133547
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85102}
2023-01-04 20:07:52 +00:00
Darius M
3f75b580eb [maglev] Fix bug because of output-input aliasing
Bug: v8:7700
Change-Id: Ide3704bd44b8f531720ba38127e98c00e59a7d57
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4136712
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85101}
2023-01-04 17:15:57 +00:00
Michael Lippautz
6eb0a668c2 [heap] Move wrappable extraction logic out of LocalEmbedderHeapTracer
Bug: v8:13207
Change-Id: I5d96454c7335e698ff79572706cf0c16640fdd53
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4136711
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85100}
2023-01-04 17:04:15 +00:00
Darius M
5d3e12941e [maglev] Support in-heap TypedArrays
Drive-by: fix a bug with TypedArray loads: because we used the output
register as a temporary, if it was actually aliasing with one of the
input registers, the generated code was incorrect.

Bug: v8:7700
Change-Id: Id297f728ca2de13ebc5993cea675900fbfdd7886
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4135884
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85099}
2023-01-04 16:14:50 +00:00
Clemens Backes
05a76791c4 [liftoff][fuzzer] Do not throw before frame setup
Delay the "max steps" check until the frame is fully set up. This means
that the work is already done at the point where we check the maximum
number of steps, but the additional work is limited by the maximum
number of locals and parameters.

R=thibaudm@chromium.org

Bug: chromium:1404619
Change-Id: I4919c837feea92af84f99182a571edf96e4728ac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4135890
Auto-Submit: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85098}
2023-01-04 15:54:18 +00:00
Leszek Swirski
6adfc3856f [git blame] Add a few old refactors to .git-blame-ignore-revs
Namely:
  1. objects.h splitting into objects/*.h (crbug.com/v8/5402)
  2. src/ splitting into subfolders for OWNERS (crbug.com/v8/9247)
  3. splitting include/v8.h (crbug.com/v8/11965)

This is best used with:
  # Use the .git-blame-ignore-revs file for git blames
  git config --global blame.ignorerevsfile .git-blame-ignore-revs

  # Track code movement with git blame using -C
  git blame -C <file>

Change-Id: Ia5a641be077a9befe008857beee3b6808bbd6107
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4135882
Reviewed-by: Alexander Schulze <alexschulze@chromium.org>
Commit-Queue: Alexander Schulze <alexschulze@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85097}
2023-01-04 15:43:38 +00:00
Victor Gomes
203d9c8cb6 [maglev][arm64] Fix InterruptBudget IRs
Use a temporary for feedback cell, since if the `amount` is big enough,
the macro instructions Add/Sub might need a temporary register
as well.

Bug: v8:7700
Change-Id: I2930f525ab3bf7d92fc1a47d9c483577c6186400
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4135889
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85096}
2023-01-04 15:42:36 +00:00
Junliang Yan
d201f32e50 ppc: [ptr-cage] Add ppc support
Change-Id: I09da99e525c2c0ad992c70f5f6a715e36e6ede30
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4135888
Commit-Queue: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#85095}
2023-01-04 15:41:28 +00:00
Qifan Pan
63134966fd [turbofan] Fix a bug of SignedBigInt64 in representation changer
The expected behavior of the optimized code is deoptimizing when using a BigInt
as an index and throwing an error (from CheckedTaggedToInt64).
The representation changer tries to insert conversions for this case where

- The output node is represented in Word64 (SignedBigInt64)
- The use info is CheckedSigned64AsWord64

The representation changer first rematerializes the output node to
TaggedPointer because the type check is not BigInt. Then it falls wrongly to
the branch where the output representation is TaggedPointer, the output type is
SignedBigInt64 in GetWord64RepresentationFor.

Bug: v8:9407, chromium:1403574, chromium:1404607
Change-Id: I9d7ef4c94c1dc0aa3b4f49871ec35ef0877efc24
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4135876
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Qifan Pan <panq@google.com>
Cr-Commit-Position: refs/heads/main@{#85094}
2023-01-04 15:30:31 +00:00
yangwenming
22ef44b655 [cppgc] check on a valid shared_ptr.
This CL fixes calling CHECK_NULL on a moved shared_ptr.

Bug: v8:13589
Change-Id: I52ab261df7e995f4a9fcfd7a2a3c2c0012a4c94f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4135701
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85093}
2023-01-04 15:17:20 +00:00
Milad Fa
bc4bac3877 PPC[liftoff]: Implement Simd128 Construct
Change-Id: Iad47ca2c3d4918957aea3896d500d4aaa4ffa13d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4133305
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#85092}
2023-01-04 14:34:12 +00:00
Samuel Groß
f0254afaab [sandbox] Initialize EPT evacuation entries atomically
Currently, evacuation entries are initialized non-atomically as they
will only be accessed during sweeping. However, it can happen that
another thread attempts (but fails) to allocate the same table entry,
causing a memory read from the same entry. If that happens, TSan will
complain about a data race. Using an atomic store avoids this.

Bug: chromium:1370743
Change-Id: Idaa5548494d4b1660ee5a798966dd09bf4b3d55c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4135880
Commit-Queue: Samuel Groß <saelo@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85091}
2023-01-04 13:55:18 +00:00
Jakob Linke
c7450a8f3d [testrunner] Allow rules with negated build variables in variants.py
.. since many of these rules are actually relevant when some build
variable is *not* set. Instead of defining an artificial "no_foo"
variable in addition to "foo", allow definition of rules on a negative
build variable condition, e.g.:

 "!is_debug": [...]

This new syntax will be used extensively in a followup CL.

Bug: v8:13629,v8:10577
Change-Id: I5ad432e71249b50d15047930e3f9143e872716d8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4134247
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85090}
2023-01-04 13:47:46 +00:00
Michael Lippautz
5b1929a8f0 [heap] Fix accounting of used bytes in CppHeap
Bug: chromium:1404804, v8:13207
Change-Id: I352c3be0125c4344b613474757a900eb0114ff5f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4135878
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85089}
2023-01-04 12:07:27 +00:00
Nico Hartmann
da8ef354e8 [turboshaft] Implement typing of remaining FloatBinop operations
Bug: v8:12783
Change-Id: I7a5bed4e349c8ced519469602716b132fe702aa0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4061357
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85088}
2023-01-04 11:53:49 +00:00
gengjiawen
166fd2f38f [cppgc]: Fix build on msvc
Fixes compilation with msvc 2019 toolchain.

See: nodejs/node#37330 (comment)

Bug: v8:12661
Change-Id: I7cfd87a3dd531a2e4913d82b743fb8ecdfdb5ed8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3533019
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85087}
2023-01-04 10:12:56 +00:00
v8-ci-autoroll-builder
419a1c716c Update V8 DEPS (trusted)
Rolling v8/base/trace_event/common: 521ac34..68e6038

Rolling v8/build: 5129278..44b5138

Rolling v8/third_party/depot_tools: 5b0c934..252b198

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20230102.2.1..version:11.20230103.1.1

Change-Id: I01351584aeabfa611ab7e2c2b161b49bae753348
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4133310
Bot-Commit: 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/main@{#85086}
2023-01-04 03:54:57 +00:00
Liu Yu
dba5c526af [loong64][mips64][wasm] Fix printing of wasm-to-js frames
Port commit e17eee4894

Change-Id: I7a4f68706f9691647f2dc47e8534e3cb356dd945
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128274
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Liu Yu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#85085}
2023-01-04 01:45:09 +00:00
JianxiaoLuIntel
bf19099f3a Reland "[turbofan] Simplifying (x+k1)==k2 into x==(k2-k1)"
This is a reland of commit e9333ebd3c

Fix UB int overflow

Original change's description:
> [turbofan] Simplifying (x+k1)==k2 into x==(k2-k1)
>
>
> Change-Id: I234da79e1f53fa0fc15494fe6d31742d4e6eea97
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055393
> Commit-Queue: Jianxiao Lu <jianxiao.lu@intel.com>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#84947}

Change-Id: Ib79fd496147f5c7f33846168908c36ebb5229208
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4119767
Commit-Queue: Jianxiao Lu <jianxiao.lu@intel.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85084}
2023-01-04 01:41:39 +00:00
Shu-yu Guo
a934b72483 [string-iswellformed] Fix isWellFormed for indirect strings
Bug: chromium:1403546, v8:13557
Change-Id: Ifb96207022eef451f10cdba92519e97e452d884e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4131800
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85083}
2023-01-03 19:31:31 +00:00
Victor Gomes
f0989ad168 [maglev][arm64] Use Cmp instead of cmp
Cmp can deal with large immediates (in particular Smi::kMaxValue).

Bug: v8:7700
Change-Id: I4dedb6c52f263f626f924c0465acbd5a250b7fd5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4127227
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85082}
2023-01-03 19:29:00 +00:00
pthier
8d54971115 [test] Fix cctest/test-strings/Regress1402187 for non sandbox builds
Increase length of strings in the test to ensure they are cachable
external strings even when the sandbox is disabled.

Change-Id: I1228e1abb1d88c0bb70edaeb718e1bf2f4cdd53d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4127228
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Patrick Thier <pthier@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85081}
2023-01-03 17:14:13 +00:00
Clemens Backes
8a565c39d0 [wasm] Remove mprotect-based code protection
With lazy compilation we disabled mprotect-based code protection. We
currently have no users and no test coverage of that flag. Hence remove
it from the code base.

R=ahaas@chromium.org

Bug: v8:13632
Change-Id: I1e39499dfbdb896287901b97c32f00366449c466
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4114296
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85080}
2023-01-03 16:38:56 +00:00
Darius M
c5bf7a36b6 [maglev][arm64] Implement TypedArray IRs
Bug: v8:7700
Change-Id: I0409743886d9321fbe6991841c0b37e4f4f6814e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4130289
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85079}
2023-01-03 14:25:18 +00:00
Darius M
58421a8165 [maglev][arm64] Fix wrong scaling in StringCharCodeAt
Bug: v8:7700
Change-Id: I940280221deabf49c87fdc099afb77bfce9015c4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128531
Auto-Submit: Darius Mercadier <dmercadier@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85078}
2023-01-03 14:21:06 +00:00
Al Muthanna Athamina
1fe6f5ca92 Skip wasm/log-code-after-post-message and asm/regress-1395401 until issue is fixed
Bug: v8:13545
Change-Id: Ib7b5a2c2ce79ade5835eb467cd78a85b8049866a
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4127960
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85077}
2023-01-03 14:02:35 +00:00
Clemens Backes
a7285a717b [wasm] Remove wasm_write_protect_code variant
This mode is not used in production any more, and will be removed from
the code base soon. Thus stop executing this variant on bots and remove
the variant definition.

R=machenbach@chromium.org

Bug: v8:13632
Change-Id: I15ff76fa6c5b52f5287e758a80f955ffb1278261
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4127158
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85076}
2023-01-03 13:57:50 +00:00
Victor Gomes
8368b035cd [arm64] CheckSmi used in release code
CheckSmi is used by Maglev in release mode, so it should
not be defined inside a #ifdef V8_ENABLE_DEBUG_CODE

Change-Id: I5dfe23d90fcc662fa91e541bdb8df10c5d2a4e7d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128616
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85075}
2023-01-03 13:40:44 +00:00
Al Muthanna Athamina
d7fa9b66dc [infra] Add TSAN CQ and CI builders with debug/dchecks
Bug: v8:13548
Change-Id: I4d0acf20ec27870540782fc7c2555286b8d7a4c5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4066480
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85074}
2023-01-03 13:20:30 +00:00
Michael Lippautz
dd68531420 [heap] Moving scheduling GCs from LocalEmbedderHeapTracer to CppHeap
Bug: v8:13207
Change-Id: Id595a34677cc58319043c0e784beb5eed9be7411
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128506
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85073}
2023-01-03 13:05:54 +00:00
Victor Gomes
1fe5f0f8e1 [maglev][arm64] Add SetPending IR
... and add exception handlers trampolines as a jump target for CFI.

Bug: v8:7700
Change-Id: Ie0ef6617ae5a42965862e5f3cf0d7a50158267bb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128528
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85072}
2023-01-03 12:59:00 +00:00
Darius M
5694514c5c [maglev][arm64] Implement DataView IRs
Bug: v8:7700
Change-Id: I90a837981d56f3bb26814e243b8e8fe2c324a3ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128526
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85071}
2023-01-03 12:46:39 +00:00
pthier
45277889e8 [maglev][arm64] Make CheckUint32IsSmi arch agnostic and port AssertInt32
Bug: v8:7700
Change-Id: I9710adb42b56c7df18bcb0570dc7693558f655dc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128507
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85070}
2023-01-03 11:45:06 +00:00
Victor Gomes
6f29973f20 [maglev][arm64] Share [Holey]Float64Box
... and CheckJSArrayBounds.
Also remove unused CmpObjectType in macro assembler.

Bug: v8:7700
Change-Id: I44297fd01146d68643222ad270391c597d0cbe66
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128093
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85069}
2023-01-03 10:37:58 +00:00
Michael Achenbach
e3828ab088 Revert "[foozzie] Temporarily lower the amount of --future tests"
This reverts commit 6b2c271cfb.

Reason for revert: All open bugs were fixed.

Original change's description:
> [foozzie] Temporarily lower the amount of --future tests
>
> Drop --future from 25% to 5% for a few days until all currently open
> correctness cases associated with --future are fixed.
>
> No-Try: true
> Bug: v8:7700
> Change-Id: I161a0adbc767c5cec46409443fe58c634531487c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4114292
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#85010}

Change-Id: I804a4c33922595e380bdd11150ff826d6669d846
No-Try: true
Bug: v8:7700
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128527
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85068}
2023-01-03 10:07:30 +00:00
v8-ci-autoroll-builder
a5acddef26 Update V8 DEPS (trusted)
Rolling v8/build: 7ba88a0..5129278

Rolling v8/third_party/depot_tools: 03af44a..5b0c934

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20230101.3.1..version:11.20230102.2.1

Change-Id: I4e5f8192c181d81ab7f241583e87fdfff2ca5d92
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4131422
Bot-Commit: 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/main@{#85067}
2023-01-03 03:46:42 +00:00
Nikolaos Papaspyrou
15c726bd63 [heap] Merge mechanisms for disabling CSS
EmbedderStackStateScope is used to disable conservative stack scanning
for cppgc when the stack is known to not contain heap pointers. Also,
DisableConservativeStackScanningScopeForTesting is used to disable CSS
for the V8 heap in tests that assume a precise GC. Until now, these two
have used two different mechanisms for disabling CSS. This CL merges
the two mechanisms and implements the latter scope via the former.

This is a reland of commit f51e0bb1db
reviewed on https://chromium-review.googlesource.com/c/v8/v8/+/4111954

Bug: v8:13257
Change-Id: Ia124a4201686e0ea79f9cd07bc3888b9781cafa9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128141
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85066}
2023-01-02 16:51:48 +00:00
Clemens Backes
ba8eec7da0 [wasm] Report decommit failure as OOM
If we are near OOM, the {DecommitPages} call can actually fail. Call
{FatalProcessOutOfMemory} in that case to get a proper OOM crash
signature.

To protect against bugs in the implementation, we add a check that
decommitting only fails with the ENOMEM error.

R=mlippautz@chromium.org

Bug: chromium:1403519
Change-Id: I54fabd1efa566cc1c474974577ec16f75cd3d726
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4118548
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85065}
2023-01-02 16:09:29 +00:00
Clemens Backes
03ad044ce5 [fuzzer][liftoff] Account for locals in max_steps
The fuzzer limits the number of "steps" that should be executed in
Liftoff. A "step" typically means one Wasm instruction. The cost of
function calls is linear in the number of parameters and locals though,
so that should be accounted for.

In the linked issue (timeout), we were repeatedly calling a function
with a big number of reference locals, which all need to be initialized
to the null value.

R=thibaudm@chromium.org

Bug: chromium:1399868
Change-Id: Id071aeee6a0b2670b926880744ea82cc37881876
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4118547
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85064}
2023-01-02 15:53:46 +00:00
pthier
9b9063dd22 [maglev][arm64] Port ToObject, ToString and ConvertReceiver
Bug: v8:7700
Change-Id: I74465260ee7a1af69bdf17c5d02d897a30c7866a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4129531
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85063}
2023-01-02 15:45:03 +00:00
Clemens Backes
f941f98d4e [liftoff] Compute instance register more directly
Just take the first GP parameter register; this is more efficient than
going through the call descriptor.

R=ahaas@chromium.org

Bug: v8:13565
Change-Id: If0c6988c359511c07c5f41b7fa79e3e55d3d81c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111934
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85062}
2023-01-02 15:39:48 +00:00
Michael Lippautz
a8a1805e12 [api, heap, handles] Remove deprecated EmbedderHeapTracer
This removes EmbedderHeapTracer from V8's API. Going forward
v8::TracedReference is only supported with using CppHeap (Oilpan).

Bug: v8:13207
Change-Id: I4e0efa94890ed147293b5df69fd7e0edad45abb5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111546
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85061}
2023-01-02 15:17:40 +00:00
Leszek Swirski
d43b93a7ac [maglev] Use NaN for StoreDataView with no args.
StoreDataView with no args should store NaN, not zero.

Bug: v8:7700
Change-Id: I9688465fea2ac1a88f0bff2a7b7d1c419dc7e43e
Fixed: chromium:1403743
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4127165
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85060}
2023-01-02 15:03:55 +00:00
Darius M
3d921a0afb [maglev][arm64] Implement StoreMap/StoreDoubleField IRs
Bug: v8:7700
Change-Id: Ic2bb43b4fb34aa6221bf04d90517ecc3a3482b8a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128523
Auto-Submit: Darius Mercadier <dmercadier@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85059}
2023-01-02 15:02:53 +00:00
Leszek Swirski
06e469190c [maglev] Fix RootConstant::ToBoolean for root heap nums
ToBoolean was wrong for a couple of root heap numbers (namely, NaN,
holey NaN, and minus zero.

Fix this, and add an exhaustive test of root constant ToBoolean values.

Bug: v8:7700
Change-Id: I6939c6eb5130cb8a3a4f7007b1a0a1dcc415e8b2
Fixed: chromium:1403740
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128524
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85058}
2023-01-02 15:01:50 +00:00
pthier
cabbc128e4 [string] Don't overwrite original string in InternalizedStringKey
When internalizing external strings, a new internalized external string object is allocated if the string is not in-place internalizable. This newly allocated strings external resource is set to null (the actual resource will be transferred by MakeThin to ensure unique ownership of the resource).

We need to preserve the original string in the InternalizedStringKey for
the second lookup (inside the critical section), as we need to access
the external resource in case of hash collisions to check for equality.

Bug: chromium:1402187
Change-Id: I62b637859b06f05d1b34cb26495f08ec44d2f2db
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4128089
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85057}
2023-01-02 14:27:51 +00:00