Commit Graph

71270 Commits

Author SHA1 Message Date
Frank Tang
983ed35461 [intl] Reject _ in calendar id to fix test262 test
see https://github.com/tc39/test262/pull/3173

Bug: v8:12167
Change-Id: I49bed6bf361dbc216a5174be16d747fe2b104208
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3152714
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76778}
2021-09-11 00:06:49 +00:00
Ng Zhi An
c2ac4811aa [ia32] Use AVX if supported
This is a follow-up on https://crrev.com/c/3131374 to support more
instructions, float32 sqrt, cmp, round, float64 cmp.

Rename the opcodes since they are no longer SSE specific.

Bug: v8:12148
Change-Id: Ie5f74bc1b4510092cbfbcb7e420ef82cb1c39a14
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3154983
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76777}
2021-09-10 23:24:49 +00:00
Junliang Yan
0f980ffa85 ppc: fix formating issue
Change-Id: I1935a1ce50fcfb5f33511502367df624cc50a9df
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3155382
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76776}
2021-09-10 22:00:49 +00:00
Ng Zhi An
5f622d21a5 [ia32] Fix partial regression in Cvtsi2ss/Cvtsi2sd
In https://crrev.com/c/3131374 we switched some instructions to use
macro-assembler functions which can handle AVX and SSE. However for
Cvtsi2ss and Cvtsi2sd, the behavior subtly changed. The old behavior
directly called cvtsi2ss/cvtsi2sd in the code-generator. The new
behavior used the macro-assembler functions, which xor the dst operand.
This led to more instructions and larger code size in some benchmarks.
The xor is supposed to help reduce dependence chain length (see comments
on Cvtsi2ss), but doesn't seem to have helped in this benchmark.

So, partially revert the changes, and rename all affected IA32 opcodes
back to SSE.

Bug: chromium:1248509
Change-Id: Ie700e2980fe9ed083c1160bda3a28f64e1e43041
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3154349
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76775}
2021-09-10 21:58:19 +00:00
Junliang Yan
d7c9b31a77 ppc: [liftoff] implement DropStackSlotsAndRet
Change-Id: I05bcba3ad27b46b7c7888940895605ad463fc960
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3155302
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76774}
2021-09-10 21:25:00 +00:00
Junliang Yan
465c845285 ppc: [liftoff] implement call functions
Change-Id: Iea662aa79bf6d8fc7f8951482b6dfc0bcf30d081
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3151964
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76773}
2021-09-10 20:45:20 +00:00
Ng Zhi An
c560191f74 [x64] Move and remove some AVX_OP from macro-assembler
Move some AVX_OP into shared macro-assembler, for reuse by ia32 in
future patches.

Movlhps is also unused in x64, so remove it.

Drive-by cleanup to use macro assembler helper Move to move 128-bit
const into a XMMRegister.

The change in liftoff-assembler-x64 is required because now the
macro-assembler functions are defined in the base class, so even though
we can use &TurboAssembler::Pcmpeqd to refer to that member function,
it actually resolves to &SharedTurboAssembler::Pcmpeqd.

Bug: v8:11589
Change-Id: Ie8f6a4dfd95b41192936f6e6be48c683042acec4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3150138
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76772}
2021-09-10 18:35:29 +00:00
Clemens Backes
51eac99b9b [arm64] Optimize counting set half-words
The {CountClearHalfWords} method is called whenever loading a constant
into a register. It showed up with >0.5% in Liftoff compilation
profiles. This CL refactors the method to return the number of *set*
halfwords instead of *cleared* halfwords and avoids the loop in the
implementation. This makes the method roughly twice as fast, and makes
the code more readable.

R=zhin@chromium.org

Bug: v8:11879
Change-Id: I7da8160b3c045e5fc1e97fc0e575083b3920cb5b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3151962
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76771}
2021-09-10 17:43:19 +00:00
Clemens Backes
43cfc627e4 [wasm] Fix memory protection tests for tier up
If background threads are tiering up, they could temporarily make code
writable (if using the mprotect based approach). This would make our
death tests fail (i.e. not crash).
This CL fixes that by repeatedly writing in that case. Eventually, the
code should be protected again, and then we would crash. Failure to
crash would manifest as a timeout of the tests.

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

Bug: v8:11974
Change-Id: Ibe34af499da9b964ad260d58e9b4e390007898e9
Cq-Include-Trybots: luci.v8.try:v8_mac_arm64_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_mac_arm64_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3151959
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76770}
2021-09-10 17:27:49 +00:00
Ng Zhi An
a207c15b08 [wasm] Print function name in disassembly
We already have some logic to try to get a reasonable name for the
function when logging code. It looks up the name custom section, and
falls back to the function index. Extract this into a helper, and call
it when disassembly the code.

Bug: v8:12098
Change-Id: Ieebe6594bc3184fa655f878faa0cb67c248d7f56
Fixed: v8:12098
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3125355
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76769}
2021-09-10 17:09:29 +00:00
Junliang Yan
ce11ac4069 ppc:[liftoff] implement checking functions
Change-Id: I1efa3969ee07deca1dfa33f730f46a1067c12d73
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3152753
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76768}
2021-09-10 16:53:29 +00:00
Junliang Yan
d63bbf5132 ppc: [liftoff] fix constant pool issue
Change-Id: Ie9c8cf6475532df979c96df62254af32de6cf98f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3152748
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76767}
2021-09-10 14:45:19 +00:00
Milad Fa
aec2c09547 [liftoff] skip test on unsupported platforms
StackCheck needs to be implemented on liftoff.

Change-Id: I29624d65b82cbba3ef640ab7ea0cc78c2d5f2c4f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3152745
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76766}
2021-09-10 14:20:28 +00:00
Clemens Backes
f235120c5e [liftoff] Fix i64.sub special case
In the case that {dst}, {lhs} and {rhs} all point to the same register,
we would emit wrong code (negating the register and adding it to
itself). This CL fixes this by checking if {lhs == rhs}, and just
clearing the {dst} register in that case.

R=thibaudm@chromium.org

Bug: chromium:1247659
Change-Id: I7913617850adb34a5ad812369f16a7422358454d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3151955
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76765}
2021-09-10 11:03:58 +00:00
Marja Hölttä
5b01050e9a [compiler] Simplify JSTypedArrayRef further
Removing code left over by
https://chromium-review.googlesource.com/c/v8/v8/+/3124806 .

Bug: v8:7790
Change-Id: Id198df521ff58fe4f476f6f6a1fc624cb297be4a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3147591
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76764}
2021-09-10 10:52:38 +00:00
Clemens Backes
b177b4e3e8 [liftoff] Fix --trace-wasm-memory
With statically in-bounds memory accesses (implemented in
https://crrev.com/c/2919827) we would only have an offset but no index
register for {TraceMemoryOperation}. This CL fixes that situation.

R=thibaudm@chromium.org

Bug: chromium:1248024
Change-Id: I856b263a560cb71791c61e446e78dd99c9664190
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3149464
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76763}
2021-09-10 10:47:20 +00:00
Liu Yu
c21438ab18 [loong64] Adjust the disassembler instruction format
Change-Id: I1148508825b7bdff3dae0634aed5318a605ba4da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3153355
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#76762}
2021-09-10 09:08:49 +00:00
v8-ci-autoroll-builder
b728cd9c63 Update V8 DEPS.
Rolling v8/build: 17d097b..0c04087

Rolling v8/third_party/aemu-linux-x64: QewYN5289B8deg5Mn6clWEv58UqpocHGKeob2F0T87kC..vFeMtD7pamorE14xM1EkyVug7KRVEPRc7i89yT2sdaYC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/2331f08..8141144

Rolling v8/third_party/depot_tools: 7285666..e1482c5

Rolling v8/third_party/icu: ece15d0..3f44383

Rolling v8/third_party/instrumented_libraries: 47226fa..20795c9

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

Change-Id: I8f1144a9514c8e27c41701dee8380c6d9859db50
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3152860
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@{#76761}
2021-09-10 03:56:26 +00:00
Frank Tang
deb04bdb26 [test262] Roll test262
50f3fca..66a3c3aa

Bug: v8:7834, v8:12209

Change-Id: I74a5fd1b781c8280a68f47276e578e5c703876b1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3152710
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76760}
2021-09-10 02:57:26 +00:00
Ng Zhi An
65fb08e327 [x64] Use macro list to disassemble *sd instructions
We have a macro list defined, and already use it in other places, use it
to disassemble the AVX instructions too.

Bug: v8:11879
Change-Id: Id1a5bdc167d3f17d603aa2e43e1ac80ef4b1fdb6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3150139
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76759}
2021-09-09 20:38:34 +00:00
Milad Fa
b4e1559544 [wasm-simd] Fix endianness issue when generating constants
value must be written to memory in LE order on BE machines
as they will be loaded in reverse when emitting S128Const.

Change-Id: Ia1d6c784505abe499fb71a6d86daea2721615da4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3151956
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76758}
2021-09-09 19:43:34 +00:00
Ng Zhi An
0c0459632c [ia32] Create field accessors for Operand's members
With these accessors we can remove Assembler as a friend class.

Drive-by cleanup to change DCHECK(!x || y) to DCHECK_IMPLIES(x, y).

Change-Id: I74b7a23e85b50db93bbfe84fdfcc8563527f14d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3144374
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76757}
2021-09-09 19:41:24 +00:00
Ng Zhi An
a9ab1c3b84 [ia32] Define *sd instructions using a macro list
This is similar to what is already done in x64, define a macro list for
all the *sd instructions (prefix f2 0f), and use this macro list to
define assembler functions and disassembly.

Bug: v8:11879
Change-Id: Ia7fbd9fe7f07b72c04d82c81726b9673c40eb0de
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3125774
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76756}
2021-09-09 19:40:04 +00:00
Ng Zhi An
f331901d8a [ia32] Use AVX for some Float ops if supported
By delegating to the macro-assembler, emit AVX instructions for some
float opcodes (float sqrt, round, conversions to and from int,
extract/insert/load word).

Since they now support AVX, we rename the instruction ops to remove the
SSE prefix, changing it to be IA32.

Bug: v8:12148
Change-Id: Ib488f03928756e7d85ab78e6cb28eb869e0641f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3131374
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76755}
2021-09-09 17:15:54 +00:00
Ng Zhi An
5bf82ba424 [ia32] Support root relative access of external references
Change-Id: I51dee467f5b843e96ffccbe6e99ba203e8c3bf10
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3111266
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76754}
2021-09-09 16:15:14 +00:00
Philip Pfaffe
25d5e50812 Disable exception metadata
Bug: chromium:1241860
Change-Id: Ieee7d5c67f1a42c0c9855148a7d497586d6c5555
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3149456
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Philip Pfaffe <pfaffe@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76753}
2021-09-09 15:29:54 +00:00
Georg Neis
6391d7a58d [compiler] Fix a bug in global property access reduction
Bug: chromium:1247763
Change-Id: I6f09d5113ef7e4774032ea586d5a1ada98aa4b1b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3149462
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76752}
2021-09-09 14:10:44 +00:00
Georg Neis
62ed75a1d2 [compiler] Fix inconsistency between JSFunctionRef and FeedbackCellRef
It could happen that the information about the feedback vector cached in
a JSFunctionData disagreed with the current value of the function's
feedback cell. The inlining code wasn't prepared for that and a CHECK
could fail.

The CL fixes this by removing the caching of
has_feedback_vector and feedback_vector and by getting hold of the
bytecode array before fetching the feedback vector in inlining.

Bug: v8:12172, v8:7790
Change-Id: Ife3ab8872085d9496e6d1f34514114a086f653ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148010
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76751}
2021-09-09 13:39:44 +00:00
Liviu Rau
7b9708d3a8 Changed version number to 9.6
R=hablich@chromium.org, vahl@chromium.org

Change-Id: Ibec33a0f0299cea3e215aebfcf0cc873356f795e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3149461
Auto-Submit: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Lutz Vahl <vahl@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76750}
2021-09-09 13:34:14 +00:00
Ilja Iskovs
66bfcdcb43 [arm64][wasm-simd] Use Fcm(0) for floating point comparison with zero.
Use an immediate zero operand for floating point comparison nodes when
possible. This results in up to 20-25% runtime improvement in some
microbenchmarks, as well as 1-1.5% runtime improvement in some
real-use benchmarks on Cortex-A55 and Neoverse N1.

Change-Id: I39d10871a08a037dbe8c0877d789d110476e1a58
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3133143
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Cr-Commit-Position: refs/heads/main@{#76749}
2021-09-09 11:44:15 +00:00
Rakhim Khismet
7ad60c2784 [fuzzer] Add call_ref and return_call_ref to fuzzer
We add call_ref and return_call_ref to the fuzzed module.
We alter call function to generate call_ref in it.

Bug: v8:11954
Change-Id: I972b8e053d7eab758ac343d48f0c4631ef24b22b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148011
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Rakhim Khismet <khismet@google.com>
Cr-Commit-Position: refs/heads/main@{#76748}
2021-09-09 10:08:45 +00:00
Clemens Backes
06de35edb6 [wasm] Test code protection in signal handlers
Test that also signal handlers cannot write to code, even if a
{CodeSpaceWriteScope} is open when the signal is triggered.

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

Bug: v8:11974
Change-Id: I1e49e4b31ba196948f7f7adfdf88675816e0a58a
Cq-Include-Trybots: luci.v8.try:v8_mac_arm64_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_mac_arm64_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3140607
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76747}
2021-09-09 10:04:25 +00:00
Jakob Gruber
cd79e83f42 [intl] Refactor the icu object cache and unhandlify CompareStrings
The icu object cache consists of 5 keys at most -> change it from
an unordered_set to a plain array.

Possible return values of CompareStrings are {-1,0,1}. Return those
directly instead of going through Factory::NewNumberFromInt.

Bug: v8:12196
Change-Id: Ia42bb6b1a0ebdc99550f604aa79cb438b150ee88
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3149454
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76746}
2021-09-09 09:50:22 +00:00
Marja Hölttä
0d42c9d0b1 [builtins] Unify ArrayPrototypeSlice & ReduceArrayPrototypeSlice
They need to agree about when to delegate to CloneFastJSArray, since it
produces arrays which are potentially COW. If they don't agree, TF
generates code which produces a COW array and then expects it to be
non-COW -> immediate deopt.

This CL gets rid of the discrepancy in the case when there's exactly
one argument and it's the number 0.

Some corner cases remain, e.g., 1st argument not a number but ToInteger
returns 0. These should be extremely rare in the real world.

Bug: v8:12194
Change-Id: I10230245c97f8997da4d79702f29ebff11297229
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3147910
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76745}
2021-09-09 08:48:03 +00:00
Patrick Thier
034db9ef2d [sparkplug] Fix IC tracing
AbstractCode doesn't fully support Sparkplug code yet (SourcePosition
and SourcePositionStatement are not supported).
Fall back to using BytecodeArray as AbstractCode at call-sites where
we use these functions.

Bug: chromium:1246259
Change-Id: I839cbff65c96eaaa0057c1e5a8bdd12e2bd721ee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3147594
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Auto-Submit: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76744}
2021-09-09 08:38:41 +00:00
Michael Achenbach
6a73d3f687 [MB] Flip configs after Mac builder/tester split
Depends on https://crrev.com/c/3148012 to land first.

No-Try: true
Bug: chromium:1136844
Change-Id: I08b57e1d070a905dc7df71fce18891c9615a0153
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148013
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76743}
2021-09-09 08:13:51 +00:00
v8-ci-autoroll-builder
d749b01db1 Update google_benchmark
Rolling v8/third_party/google_benchmark/src: c23a001..1bd8098

Optimized docs installation (#1225) (Vitaly Zaitsev)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/1bd8098

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

Change-Id: I2fa85b1c9ea2a3bc3422977560b8280f0723d649
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3149526
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@{#76742}
2021-09-09 05:48:32 +00:00
Georg Neis
9a607043cb [compiler] Gracefully handle an unsupported situation
... by skipping the optimization instead of CHECK-failing.

Bug: v8:12188
Change-Id: I6709bf1c55506f3d12886efbfbb9934788cd02ce
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148132
Auto-Submit: Georg Neis <neis@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76741}
2021-09-09 05:28:02 +00:00
v8-ci-autoroll-builder
a5f31d0528 Update V8 DEPS.
Rolling v8/build: 1e4482b..17d097b

Rolling v8/buildtools/third_party/libc++abi/trunk: fc37619..17de752

Rolling v8/buildtools/third_party/libunwind/trunk: edf77b2..44ea7ab

Rolling v8/third_party/aemu-linux-x64: ExffPYjGXL4Gz5i52elIFTU-ZZZ3Rgom_ZGpSi12LBoC..QewYN5289B8deg5Mn6clWEv58UqpocHGKeob2F0T87kC

Rolling v8/tools/clang: c678081..664e425

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

Change-Id: If5bde624ec64e78723a8e9d83a2cacb385fb1271
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3149524
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@{#76740}
2021-09-09 03:43:53 +00:00
Zhao Jiazhong
74da6d5c9b [wasm][loong64] Fix register configuration
The t6-t8 are scratch registers and should not be allocatable.

Besides, add s0, s1, s2, s5 and s8 as allocatable registers.

Change-Id: I0805cc5273d0e0ec5040a0376bcbfba276202077
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3147315
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76739}
2021-09-09 01:39:02 +00:00
Ng Zhi An
63eb1a89c3 [wasm-simd] Merge SSE/AVX I16x8UConvertI32x4 I8x16UconvertI16x8
No functionality change is expected.

Bug: v8:11217
Change-Id: I131d52794e4de24ec838cc23f15828edbfc656ff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3131372
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76738}
2021-09-08 23:42:17 +00:00
Ng Zhi An
e29acc3bf0 [wasm-simd][ia32] Merge SSE/AVX I16x8 Eq GtS
Merge the SSE and AVX opcodes for I16x8Eq and I16x8GtS. We delegate to
the macro-assembler to check for AVX.

No functionality change is expected.

Bug: v8:11217
Change-Id: I873b261d6f949bfc6755fe4c0e09b964a02c3684
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3131371
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76737}
2021-09-08 23:26:11 +00:00
Ng Zhi An
449ec959da Use new macro to define Movapd and Movdqu in shared-macro-assembler
Change-Id: I8afa821412ae248ddea990755404a9bf5f33184e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3125434
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76736}
2021-09-08 22:20:58 +00:00
v8-ci-autoroll-builder
985537cb22 Update V8 DEPS.
Rolling v8/base/trace_event/common: 3da1e2f..715537d

Rolling v8/build: fbef918..1e4482b

Rolling v8/third_party/aemu-linux-x64: aSVGWUgGw-Nuh-08X80jtqA2bVKylBoNa1h7D-6Kzf0C..ExffPYjGXL4Gz5i52elIFTU-ZZZ3Rgom_ZGpSi12LBoC

Rolling v8/third_party/depot_tools: d69b31c..7285666

Rolling v8/tools/clang: 195c102..c678081

Rolling v8/tools/luci-go: git_revision:3e1f1f7a109ed8aefc7feba94fa737f0b5b4847e..git_revision:7b62727dc713b47d7a7ce9bca27500cb8e82ebd7

Rolling v8/tools/luci-go: git_revision:3e1f1f7a109ed8aefc7feba94fa737f0b5b4847e..git_revision:7b62727dc713b47d7a7ce9bca27500cb8e82ebd7

Rolling v8/tools/luci-go: git_revision:3e1f1f7a109ed8aefc7feba94fa737f0b5b4847e..git_revision:7b62727dc713b47d7a7ce9bca27500cb8e82ebd7

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

Change-Id: Id805d5bb7032f8208273f5e2aaa0532c7b03fc67
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3149517
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@{#76735}
2021-09-08 22:09:18 +00:00
Milad Fa
379cb97600 S390 [simd]: Implement vector store lane
This CL takes advantage of the z15 `store byte reverse element`
instructions to optimize Simd StoreLane opcodes.

On the simulator we only run `store element` as reversing is
not required.

Change-Id: I723f6db535799470c46a1e298a9c1af7574ad5b6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3144373
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76734}
2021-09-08 20:22:14 +00:00
Ng Zhi An
b435c60bda [wasm-simd] Merge SSE/AVX S128 And/Or/Xor
Combine the SSE and AVX versions, delegate to the macro-assembler
functions to check for AVX support.

Change Pand, Por, Pxor to generate the *ps version of the instruction
when AVX is not supported. The *ps versions are 1 byte shorter, and have
no performance difference on SSE-only processors.

Bug: v8:11589
Bug: v8:11217
Change-Id: I9d51054359dcc909efcbb2c3d3bb63d399cd6721
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3124101
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76733}
2021-09-08 17:42:57 +00:00
Ng Zhi An
64758c63de [wasm-relaxed-simd] Optimize Qfma/Qfms
Do not require that dst == src1, this leaves more flexibility for the
operands. We check in the macro-assembler if dst alias any of the input
operands, then use vfma231/vfma132/vfma213 appropriately.

Bug: v8:11659
Change-Id: I3644f5e0e75bd047d4e5f5b52d4234e54d329d15
Fixed: v8:11659
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3131370
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76732}
2021-09-08 16:50:28 +00:00
Francis McCabe
06751aba59 Add V8 flag for stack switching
Bug: v8:12191
Change-Id: I867e81a62341f9c95cf56466b9d97a877d9debdf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3145990
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Francis McCabe <fgm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76731}
2021-09-08 16:38:19 +00:00
Milad Fa
355f4f5c7b [wasm-simd] Fix MulAddOptimizationTest on BE
globals are no longer LE enforced after https://crrev.com/c/2944437.
LANE is used instead to pick the correct lane on BE machines.

Change-Id: I106bebda2633a4673ad4b5165c0440cc445d9475
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148036
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76730}
2021-09-08 16:14:18 +00:00
Jakob Kummerow
785e009eae [bigint][test] Better random input generation
In addition to inputs consisting entirely of random bits, the
bigint test shell now also generates inputs that are powers of
two (i.e. have many 0-bits) and inputs with many 1-bits.
Empirically, these kinds of inputs are more likely to flush out
corner case bugs.

Bug: v8:11515
Change-Id: Ib69f12bf215055991b028196dc54ebbc00780bae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055292
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76729}
2021-09-08 15:39:27 +00:00