Commit Graph

71558 Commits

Author SHA1 Message Date
Jakob Gruber
a705e6551c [regexp] Remove partial property sequence support
The proposal has changed and we'll start on the new implementation
from scratch.

Bug: v8:11935, v8:7467
Change-Id: I29e39a414027d80fd91764ce02a05d7c032a41f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3178964
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77016}
2021-09-23 14:54:23 +00:00
Dominik Inführ
df91e1ed12 [heap] Rename PagedSpace::SetReadAndWritable
SetCodeModificationPermissions better reflects its current usage.

Change-Id: Ia9b42328a2d467613736878e2b560e0d5282ad3f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173674
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77015}
2021-09-23 14:19:05 +00:00
Dan Elphick
88c43927a9 [include] Add TryCatch and Extension to v8-forward.h
Bug: v8:11965
Change-Id: Ifa8946b28aad681bf3a13861db8f02d8e1a51730
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3178960
Auto-Submit: Dan Elphick <delphick@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77014}
2021-09-23 13:15:10 +00:00
Jakob Gruber
bba7c09aad [regexp] Allow reentrant irregexp execution
.. by reusing the regexp stack from potentially multiple nested
irregexp activations.

To do this, we now maintain a stack pointer in RegExpStack. This stack
pointer is synchronized at all boundaries between generated irregexp
code and the outside world, i.e. when entering or returning from
irregexp code, and when calling into C functions such as GrowStack.

Fixed: v8:11382
Change-Id: I5ed27630c1a64ebf3afb9ddf80fb60ea067c0c40
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162604
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77013}
2021-09-23 13:10:39 +00:00
Anton Bikineev
e262e1cb4a [zone] Provide a way to configure allocator for zone backings
The CL provides a way for the embedder to hook in a special malloc-like
allocator that will be used for zone allocations.

An alternative approach would be to use weak functions with branches,
checking whether the functions were available at link-time. Those
branches could be optimized away with LTOs, so they would essentially
be free. However, the weak function approach is not portable (e.g.
there is no easy way to emulate it with msvc). The approach can be
revisited if indirect call turns out to be expensive (e.g. on hardware
with weak branch target predictors).

The CL is a prerequisite for running PCScan in the renderer process.

Bug: chromium:1249550
Change-Id: I221dcb2486c13e8e6e6761839ba391978319bde4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3172760
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77012}
2021-09-23 12:45:52 +00:00
Milad Fa
74ca05b05f PPC/s390: Omit check against kDontAdaptArgumentsSentinel
Port aa259e30c3

Original Commit Message:

    When kDontAdaptArgumentsSentinel is 0 (the receiver is included in the
    argument count), we don't need a dedicated check against the sentinel
    before comparing the formal parameter count to the actual argument count
    when calling a JS function.

R=pthier@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
BUG=
LOG=N

Change-Id: I055ce6d72da8140aa81acd41f917e1e9a7751f72
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3175663
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77011}
2021-09-23 12:44:49 +00:00
Maria Tîmbur
e910fc7538 [fuzzer] Generate arbitrary struct and array types
Generate arbitrary struct and array types based on
the fuzzer random input stream.
They replace the hard-coded types.
Generated types include nested reference types and recursive types.

Bug: v8:11954
Change-Id: I2e40697f2ace3eb818360213e8a4dd40037e580e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173683
Commit-Queue: Maria Tîmbur <mtimbur@google.com>
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77010}
2021-09-23 10:32:29 +00:00
Thibaud Michaud
750923bd78 [wasm][fuzzer] Fix fuzzer error message
R=clemensb@chromium.org

Bug: chromium:1251465
Change-Id: I09507f1f945252be54c916dcd7ac9e8b7c09643b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3177220
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77009}
2021-09-23 09:36:49 +00:00
Clemens Backes
c946ff8927 [liftoff] Optimize comparisons with constants
i32 comparisons often compare against constants, in order to implement
conditional branches. This CL optimizes such code by not loading the
constant into a register first, but directly emitting the comparison.
The code is shared for implementing {if} and {br_if} (and thereby makes
those two methods more readable).

R=thibaudm@chromium.org

Change-Id: I3f2f071a1c9e4b02c7368a2757bf4aae2920bd69
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3172765
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77008}
2021-09-23 08:59:29 +00:00
Camillo Bruni
41578273df [torque] Emit source position comments to generated files
Change-Id: I36d230fa3e51eb27109a8dd2adc0e7802fc77a7d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3177221
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77007}
2021-09-23 08:39:59 +00:00
Omer Katz
e5c2de4749 cppgc: Add early bailout to write barrier
This bailout applies only when young generation is disabled.
Otherwise, getting the caged heap is required and the global load
bailout becomes redundant.

Bug: chromium:1056170, chromium:1239030
Change-Id: I826b355f4356a5c20812d9c8bf6ebc7ea0997b8a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173685
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77006}
2021-09-23 08:17:58 +00:00
Camillo Bruni
2974d1e705 [isolate] Set the stack trace limit to 0 for correctness fuzzing
Bug: chromium:1244626
Change-Id: I539a476bc683e3b40d85ee4c7579957bdf4fb5d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3133145
Auto-Submit: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77005}
2021-09-23 07:18:39 +00:00
Jakob Gruber
b01bb10cb6 [regexp] Use appropriate fast path check in String.matchAll
This fast path check protects the IsRegExp() path (which checks
RegExp.prototype[Symbol.match]) and thus we must use the appropriate
ForMatch check instead of the default check.

Fixed: chromium:1238033
Change-Id: I0b7ce280f1fa9bfacf20381d80c84f9513f45163
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3177222
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77004}
2021-09-23 06:59:38 +00:00
Marja Hölttä
19efb9e3d3 [rab/gsab] TA.p.copywithin: Support RAB / GSAB
Bug: v8:11111
Change-Id: Id1e37770f0f196db0887fceb14f895e576b78b73
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173673
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77003}
2021-09-23 06:14:33 +00:00
Camillo Bruni
ab836859d9 [api] Remove deprecated HostImportModuleDynamicallyCallback
Deprecation happend in v9.4

Bug: v8:11165
Change-Id: I7a28a9c50c25dbaad91cf254b9153154065108b9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173678
Auto-Submit: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77002}
2021-09-23 05:13:43 +00:00
v8-ci-autoroll-builder
d5b48f165a Update V8 DEPS.
Rolling v8/build: 66bad00..d7f25a4

Rolling v8/third_party/abseil-cpp: 48418f3..ba539c1

Rolling v8/third_party/aemu-linux-x64: UnrNXrNKJtnUOqrH_BbjXgZ_Ns1v0PZ9WNtFgoHrQZwC..93-xiCMBx8NRjVvu1v-vuwCsej5zB1Pj3FEUsphwCeUC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/25814bb..e155ea5

Rolling v8/third_party/depot_tools: eff810e..04d9c83

TBR=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I8de9a089cbc144a8c2bb12e1f32cf97daf089aa0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3176786
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/main@{#77001}
2021-09-23 03:50:23 +00:00
jing.bao
6dedc6e97d [x64] Implement 256-bit assembly for vpshufd/hw/lw
Bug: v8:12228
Change-Id: If771a7526f2567d68e676f069223ac16b7303884
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3167036
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Jing Bao <jing.bao@intel.com>
Cr-Commit-Position: refs/heads/main@{#77000}
2021-09-23 02:21:48 +00:00
Peter Kasting
0a5a7af665 Fix an instance of -Wunused-but-set-variable.
Bug: chromium:1203071
Change-Id: Iab81add0c71c4a37b7aa8d9d6f1272781a6bae3d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3152217
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76999}
2021-09-22 18:31:40 +00:00
Andreas Haas
9f725777b0 [wasm] Update spec tests
Some tests got fixed upstream.

Bug: v8:12227
Change-Id: I78108852ce4d10523edb3fd0dbb563852598394d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173679
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76998}
2021-09-22 17:12:37 +00:00
Victor Gomes
cf21eb36b9 [baseline] Skip deoptimization data size
Sparkplug code does not contain deoptimization data.

Bug: v8:12258
Change-Id: Ieb9f7f1469e00677d9533c6f05b17c80ef06b9d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3175820
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76997}
2021-09-22 16:42:37 +00:00
Peter Kasting
708802e3a2 Force -Wno-shadow to avoid variable shadowing warnings.
Long term, ideally, these would be fixed and this flag can be removed.
For now, this is an expedient way to allow enabling -Wshadow in
Chromium.

Bug: chromium:794619
Change-Id: I038e5fc758fbb8284bb28cb4f7f8a4c44da0db66
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173891
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76996}
2021-09-22 16:33:37 +00:00
Andreas Haas
52ada04422 [wasm] minimum and inital parameter for table constructor are exclusive
See https://github.com/WebAssembly/js-types/blob/main/document/js-api/index.bs#L866

R=manoskouk@chromium.org

Bug: v8:12227
Change-Id: I384483a7568d37c40d077487165ff9b1761da342
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3172768
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76995}
2021-09-22 15:54:19 +00:00
Junliang Yan
a3cea951ba ppc: Add ByteReverse Function
Change-Id: I91ed4bf22231c6080b2c5e445ea407d076baeadc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3175374
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76994}
2021-09-22 15:32:27 +00:00
Patrick Thier
aa259e30c3 Omit check against kDontAdaptArgumentsSentinel
When kDontAdaptArgumentsSentinel is 0 (the receiver is included in the
argument count), we don't need a dedicated check against the sentinel
before comparing the formal parameter count to the actual argument count
when calling a JS function.

Bug: v8:11112
Change-Id: I8c9f64a538984cb3de9e35f16bc6adbd3c92d24f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173671
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Auto-Submit: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76993}
2021-09-22 15:10:47 +00:00
Junliang Yan
48a8489d97 ppc: refactor atomic exchange
Change-Id: I01c4a68377a70cfed425b3cd1ed56b120c9b5056
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3174627
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76992}
2021-09-22 14:54:47 +00:00
Junliang Yan
8d3f02e4ca ppc: refactor atomic compare exchange
Change-Id: I83611a53426efff35960b2d90de909f2a6b07264
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3175369
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76991}
2021-09-22 13:48:47 +00:00
Junliang Yan
03ff1b6dd6 ppc: refactor atomic ops
Change-Id: I74873db343b3103f12d47ca1a9617369d516424d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3174411
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76990}
2021-09-22 12:28:57 +00:00
Dominik Inführ
38e67f1888 [execution] Cancel concurrent tasks earlier
We should cancel tasks before we destroy objects like the string table
from the isolate. So far our concurrent tasks didn't interact with
the isolate much, but we now have tasks that can e.g. access the heap
concurrently. While this is not strictly necessary at the moment, I want
to see whether there might be problems with that approach. In the future
this order will be required e.g. for baseline batch compilation tasks.

Bug: v8:11708
Change-Id: I80d8a9447bb51e9ae84ed9b6c0da6183290dc70b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3164338
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76989}
2021-09-22 12:12:12 +00:00
Camillo Bruni
f61ce6b714 [tools] Fix deprecation script for mulitple header files
Bug: v8:11165
Change-Id: Ic2c8c6e6b97f279941e8634bc6178511103edbca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173676
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76988}
2021-09-22 12:05:50 +00:00
Clemens Backes
9cfab2a761 [cleanup] Remove unactionable TODO
Liftoff is fully supported on all officially supported platforms, thus
remove a TODO to implement it on more platforms.

R=thibaudm@chromium.org

Bug: v8:11879
Change-Id: I00a559286d67e7e377a36b68803ee30e8fa2f34e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168341
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76987}
2021-09-22 10:23:31 +00:00
Michalis Spyrou
1e96c29d17 [sandbox][arm64] Implement heap sandbox support on arm64
Add support for heap sandbox on arm64 when building with v8_enable_heap_sandbox=true

Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng
Bug: v8:10391
Change-Id: I3080f5970d2a604ca67827c732cd77761f7611a3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3165057
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76986}
2021-09-22 10:08:40 +00:00
Clemens Backes
5458cfd0dd [wasm][pku] Fix check for write protection
As the comment notes, we want to ensure that code space is *not*
writable by the current thread.

R=jkummerow@chromium.org
CC=mpdenton@chromium.org

Bug: v8:11974
Change-Id: I5c3cad32b8edc56013f298405c8e20d8bc9da05f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173675
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76985}
2021-09-22 09:13:35 +00:00
Clemens Backes
661654f3ff [traphandler] Fix simulator test for Mac
On Mac we handle SIGBUS, not SIGSEGV, so the test should access a valid
but inaccessible pointer to trigger the right signal.

R=jkummerow@chromium.org

Bug: v8:11955, v8:12249
Change-Id: I25b93ce40bccc24ef5e84694a7c03c465eb4c51e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168344
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76984}
2021-09-22 08:58:22 +00:00
Liu Yu
1fd55617e1 [mips][loong64][isolate-data] Split builtin tables into tiers
Port 06af754cea

Bug: v8:12203,v8:8661
Change-Id: Ib0379acc1db7dcebf7252e44d252e45bfa787e1c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3174377
Auto-Submit: Liu yu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#76983}
2021-09-22 07:50:04 +00:00
Lu Yahan
b66d5f0233 [riscv64] Replace builtin_entry_slot_offset with BuiltinEntrySlotOffset
Port 3162142:[isolate-data] Split builtin tables into tiers

Change-Id: I0f506d75eb75bed9afc7e1971e61f2bdf9bf5740
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3174613
Commit-Queue: Ji Qiu <qiuji@iscas.ac.cn>
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#76982}
2021-09-22 07:33:54 +00:00
Marja Hölttä
8548f0b3e5 [rab/gsab] Fix detachedness logic in TA.p.fill
Bug: v8:11111
Change-Id: Iddf021d292f44ab2a7d719792f14cdc57e40223b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3172759
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76981}
2021-09-22 06:33:54 +00:00
Marja Hölttä
431aa5e6aa [rab/gsab] TypedArray.prototype.slice: Support RAB / GSAB
Bug: v8:11111
Change-Id: I6a86dd1313a7bfb72024e9857a0c18dd6c83fe3c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3160518
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76980}
2021-09-22 05:48:54 +00:00
v8-ci-autoroll-builder
8ee227d623 Update V8 DEPS.
Rolling v8/build: 1037128..66bad00

Rolling v8/third_party/aemu-linux-x64: bOp0PE8R9VUQxsHclvuA10P4iOaWjRRpsK8ZQKtAZCAC..UnrNXrNKJtnUOqrH_BbjXgZ_Ns1v0PZ9WNtFgoHrQZwC

Rolling v8/third_party/android_sdk/public: yODElY4RdHopNEfpOnqjRcrpa6JMzbhYYqGD53-DjJwC..AuYa11pULKT8AI14_owabJrkZoRGuovL-nvwmiONlYEC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/8ec776f..25814bb

Rolling v8/third_party/depot_tools: c1fd44b..eff810e

Rolling v8/tools/clang: 7ea32d7..948efd2

TBR=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I9bc3a48c310c9364a3cd2e24e1fdc6fcd5e6d934
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3172719
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/main@{#76979}
2021-09-22 03:59:22 +00:00
Hao Xu
b3a7673bd0 [compiler] Fix a bug in instruction scheduler
Bug: v8:12018, v8:12163
Change-Id: I87f779b4a355fa0638885db88fd0ebff0f930443
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3141034
Commit-Queue: Hao A Xu <hao.a.xu@intel.com>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76978}
2021-09-22 01:49:52 +00:00
Ng Zhi An
ff40cebee1 [cleanup] Remove stale comment
DISALLOW_COPY_AND_ASSIGN is no longer in our codebase, and the compilers
mentioned in the comments are (probably) no longer supported.

Bug: v8:12244
Change-Id: I432bd56ca3ddd870be140032f11d94ddb60ce1a9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3171974
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76977}
2021-09-21 21:17:50 +00:00
Michael Lippautz
d67f060672 Revert "[base] Replace base::Optional with Abseil"
This reverts commit f2e25f8a09.

Reason for revert: Breaks GCC 8.4.0 compilation, see bug.

Original change's description:
> [base] Replace base::Optional with Abseil
>
> Change base::Optional to an alias of absl::optional. Eventually we
> should remove it entirely.
>
> Bug: v8:11006
> Change-Id: I687d44cc7e7cd0a49a84bcc207231eb6808eef2d
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2476318
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#76913}

Bug: v8:11006, v8:12252
Change-Id: I8048dee676a36551d15f25a31d1e171dae00d975
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173672
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#76976}
2021-09-21 19:56:40 +00:00
Clemens Backes
4a25c69031 [wasm] Fix lite mode and no-wasm
Add another "#if V8_ENABLE_WEBASSEMBLY" block to fix compilation if wasm
is disabled.

TBR=jkummerow@chromium.org

Bug: v8:11974
Change-Id: If889814e16dfb51d5b78122e6957bb2c41cefe5b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3172758
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76975}
2021-09-21 19:41:20 +00:00
Junliang Yan
f63f438789 ppc/s390: enable liftoff testing
Change-Id: I65c60a17c0f8fe19b49f0661b9d57b5a504abe07
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168283
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76974}
2021-09-21 19:23:50 +00:00
Ng Zhi An
129c1bd1f6 [ia32] Move pcmpeq, movlps, movhps into shared macro-assembler
Drive-by edit to use ASM_CODE_COMMENT for better code comments for
all the more complicated macro-assembler functions.

Also undef macros (AVX_OP et al) since they are not longer used outside
of shared-macro-assembler.

Bug: v8:11589
Change-Id: I424f27b5b742a8efb26ccef87dbffb01eae60335
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173892
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76973}
2021-09-21 19:10:41 +00:00
Ng Zhi An
c0d1f24bdf [x64] Optimize v128.const when two int64 halves are the same
Previously it generates a mvoq+pinsrq, now it generates a single
punpcklqdq.

punpcklqdq is smaller in code size, and also faster on most arch (latency
1, rthroughput of 1, 1 uop, uses 1 port) than pinsrq (latency 2, 2 uop,
uses 2 port) (from https://uops.info/table.html)

punpcklqdq is mean to work on int domain, and although we can't be
certain what v128.const will be used for, the movq is considered
an integer domain instruction, so we can avoid unnecessary transitions
by using punpcklqdq (instead of movddup, which is similar in perf
and code size).

Bug: v8:11033
Change-Id: Iab81168ffad84488b90ff307d440bed15c9f90a3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3169322
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76972}
2021-09-21 19:09:11 +00:00
Omer Katz
2db5067031 Reland "Reland "cppgc: Enable checks for assignments in prefinalizers""
This is a reland of adb6276f4a

Causes for previous revert was addressed by crbug.com/3140387 and
crbug.com/3163579.

Original change's description:
> Reland "cppgc: Enable checks for assignments in prefinalizers"
>
> This is a reland of edcc8ff5b5
>
> Cause for previous revert was addressed by crbug.com/1241773.
>
> Original change's description:
> > cppgc: Enable checks for assignments in prefinalizers
> >
> > Bug: v8:11749
> > Change-Id: Ic027f732030fb6a2befeffeca9db2eacfd0830a5
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3099953
> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> > Commit-Queue: Omer Katz <omerkatz@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#76370}
>
> Bug: v8:11749
> Change-Id: I57fc138ace002d41e54f7f70250e4d19bc9262b0
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3122153
> Auto-Submit: Omer Katz <omerkatz@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Commit-Queue: Omer Katz <omerkatz@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#76553}

Bug: v8:11749
Change-Id: I138ca374314108f0f23e234a8fd90d15d912120d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168280
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76971}
2021-09-21 18:41:40 +00:00
Ng Zhi An
565e83ab2f [x64] Check expected disassembly output fpu instructions
We move some instructions from the test that just disassembles them, to
the test that checks for expected output.

Bug: v8:12207
Change-Id: Ide8954e36c6ad016150bfe45abc1717bed55eb19
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3171972
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76970}
2021-09-21 17:18:18 +00:00
Samuel Groß
2e9c972b2a Expose the size of the virtual memory cage
This CL exposes the size of the virtual memory cage to the embedder
through V8::GetVirtualMemoryCageSizeInBytes(). This will for example be
useful to collect metrics about the cage reservation, such as how
frequently it fails, in the future. While collecting these metrics
directly in V8 would also be possible, it would require access to an
Isolate, which is not yet available when the cage is initialized. As
such, it is easier to enable the embedder to collect these metrics.

Bug: chromium:1218005
Change-Id: Ie9c9ca7d1cd158ec024be6ab2418f50083b06d6e
Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3172762
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76969}
2021-09-21 17:13:59 +00:00
Georg Neis
4a310e106d [compiler] Remove an obsolete comment
The NowIs operator doesn't exist anymore.

R=mslekova@chromium.org

Change-Id: Id081c7e0cf5b122a77598fc0b886a2d1c09c881f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3172767
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76968}
2021-09-21 15:39:04 +00:00
Junliang Yan
dc88bdf35e ppc/s390: [isolate-data] Split builtin tables into tiers
Port 06af754cea

Original Message:
  .. for more efficient access to builtins from generated code.

  Root-relative accesses tend to be faster and produce more compact
  code when the root-relative offset is small. IsolateData contains
  a few large tables (roots, external references, builtins), resulting
  in very large offsets in general.

  This CL starts by splitting the builtin table into tiers: tier 0
  is a minimal set of perf-critical builtins that should be cheap to
  access. The offset to tier 0 builtins is guaranteed to be small.

  The full builtin table also remains in IsolateData for occasions in
  which we need to lookup builtins by index.

  In future work, we can also split external references and roots into
  tiers.

  On x64, this reduces deopt exit sizes from 7 to 4 bytes and from 12
  to 9 bytes (dynamic map checks / EagerWithResume deopts).

Change-Id: I021d60b20b783da170987ffcf0327b93206f7e5d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3172917
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76967}
2021-09-21 15:37:04 +00:00