Commit Graph

59305 Commits

Author SHA1 Message Date
Santiago Aboy Solanes
c195def147 [ptr-compr] Added tagged equality cases to DecompressionOptimizer
Added the opcodes kWord32Equal and kChangeTaggedToCompressed to
DecompressionOptimizer.

Currently  TaggedEqual node generates ChangeTaggedToCompressed
nodes before the Word32Equal inputs. This means we need to also
propagate kOnly32BitsObserved from kChangeTaggedToCompressed.

Bug: v8:7703
Change-Id: I61fee07269696c60e065e1bbfee3a65c1b1537fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871911
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64513}
2019-10-23 13:53:04 +00:00
Michael Starzinger
00937422fb [turbofan] Make {CallDescriptor} fully immutable.
This changes the way {SaveFPRegsMode} is stored in a {CallDescriptor}.
The value is now encoded in the flags field, similar to all other
boolean properties. It removes the last mutable field from the call
descriptor, making the struct fully immutable.

R=neis@chromium.org

Change-Id: I6bca118c7ce0c5bc77e7aa2fcc6541439bd27b3b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868616
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64512}
2019-10-23 13:49:31 +00:00
Clemens Backes
f30a92e6f2 [wasm] Move global storage accessors out of interpreter
These accessors do not make any use of the interpreter, hence we can
define them on the WasmInstanceObject alone. This will allow to reuse
them for other (non-interpreted) frames.

R=mstarzinger@chromium.org

Bug: v8:9676
Change-Id: Iff8b665a4c25581b934c25b66a13cebe044cb02c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1875097
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64511}
2019-10-23 12:39:34 +00:00
Michael Achenbach
23bd735394 [build] Fix multi-arch build for pointer compression
Bug: v8:9899
Change-Id: I7509b376b33ab7a36106ed3af322ec4058fcdcfe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876048
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64510}
2019-10-23 12:27:04 +00:00
Leszek Swirski
fa13871a7d [heap] Introduce OffThreadSpace
Add a new PagedSpace called OffThreadSpace. This space will be used for
off-thread allocation -- it never marks or sweeps, and always expands
into fresh pages. Once allocation completes, this space's pages can be
merged into the old space.

The space is similar to the CompactionSpace, and merging for both is
identical, so we intrduce a new LocalSpace base class that both extend.
They differ in interaction with the sweeper and in how new pages are
acquired.

This patch adds the new space and uses it in a few unittests. Future
work will use it in the main source code.

Bug: chromium:1011762
Change-Id: Ia008cc95c6e1ef1d1e7ae305fa80fbfc1ff4be2d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873690
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64509}
2019-10-23 11:45:48 +00:00
Jakob Gruber
b1c1a81faf [regexp] Expose RegExp::Exec through the API
Previously, embedders had to fetch the 'exec' property off the RegExp
prototype in order to call exec (and such calls involve two
transitions between C++ and JS).

This CL exposes a convenient RegExp::Exec method through the API.

Bug: v8:9695
Change-Id: I57a9174626143d26f2ea34676b8e55fef64932cf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864940
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64508}
2019-10-23 11:23:04 +00:00
Michael Starzinger
5e7de6aa54 [turbofan][ppc] Simplify {CallDescriptor::HasFunctionDescriptor}.
R=neis@chromium.org,miladfar@ca.ibm.com
BUG=v8:9872

Change-Id: Ia8b0da9a6026f7933503ecd9e735d7fc3fdff364
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869190
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64507}
2019-10-23 11:16:19 +00:00
Igor Sheludko
dec3de8a70 [builtins] Make ToIndex() uintptr index friendly
The new ToIndex() must eventually replace ToSmiIndex().

The CL fixes the following abstract operations:
  GetViewValue(view, requestIndex, isLittleEndian, type)
  SetViewValue(view, requestIndex, isLittleEndian, type, value)

and the following builtins:
  DataView.prototype.getXXX
  DataView.prototype.setXXX

where XXX are all typed elements.

Bug: v8:4153
Change-Id: Ic2f33e91b59426deb0efa28bb4c15253e80a299c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874345
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64506}
2019-10-23 10:57:24 +00:00
Mu Tao
1e256fc3f6 [mips][wasm-simd] Implement f64x2 splat extract replace for mips
Port f22837dbf1

R=xwafish@gmail.com

Change-Id: Iece021bb832618cac0d111639b388d94f7da7028
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868773
Commit-Queue: Mu Tao <pamilty@gmail.com>
Auto-Submit: Mu Tao <pamilty@gmail.com>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64505}
2019-10-23 10:41:35 +00:00
Clemens Backes
b5260f5351 [wasm][cleanup] Remove dead macro
R=mstarzinger@chromium.org

Bug: v8:9810
Change-Id: Ib08647b5d6c4238732eed5a2ed1f1d0eea010076
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1875099
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64504}
2019-10-23 10:35:44 +00:00
Michael Starzinger
d5ef741fe8 [turbofan] Change {InstructionCode} to uint32_t.
The {InstructionCode} is only used to store plain (non-negative) values
of the {ArchOpcode} enum, or additionally encodes {BitField} values. The
underlying base type 'U' of a {BitField} is uint32_t. To avoid all the
numerous implicit conversions between int32_t and uint32_t, this is
changing the {InstructionCode} so that uint32_t is used exclusively.

R=neis@chromium.org
BUG=v8:9872

Change-Id: If64107ad9298011e219b4827735eafb51465beb0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869193
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64503}
2019-10-23 10:26:09 +00:00
Jakob Gruber
4ba579401a [compiler] Remove StackPointerGreaterThan from pure op list
This operator implicitly reads the stack pointer register and is thus
not pure. This CL removes it from the list of pure operators and
inserts it into the effect chain at its use sites.

Drive-by: Alpha-sort the list in CanAllocate.

Bug: v8:9534
Change-Id: Icf96fb3e308600dbacec3dbfb7386a4f0d0bdc39
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1875098
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64502}
2019-10-23 10:21:17 +00:00
Jakob Gruber
b0fadf7f70 [regexp] Expose RegExp::NewWithBacktrackLimit through the API
Bug: v8:9695
Change-Id: I401a18c84a9ec1af7e14f44004a0788cbfd4a34b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864657
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64501}
2019-10-23 10:14:08 +00:00
Igor Sheludko
b71af5c38a [builtins] Use uintptr as index in String builtins, pt.1
The CL refactors the following builtins:
  String.prototype.startsWith
  String.prototype.endsWith

to use ClampToIndexRange(x, len) instead of NumberMin(NumberMax(x, 0), len).

Bug: v8:8996
Change-Id: I20ab42088168e517840385cc2db435361004d9c0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873702
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64500}
2019-10-23 09:41:39 +00:00
Mu Tao
5958b57ef4 [mips][wasm-simd] Implement f64x2 add sub mul div for mips
Port 26afd8f314

Change-Id: I4033e6bb50166d59679dddd8ba0480b4bc4b821d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874969
Commit-Queue: Mu Tao <pamilty@gmail.com>
Auto-Submit: Mu Tao <pamilty@gmail.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64499}
2019-10-23 09:25:47 +00:00
Clemens Backes
50784597e8 Speed up {MemCopy} and {MemMove} for small sizes
The same change on the {CopyChars} function gave an unexpected 10-20%
speedup on microbenchmarks across platforms (ia32, x64, Atom_x64).
This CL explores whether a similar change generally speeds up {MemCopy}
and {MemMove} (only on x64 for now). If this is the case, we might be
able to carefully extend the same pattern to other platforms and remove
custom assembly implementations without too much regression.

R=leszeks@chromium.org

Bug: v8:9810
Change-Id: Ib9674807b67cd2a463680b97a91ae1b41c3be65b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871607
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64498}
2019-10-23 08:33:07 +00:00
Mu Tao
720961bb39 [mips][wasm-simd] Implement f64x2 sqrt for mips
Port 434f96812f

Change-Id: I9e9cb8b9ca56d5af3b5ffffa5908501c9214752d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874968
Commit-Queue: Mu Tao <pamilty@gmail.com>
Auto-Submit: Mu Tao <pamilty@gmail.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64497}
2019-10-23 08:25:18 +00:00
Jakob Gruber
6f1de28834 [regexp] Add use counters for slow exec and replace calls
These counters track how often the slow path of these two builtins is
hit. Exec is very permissive, its fast-path check doesn't look at the
regexp prototype at all. Replace is strict; any change on the
prototype will trigger the slow path.

Chromium CL: https://crrev.com/c/1875250

Bug: v8:5577
Change-Id: I9807f43829981445b75b5c5d29800cbdac9bc26a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873698
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64496}
2019-10-23 08:06:17 +00:00
Z Nguyen-Huu
4f52630b0a [builtins] Port some RegExp functions to Torque
RegExpPrototypeExecBody, RegExpPrototypeExecBodyWithoutResultFast

Bug: v8:8976
Change-Id: I79f4d3e27baf5ff7aec9538fa463d810dbb75e4e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866957
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64495}
2019-10-23 06:04:40 +00:00
Simon Zünd
6a55a37d3a [Cleanup] Integrate v8_nosnapshot into mksnapshot
This CL integrates the "v8_nosnapshot" source set into the "mksnapshot"
binary. The "mksnapshot" binary is the last use-site after unconditionally
enabling snapshot and embedded builtins.

Bug: v8:8519
Change-Id: I8e737e10a3f7729e18ac71733b811bf399ebf330
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873685
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64494}
2019-10-23 05:57:37 +00:00
Gus Caplan
2205ab3a92 [Torque] port Array.isArray to torque
Bug: v8:9891
Change-Id: I5a9600b44c2363cc9681976e4ed2b86eccf35830
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869581
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64493}
2019-10-23 05:37:28 +00:00
Mu Tao
331922ffd0 [mips][wasm-simd] Implement v8x16.swizzle for mips
Port a0b95232a9

R=xwafish@gmail.com

Change-Id: I15c385a676e574f36d8c25c6f6294ac344b0af43
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868557
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Mu Tao <pamilty@gmail.com>
Cr-Commit-Position: refs/heads/master@{#64492}
2019-10-23 05:07:12 +00:00
Mu Tao
04368bbbf8 [mips][wasm-simd] Implement f64x2 abs neg for mips
Port afbbfcbe1c

R=xwafish@gmail.com

Change-Id: Iab3a9f32d8bccddcdca8d9a874869e62ae961948
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868558
Auto-Submit: Mu Tao <pamilty@gmail.com>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64491}
2019-10-23 05:06:08 +00:00
Mu Tao
da0ef75fde [mips][regexp] Apply the backtrack limit in jitted code
Port 0089006fc5

Original Commit Message:

    .. similar to how it is applied in the interpreter. We reserve a stack
    slot for the backtrack count, increment it on each backtrack, and fail
    if the limit is hit.

Change-Id: I51879e6cafb3c77d635fc6e84e7e2c5ce3a088e6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873445
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Mu Tao <pamilty@gmail.com>
Cr-Commit-Position: refs/heads/master@{#64490}
2019-10-23 04:42:07 +00:00
v8-ci-autoroll-builder
59c50264f1 Update V8 DEPS.
Rolling v8/build: 996a3e8..e9c43f1

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/0388283..9f6271e

Rolling v8/third_party/depot_tools: 53f9e09..db1e79c

Rolling v8/third_party/icu: 5005010..b51014b

Rolling v8/tools/clang: c5d85f1..aa07e59

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

Change-Id: I52086f4e4c1226e0555dd912b89473e1448cddd4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874828
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@{#64489}
2019-10-23 03:45:26 +00:00
Ng Zhi An
26afd8f314 [wasm-simd] Implement f64x2 add sub mul div for arm
Bug: v8:9813
Change-Id: Idee4daded322731648fe51e75f3b9e8be2dcd0d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872929
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64488}
2019-10-22 22:19:06 +00:00
Ng Zhi An
0c7b551fc3 Reland "Clean up macros"
This is a reland of 08b26f53c6

Fixed the original crash, by removing a disasm for psllq and psrlq
that is now handled by the macro list.

Original change's description:
> Clean up macros
>
> Move some instruction definitions into sse-instr, which is used to
> generate some disasm tests, so we can remove some cases there.
>
> Bug: v8:9810
> Change-Id: I0615ec823396da08bc5d234cf1dabca6afd3f052
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866965
> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64441}

Bug: v8:9810
Change-Id: I69335a889f5f72b76a79e4e9860835232e6e38a8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872298
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64487}
2019-10-22 21:39:56 +00:00
Mu Tao
d8ba2856f4 [mips]Reland^2 "[runtime] Move Context::native_context to the map"
Port 3cad6bf5d7

Original Commit Message:

    This is a reland of c7c47c68f2.

    This makes TSAN happy in addition to:

    Previously I presumed that the context read from a frame in the profiler was
    a valid context. Turns out that on non-intel we're not guaranteed that the
    frame is properly set up. In the case we looked at, the profiler took a
    sample right before writing the frame marker indicating a builtin frame,
    causing the "context" pointer from that frame to be a bytecode array. Since
    we'll read random garbage on the stack as a possible context pointer, I made
    the code reading the native context from it a little more defensive.

    Bug: v8:9860
    Tbr: ulan@chromium.org, neis@chromium.org, ishell@chromium.org

    Original change's description:
    > [runtime] Move Context::native_context to the map
    >
    > Remove the native context slot from contexts by making context maps
    > native-context-specific. Now we require 2 loads to go from a context to the
    > native context, but we have 1 field fewer to store when creating contexts.
    >
    > Change-Id: I3c0d7c50c94060c4129db684f46a567de6f30e8d
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859629
    > Commit-Queue: Toon Verwaest <verwaest@chromium.org>
    > Reviewed-by: Igor Sheludko <ishell@chromium.org>
    > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
    > Reviewed-by: Maya Lekova <mslekova@chromium.org>
    > Reviewed-by: Georg Neis <neis@chromium.org>
    > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
    > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#64296}

R=xwafish@gmail.com

Change-Id: I6496a8c5be8cbabf48cddc2d59111410f31eb75f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868774
Auto-Submit: Mu Tao <pamilty@gmail.com>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64486}
2019-10-22 18:43:36 +00:00
Milad Farazmand
31756013f1 PPC/s390: [wasm-simd] Implement f64x2 sqrt for arm
Port 434f96812f

R=zhin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I2b374de4d50022e88b240dbad5eddcab8cfe9547
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874085
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64485}
2019-10-22 17:56:26 +00:00
Adam Klein
6c41668e6f Update test/intl OWNERS
Remove inactive contributors (cira and mnita) and add ftang and jshin.

Change-Id: Ibd1e4f11553b78e1cd938a7ce8958fe5341829d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872540
Reviewed-by: Frank Tang <ftang@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64484}
2019-10-22 17:29:36 +00:00
Gus Caplan
7a60f322ef [Torque] port FastConsoleAssert to Torque
Change-Id: Iee27a99a9627d73e10c4c85c31d07a5204808259
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864574
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64483}
2019-10-22 17:22:46 +00:00
Andreas Haas
729d5de6a2 [api] Define TypedArray::kMaxLength in api.cc
Otherwise the value cannot be used in gtests in EXPECT_GT expressions.
The reason is that EXPECT_GT takes values by reference and not by
value, so the declaration in v8.h is not enough.

R=clemensb@chromium.org

Bug: v8:9810
Change-Id: I6f85024d483701fcc65d1ccfc5254dbdbcce16c1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871606
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64482}
2019-10-22 16:57:36 +00:00
Ng Zhi An
434f96812f [wasm-simd] Implement f64x2 sqrt for arm
Bug: v8:9813
Change-Id: Ib78d7506fa8c8b755a8e1feccc5d948834ddc3a6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873106
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64481}
2019-10-22 16:43:36 +00:00
Gus Caplan
bdc0a0ec7c [Torque] port Symbol prototype methods to Torque
Change-Id: I97ccbb29f9d4d92bb2ac20402ff8240632533989
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864572
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64480}
2019-10-22 16:04:22 +00:00
Ulan Degenbaev
10b5e80637 [api] Add v8::BackingStore::IsShared
The new predicate indicates whether the backing store was created for
an ArrayBuffer or a SharedArrayBuffer. It is useful for some embedders.

Bug: v8:9380
Change-Id: I804063bb8c4c17815defd6538ce6a1b32f6a4531
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873689
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64479}
2019-10-22 15:36:42 +00:00
Liviu Rau
077cdf44c0 Clean up legacy Android arch configs in test runner
Bug: v8:9503
Change-Id: I6434685459a6b5a935a3a3598a3827959590b9e0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864652
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64478}
2019-10-22 15:27:13 +00:00
Victor Gomes
dbbdd0eca2 Reland x3 "[runtime] Remove extension slots from context objects"
Original change's description:
> [runtime] Remove extension slots from context objects
>
> Context objects have an extension slot, which contains further
> additional data that depends on the type of the context.
>
> This CL removes the extension slot from contexts that don't need
> them, hence reducing memory.
>
> The following contexts will still have an extension slot: native,
> module, await, block and with contexts. See objects/contexts.h for
> what the slot is used for.
> The following contexts will not have an extension slot anymore (they
> were not used before): script, catch and builtin contexts.
> Eval and function contexts only have the extension slot if they
> contain a sloppy eval.
>
> Bug: v8:9744
> Change-Id: I8ca56c22fa02437bbac392ea72174ebfca80e030
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863191
> Commit-Queue: Victor Gomes <victorgomes@google.com>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Auto-Submit: Victor Gomes <victorgomes@google.com>
> Cr-Commit-Position: refs/heads/master@{#64372}

TBR=verwaest@chromium.org,jgruber@chromium.org,ulan@chromium.org,leszeks@chromium.org,petermarshall@chromium.org

Bug: v8:9744
Change-Id: I8700ed2fa62c89e86c39bb16ac3167f38ea8d63f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873695
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64477}
2019-10-22 14:26:02 +00:00
Hans Wennborg
d4e11355ee Remove unnecessary includes from setup-isolate-deserialize.cc
I was just driving by and noticed these unnecessary includes.

Bug: none
Change-Id: I071ce08ef8a52cdeda997047ff7d9a5f47c5ba10
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872394
Auto-Submit: Hans Wennborg <hans@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Hans Wennborg <hans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64476}
2019-10-22 14:22:17 +00:00
Igor Sheludko
f2302eda23 [builtins] Fix ConvertToRelativeIndex() callers to use uintptr indices
Bug: v8:4153
Change-Id: Icd346fae1dea9e56527b8669ace1aa6cfd46e87a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872393
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64475}
2019-10-22 14:21:12 +00:00
Joshua Litt
891f5dd4cd [regexp] Force RegExpResult to slow lookup hidden internal fields.
Currently, RegExpResult builds match indices lazily using data stored
in hidden internal fields on the result object itself. Unfortunately,
if an internal field is deleted, it can cause these hidden fields
to migrate to a dictionary, making indexed lookup unsafe. This CL
forces slow but safe lookup for these fields when lazily building
indices.

Bug: v8:9548, chromium:1013133
Change-Id: Ide87d9ca6a73644ced3de8e35ecac26330d365e4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871756
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64474}
2019-10-22 14:04:22 +00:00
Milad Farazmand
4d779bac70 PPC/s390: [regexp] Apply the backtrack limit in jitted code
Port 0089006fc5

Original Commit Message:

    .. similar to how it is applied in the interpreter. We reserve a stack
    slot for the backtrack count, increment it on each backtrack, and fail
    if the limit is hit.

R=jgruber@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: Ic0c0f8569b2c2596976136d96971e7fa39f9e145
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872430
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64473}
2019-10-22 13:53:12 +00:00
Thibaud Michaud
b0c7ed06f3 [wasm] Stage multi-value support
R=mstarzinger@chromium.org

Bug: v8:6672
Change-Id: Id8a53f6f74fa05150469c35ceba9470e75363637
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847156
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64472}
2019-10-22 13:49:52 +00:00
Santiago Aboy Solanes
7f69a0daea [turbofan] Compress HeapConstants in DecompressionOptimizer
We should be encountering this due to TaggedEquality.
DecompressionElimination used to take care of this, but it will not be
present in the new system.

Bug: v8:7703
Change-Id: I9fe00ee116ed1514cb4c465a8d19df6e785ef913
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868623
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64471}
2019-10-22 13:48:42 +00:00
Simon Zünd
6f7eeec89d Introduce 'replMode' flag for Runtime.evaluate
This CL adds a boolean flag to Runtime.evaluate that allows REPL
mode to be enabled. REPL mode hasn't landed in V8 yet, and the internal
API for it is still in flux.

R=yangguo@chromium.org

Bug: chromium:1004193
Change-Id: I281285e225d3fd2dd4175f3dd967d6562459a203
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866510
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64470}
2019-10-22 13:42:12 +00:00
Nico Hartmann
b8bf5e5365 Fixes word64-lowered BigInt in FrameState accumulator
Bug: chromium:1016450
Change-Id: I4801b5ffb0ebea92067aa5de37e11a4e75dcd3c0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873692
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64469}
2019-10-22 13:37:12 +00:00
Nico Hartmann
cff862c036 [js-perf-tests] Adds performance tests for BigInt subtraction
BigInt performance benchmarks are restructured in JSTest1.json
in such a way that it is easier to run meaningful subsets of
BigInt test cases.

Bug: v8:9213
Change-Id: Ibf94bfb0f14cf8afa890927d97f920659e8b28d0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872390
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64468}
2019-10-22 13:32:09 +00:00
Jakob Gruber
31e08912bb [regexp] Add a histogram counter for # of backtracks
The new regexp_backtracks / V8.RegExpBacktracks counter tracks the
number of backtracks performed per regexp execution. The results can
help us prioritize related work.

Note that we only count backtracks in the interpreter. Jitted code is
ignored. With our current regexp tiering strategy, that means we count
backtracks only in the first execution of each regexp.

Chromium CL: https://crrev.com/c/1871601

Bug: v8:9892
Change-Id: I19146d6e9bc2355f210a050e93dd7e856ab066f3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873696
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64467}
2019-10-22 13:31:02 +00:00
Georg Neis
3fb083fe59 [turbofan] Improve --trace-turbo-inlining
Instead of logging when SFI inlineability is computed, log when
that result is actually used.

Moreover, log something in some cases where we logged nothing
so far (e.g. when we can't inline due to missing feedback vector).

Change-Id: Id93119f4ead17aa9e721eb4fcc20774c54178665
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873693
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64466}
2019-10-22 13:14:44 +00:00
Thibaud Michaud
16b83b1b4a [wasm] Fix interpreter multi-value stack height issue
Block inputs are removed from the stack. Set expected stack height
accordingly.

R=ahaas@chromium.org

Bug: v8:9867
Change-Id: I7e3fd2985c0e77e83d5551cac613788f3cf0a370
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872404
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64465}
2019-10-22 12:59:32 +00:00
Simon Zünd
2d4fe83a43 Remove 'embedded_builtins' variant
Embedded builtins are now unconditionally enabled, which removes the
need to differentiate between enabled/disabled embedded builtins.

This Cl removes the 'embedded_builtins' variant and related
*.status entries.

R=machenbach@chromium.org

Bug: v8:8519
Change-Id: I55d0dd54735b7cc437832af6fa2836fd6c14a317
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864936
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64464}
2019-10-22 12:58:02 +00:00