Commit Graph

66524 Commits

Author SHA1 Message Date
Frank Tang
843fc4c568 Roll test262
https: //chromium.googlesource.com/external/github.com/tc39/test262/+log/51666c531..b2e9dff28
Bug: v8:7834
Change-Id: I4bd6d2990318b0e722f784b0996719ad95a30efc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2600445
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71932}
2021-01-07 00:56:07 +00:00
Milad Fa
0b94bed703 PPC/s390: [Turboprop] Support HeapObject immediate deopt args.
Port bbb1b3457b

Original Commit Message:

    Adds support for emitting data with a reloc info to enable support
    for HeapObjects for immediate deopt args, required by dynamic check maps.

    In order to do this, a new DATA_EMBEDDED_OBJECT relocinfo type is added.
    This represents a raw object inserted into the instruction stream. For
    x64/ia32 it is treated the same as FULL_EMBEDDED_OBJECT, but on
    Arm/Arm64 this behaves differently since it points directly to the
    embedded object pointer rather than to an instruction that loads it.

R=rmcilroy@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
BUG=v8:10582
LOG=N

Change-Id: I949acb69ca6f6a377102eb0ac5f44919d4f7d25b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2612930
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71931}
2021-01-07 00:55:03 +00:00
Milad Fa
90996698b9 PPC: check input to xxspltib is 1 byte long
xxspltib takes in an immediate value of up to 8 bits.
We need to make sure input values are not bigger in size.

Change-Id: I3574028d43752870564e4690b22bf2e87813ab76
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2613031
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71930}
2021-01-06 19:12:52 +00:00
Milad Fa
638075ecff PPC: Use vector insert for 64bit splats
P9 has vector insert instructions which could be used
for splatting 64bit inputs.

Change-Id: I16165271fd70848699430e1f77a1603d1023da49
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2611044
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71929}
2021-01-06 18:54:22 +00:00
Milad Fa
785c9a3b90 S390: Use unsigned int when simulating vector pack
Change-Id: I33cbca84ef65c7e93a0c942aabc881648d58ca3a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2607489
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71928}
2021-01-06 18:53:17 +00:00
Milad Fa
6f054b361e S390: Fix DCHECK_OPCODE in simulator
Change-Id: I8ad99913c570c8e7b542f7c2e1be8235c2ebeb71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2609412
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71927}
2021-01-06 18:52:12 +00:00
Ross McIlroy
bbb1b3457b [Turboprop] Support HeapObject immediate deopt args.
Adds support for emitting data with a reloc info to enable support
for HeapObjects for immediate deopt args, required by dynamic check maps.

In order to do this, a new DATA_EMBEDDED_OBJECT relocinfo type is added.
This represents a raw object inserted into the instruction stream. For
x64/ia32 it is treated the same as FULL_EMBEDDED_OBJECT, but on
Arm/Arm64 this behaves differently since it points directly to the
embedded object pointer rather than to an instruction that loads it.

BUG=v8:10582

Change-Id: I384e88af032b832742447482ae7af5c599097ec1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595295
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71926}
2021-01-06 18:51:08 +00:00
Milad Fa
2f72efd67c S390: Optimize VBPERM on the simulator
Change-Id: I70e117d38d81cec0e7687714211b1c503075e3ba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2609411
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71925}
2021-01-06 18:50:02 +00:00
Deepti Gandluri
53cb7134ff Revert "Update V8 DEPS."
This reverts commit 3c3e15a4dd.

Reason for revert: Revert due to Win32 Bot failures

Original change's description:
> Update V8 DEPS.
>
> Rolling v8/build: dc0b854..834e584
>
> Rolling v8/third_party/aemu-linux-x64: eNKL3iFnDydKoCyqA9rVhylE7ud5a_9wRt0b0HFtLvIC..9zubYTHwbH6DlxoyH3dV8sX48bSr3IkL8MkHYKlEtVkC
>
> Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/3f5c581..6c87604
>
> Rolling v8/third_party/depot_tools: 81098e5..ac96016
>
> Rolling v8/tools/clang: 1283870..e8d041d
>
> TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com
>
> Change-Id: If60b5bc293604bb8dfb0833df43620f743194c15
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2612435
> 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@{#71923}

TBR=machenbach@chromium.org,v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I143f7b2c8350e98cdb14e6e533ec5bbc3559d907
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2613345
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71924}
2021-01-06 18:24:54 +00:00
v8-ci-autoroll-builder
3c3e15a4dd Update V8 DEPS.
Rolling v8/build: dc0b854..834e584

Rolling v8/third_party/aemu-linux-x64: eNKL3iFnDydKoCyqA9rVhylE7ud5a_9wRt0b0HFtLvIC..9zubYTHwbH6DlxoyH3dV8sX48bSr3IkL8MkHYKlEtVkC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/3f5c581..6c87604

Rolling v8/third_party/depot_tools: 81098e5..ac96016

Rolling v8/tools/clang: 1283870..e8d041d

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: If60b5bc293604bb8dfb0833df43620f743194c15
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2612435
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@{#71923}
2021-01-06 03:58:53 +00:00
Zhi An Ng
08b9b5044b Revert "[wasm-simd] Scalar lowering for extended multiply"
This reverts commit 94f2212b4d.

Reason for revert: Failures https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/29008?

Original change's description:
> [wasm-simd] Scalar lowering for extended multiply
>
> R=​bbudge@chromium.org
>
> Bug: v8:11262
> Change-Id: Idd6a7514a16c561832af603dbf63779a0e402f45
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2603771
> Reviewed-by: Bill Budge <bbudge@chromium.org>
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71920}

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

Change-Id: Ic32ac37ee630c644c1f0605cfa3ca7842c52ce15
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:11262
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2612544
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71922}
2021-01-06 02:35:46 +00:00
Zhi An Ng
3ecfc6ce7c [wasm-simd][ia32][liftoff] Implement extended multiply
For i64x2.ext_mul and i16x8.ext_mul, we can simply call the
macro-assembler functions.

For i32x4.ext_mul, the macro-assembler requires that dst == src1 if AVX
is not supported, so we add a helper function to do that check, and make
sure dst == src1 before calling into macro-assembler.

This is the same implementation as x64 (https://crrev.com/c/2603765).

Bug: v8:11262
Change-Id: I85ebe3e033903aa1cb6a7a0840f2e93210cce65a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2610506
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71921}
2021-01-06 02:32:04 +00:00
Zhi An Ng
94f2212b4d [wasm-simd] Scalar lowering for extended multiply
R=bbudge@chromium.org

Bug: v8:11262
Change-Id: Idd6a7514a16c561832af603dbf63779a0e402f45
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2603771
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71920}
2021-01-06 02:10:24 +00:00
Zhi An Ng
76e10856c7 [wasm-simd][scalar-lowering] Add regression test
This adds a regression test for a bug in lowering load transforms.
This test will fail if 0efa3fd97e is
reverted.

Bug: chromium:1124885
Change-Id: I31b714d4565c4fff730c1274af8059031cb1e1b5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2610508
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71919}
2021-01-06 01:15:53 +00:00
Sara Tang
8b33c87239 Step 1 (of 3-ish): Basic ETW Instrumentation in V8
Design doc:
https://docs.google.com/document/d/1xkXj94iExFgLWc_OszTNyNGi523ARaKMWPZTeomhI4U
A lot has changed since the last patchset! I recommend revisiting this
design doc and reading the parts in green. I explain the roadmap for
what changes to expect from ETW instrumentation as well as the
instrumentation of this particular CL.

I'll do my best to answer any further questions anyone has about my
particular instrumentation or ETW in general :)

---

This is the first of a series of changelists to round out ETW
instrumentation for V8.

This changelist represents the most minimal change needed to instrument
ETW in V8. In particular, it:
  - defines and registers the ETW provider,
  - interacts minimally with the rest of V8, by hooking into the
    existing TracingController::AddTraceEvent function,
  - is designed with a platform-agnostic layer, so that event tracers
    for other platforms can be instrumented in teh future.

Some notes on instrumentation (aka I copied stuff from the design doc):

We make heavy use of the TraceLogging API to log events. It differs from
previous methods of emitting ETW events in that it doesn<E2><80><99>t
require the overhead of a separate manifest file to keep track of
metadata; rather, events using this API are self-descriptive.

Here are the five major steps to instrument the TraceLogging API:
  - Forward declare the provider (from provider-win.h)
  - Define the provider in a .cc file (from provider-win.cc)
  - Register the provider (called from v8.cc).
  - Write events (called from libplatform/tracing-controller.cc)
  - Unregister the provider (called from v8.cc)

At the base, we have an abstract provider class that encapsulates the
functionality of an event provider. These are things like registering
and unregistering the provider, and the actual event-logging.

The provider class is split into provider-win and provider-mac
(currently not instantiated) classes, with OS-dependent implementations
of the above functions.

In particular, the TraceLogging API is used only in provider-win. It is
here that we forward declare and define the provider, as well as write
ETW events.

Finally, there is a v8-provider class that serves as a top-level API and
is exposed to the rest of V8. It acts as a wrapper for the
platform-specific providers.

The .wprp file is needed so that Windows Performance Recorder knows how
to capture our events.

Some considerations:
  - Is TracingController::AddTraceEvent the best place from which to
    write my events?
  - Is src/libplatform/tracing the best place to put my instrumentation?
  - Right now, I fail the preupload because of this, which tells me my
    files are probably not in the best location:

You added one or more #includes that violate checkdeps rules.
src\init\v8.cc Illegal include: "src/libplatform/tracing/v8-provider.h"
Because of "-src/libplatform" from src's include_rules.

Change-Id: Id53e4a034c9e526524a17000da0a647a95d93edf
Bug: v8:11043
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2233407
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Sara Tang <sartang@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#71918}
2021-01-05 20:11:03 +00:00
Andreas Haas
3345472f87 [wasm] Remove negative implication from --single-threaded to --liftoff
The negative implication from --single-threaded to --liftoff was
introduced because with --single-threaded, no tier-up to TurboFan is
possible, and TurboFan provides faster code and smaller code

This CL removes this implication. The reason is that this implication
does not only define the default compiler for --single-threaded to
TurboFan, and also completely disables the option to use Liftoff
instead. By removing the implication, and embedder who uses
--single-threaded can decide by themselves if they want to use Liftoff
by setting --liftoff, or if they don't want to use Liftoff by setting
--no-liftoff.

R=clemensb@chromium.org

Bug: v8:11279
Change-Id: Ie6e64a42823b87484135364ecb4589cfd188db5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599548
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71917}
2021-01-05 15:33:58 +00:00
Clemens Backes
b48824ffd3 Revert "[wasm-simd][liftoff][x64] Move v128.select into macro-assembler"
This reverts commit 2d5f981a04.

Reason for revert: Fails on noavx: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20debug/35318

Original change's description:
> [wasm-simd][liftoff][x64] Move v128.select into macro-assembler
>
> This allows us to reuse this optimized code sequence in Liftoff.
>
> We can't do the same thing in IA32 yet, there is no kScratchDoubleReg
> defined in the macro-assembler-ia32.cc, it is defined in code-generator-ia32
> as xmm0 but I'm not sure if it is safe to just use that in the macro assembler.
>
> Change-Id: I6c761857c49d2518fbc82cd0796c62fc86665cb5
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596581
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Bill Budge <bbudge@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71915}

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

Change-Id: I2aacee02c89a16516a9cd6686d8cc6180362f78e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2610730
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71916}
2021-01-05 15:24:20 +00:00
Zhi An Ng
2d5f981a04 [wasm-simd][liftoff][x64] Move v128.select into macro-assembler
This allows us to reuse this optimized code sequence in Liftoff.

We can't do the same thing in IA32 yet, there is no kScratchDoubleReg
defined in the macro-assembler-ia32.cc, it is defined in code-generator-ia32
as xmm0 but I'm not sure if it is safe to just use that in the macro assembler.

Change-Id: I6c761857c49d2518fbc82cd0796c62fc86665cb5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596581
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71915}
2021-01-05 14:18:58 +00:00
Clemens Backes
bdcdbd4b0c [logging] Fix expected death message in official builds
The tests were failing in official release builds, because those drop
the fatal error message and always print "ignored" instead.

R=ecmziegler@chromium.org

Bug: v8:11251
Change-Id: I40512ca308337cf070ecb6a206dc4a5323d67415
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595445
Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71914}
2021-01-05 13:37:28 +00:00
Clemens Backes
d0ebe06b05 [factory] Allow undefined source for scripts
According to the Torque definition, the type of the 'source' field is
'String|Undefined'. The Factory only allowed to pass a string though,
which forced us to set an empty string for wasm scripts.

This CL changes the factory to also allow undefined values, which fits
slightly better for wasm.
The inspector needed a minor change to handle undefined source like an
empty string.

R=dinfuehr@chromium.org, yangguo@chromium.org

Bug: chromium:1125986
Change-Id: Iac0a5ee3767ce121aba8a6a2afe37195e77122fa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2584243
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71913}
2021-01-05 13:02:28 +00:00
Zhi An Ng
77a77aead7 Add comment discussing Macro v.s. Turbo Assemblers
R=ahaas@chromium.org

Change-Id: Iffc27328464616b422cb6ccecbaf77d901f8d889
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599848
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71912}
2021-01-05 09:53:48 +00:00
Benedikt Meurer
5fc4649d94 [debug][wasm] Move DebugEvaluate implementation to wasm-debug.cc.
Previously the proxies that make up the DebugEvaluate implementation for
Wasm frames lived in wasm-js.cc, but that was quite confusing since

(a) the rest of the debug support for Wasm lives in wasm-debug.cc (and
    we intend to eventually unify the DebugEvaluate and Scope objects),
    and
(b) the wasm-js.cc file is explicitly about the WebAssembly JS API
    that's part of the WebAssembly specification, and the DebugEvaluate
    proxies aren't part of that.

Bug: chromium:1162229, chromium:1071432, chromium:1127914
Change-Id: I63016dcace6d8e2af4a03c8eed4f02d464c1dee1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2609418
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71911}
2021-01-05 09:34:38 +00:00
Benedikt Meurer
d09b35f3b1 [inspector] Add Wasm test coverage for evaluateOnCallFrame().
Drive-by-fix: Handle duplicate globals names correctly in the
scope exposed module object.

Bug: chromium:1127914, chromium:1071432
Change-Id: I697256642c5ddbc13f86ff25ab012c53537b9c88
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2609416
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71910}
2021-01-05 08:37:58 +00:00
Benedikt Meurer
adea008b75 [inspector] Remove redundant tests.
The wasm-scope-info-liftoff.js and wasm-set-breakpoint-liftoff.js tests
were originally testing the Liftoff path (when we still had the Wasm
interpreter), and have received some updates along the way. Nowadays the
interpreter is going and the non-liftoff versions of these tests don't
provide any additional test coverage, but are merely a slightly less
updated version of the liftoff test.

Bug: chromium:1162229
Change-Id: Ifc9933d47f33674a83b99425ef9d0e4bc5550323
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2609415
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71909}
2021-01-05 07:45:47 +00:00
Benedikt Meurer
6f448efbef [inspector] Make wasm tests fail rather than time out.
Consistently use InspectorTest.runAsyncTestSuite() in wasm inspector
tests to make tests easier to debug (they'll fail instead of timing
out in case of errors).

Bug: chromium:1162229, chromium:1071432
Change-Id: I7aada196f9e34071aa1bb059bb45f85f75226060
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2609414
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71908}
2021-01-05 07:38:57 +00:00
Zhi An Ng
afd3f63e30 [wasm-simd][ia32] Convert ext mul macros into macro-assembler functions
This will make these functions usable from Liftoff when we later
implement extended multiply instructions in Liftoff.

This is similar to the x64 versions, except that it takes a scratch
register as a parameter.

Bug: v8:11262
Change-Id: Ief3d8cdde59da9e05a468286315bcae6d13863d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2603768
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71907}
2021-01-05 05:00:47 +00:00
v8-ci-autoroll-builder
4cfbe2d1d9 Update V8 DEPS.
Rolling v8/build: 46adc39..dc0b854

Rolling v8/third_party/depot_tools: 364205c..81098e5

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: Ic95d3b8d0d4265a2f43f6434469e9e65601da52a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2610430
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@{#71906}
2021-01-05 03:48:17 +00:00
Zhi An Ng
bfd66ef95b [x64][wasm-simd][liftoff] Use optimized integer widen_high ops
These optimized macro-assembler functions were introduced in
https://crrev.com/c/2591853. Reuse them in Liftoff to get better
code-gen, especially when AVX is supported. The macro-assembler
functions have no alias requirements, so we can pass dst and src
directly without doing any checks or moves.

Change-Id: I0d1badfc2e2b41a8d92d8c4ac73541ec46daeb0a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2603766
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71905}
2021-01-05 01:19:55 +00:00
Zhi An Ng
9f56f37ebe [ia32][wasm-simd] Fix s128select
In https://crrev.com/c/2591859 we changed the way we generate code for
v128.select, which assumes that all inputs are registers. We did not
update the instruction selector with this new constraint.

Fixed: chromium:1161954
Bug: v8:11282
Change-Id: I5fc9a0315873a3e795078997d87aa92d4c8bddfe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2603764
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71904}
2021-01-05 01:17:45 +00:00
Zhi An Ng
72f3270ba7 [wasm-simd][x64][liftoff] Implement extended multiply
For i64x2.ext_mul and i16x8.ext_mul, we can simply call the
macro-assembler functions.

For i32x4.ext_mul, the macro-assembler requires that dst == src1 if AVX
is not supported, so we add a helper function to do that check, and make
sure dst == src1 before calling into macro-assembler.

Bug: v8:11262
Change-Id: Iff8e99967f4ab157021d0706e0142df894468142
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2603765
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71903}
2021-01-05 01:15:45 +00:00
LiuYu
45bdd8fdde [mips] Reduce the use of ctc1 and cfc1
Change-Id: Id20ea44e9cf804d305731799045c45a577df47ec
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2607266
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/master@{#71902}
2021-01-04 12:23:23 +00:00
v8-ci-autoroll-builder
2ab1e53cd6 Update V8 DEPS.
Rolling v8/build: ff2ef81..46adc39

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: Ic5169bac840db4a0ab25c0b5c8e4ae6166020244
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2609716
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@{#71901}
2021-01-04 03:41:53 +00:00
v8-ci-autoroll-builder
240abb41e9 Update V8 DEPS.
Rolling v8/build: 4e13e3f..ff2ef81

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I4c4f0a80ba0b4dc1e705f5973664a14cc50d6a6c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2609206
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@{#71900}
2021-01-03 03:42:52 +00:00
v8-ci-autoroll-builder
6ddb8445a8 Update V8 DEPS.
Rolling v8/build: 2f9b06d..4e13e3f

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I6c158adeb9d22ee639f6598237e38397f902ab21
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2608869
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@{#71899}
2021-01-02 03:46:21 +00:00
v8-ci-autoroll-builder
b4a9552edb Update V8 DEPS.
Rolling v8/build: b3c270e..2f9b06d

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I5045137ed959ea43bf1262b9f99a42aa66644e7c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2608123
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@{#71898}
2021-01-01 03:57:10 +00:00
Jakob Gruber
1c7d9ea597 Split slow test unicode-case-overoptimization
Tbr: machenbach@chromium.org
Bug: v8:11255
Change-Id: Ic7dc95306f637af5973764e8c39e2454d959ac23
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606337
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71897}
2020-12-31 10:35:19 +00:00
Jakob Gruber
506e893b81 [deoptimizer] Stricter checks during deoptimization
.. to verify that the trampoline_pc has been set.

Bug: chromium:1161357
Change-Id: If7e1a13cff9919e2e8a65c095d80dfcef2dc05cb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606333
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71896}
2020-12-31 10:10:39 +00:00
v8-ci-autoroll-builder
9327fbdd11 Update V8 DEPS.
Rolling v8/build: 1016d67..b3c270e

Rolling v8/third_party/depot_tools: 3b39cef..364205c

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I4130d3e2ea1335fc6fbf6782ee3e602e2804c8d4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2607771
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@{#71895}
2020-12-31 03:45:29 +00:00
v8-ci-autoroll-builder
fe8831f551 Update V8 DEPS.
Rolling v8/build: 7c34525..1016d67

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: Ia059af587d2b72fc76fa58a7369c953958f19ac9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606555
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@{#71894}
2020-12-30 03:37:08 +00:00
Benedikt Meurer
ad42f966a4 [wasm][debug] Expose instance and module instead of imports / exports.
The "imports" and "exports" that were exposed on WebAssembly frames via
Debug-Evaluate aren't useful for the DWARF C/C++ extension (and likely
not for any other language extension), since they only expose static
information that's easily available (upfront) by reading the Wasm wire
bytes.

In fact, there are already standardized functions in the WebAssembly
specification, namely `WebAssembly.Module.imports(module)` and
`WebAssembly.Module.exports(module)`, which yield static information
about the imports and exports of a Wasm module.

So instead of exposing special, non-standard "imports" and "exports", we
now instead expose both the "instance" and the "module" objects via both
the Debug Proxy and the Scope view, and also add internal [[Exports]]
and [[Imports]] properties to WasmModuleObject, which under the hood use
the standard methods mentioned above.

Fixed: chromium:1162069
Bug: chromium:1071432, chromium:1083146
Screenshot: https://imgur.com/lcaW2jL.png
Doc: https://docs.google.com/document/d/1rqbu0jKTl3q_xCxLnKzkjGXWEsHnJ9aERVhKV9RNDgE#bookmark=id.925bb2qgou38
Change-Id: Ie27e55bb08ea5f90493c57375bf2b48dfb11a4d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606050
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71893}
2020-12-29 12:48:23 +00:00
Benedikt Meurer
2cab7ae90e [debug] Make JSArrayBuffer (pre)views into internal properties.
For JSArrayBuffer instances (which map to both v8::ArrayBuffer and
v8::SharedArrayBuffer), we add a couple of synthetic views to its
ValueMirror to make it easy for developers to peak into the contents of
the JSArrayBuffer. These were previously real properties, but that's
just wrong (both intuitively and semantically), and they should instead
be internal properties.

Drive-by-fix: The [[IsDetached]] internal property should only be shown
on actually detached JSArrayBuffer's to reduce visual clutter. And for
detached JSArrayBuffers creating views on them throws TypeErrors per
specification, so we shouldn't attempt to display views on them.

Bug: v8:9308, chromium:1162229
Change-Id: Ia006de7873ca4b27aae7d00d46e1b69d2e326449
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606047
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71892}
2020-12-29 11:00:53 +00:00
Benedikt Meurer
2a81352588 [debug] Remove dead %GetHeapUsage() runtime function.
Bug: chromium:116229
Change-Id: I16e185c2156dd7ba812f7d484c2e281febfa3635
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606048
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71891}
2020-12-29 10:31:53 +00:00
Benedikt Meurer
6f6a540456 [wasm][debug] Compile source only once for Debug-Evaluate.
We accidentally compiled the source for Debug-Evaluate on Wasm frames
twice, and used the first script result as outer function info for the
second, actual compile (which goes via the `eval` machinery).

Also unify DebugEvaluate::Local and DebugEvaluate::WebAssembly, since
they are essentially very similar, except for the context.

Bug: chromium:1127914
Change-Id: I8eb85c128c05ab1d4fcb73061de89b0942d1e5c8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2605198
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71890}
2020-12-29 09:42:53 +00:00
LiuYu
cbed76b711 [mips][liftoff]Fix some instructions
This fix the following instructions:
kExprI32SConvertF64 in mips32, RecordSpillsInSafepoint in mips32 and mips64.

Change-Id: I762fe4a7afa06fa8470fb0de932756a145d66099
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2605905
Auto-Submit: Liu yu <liuyu@loongson.cn>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71889}
2020-12-29 07:56:23 +00:00
Zhi An Ng
d5662577fe [wasm-simd][x64] Prototype i64x2 widen i32x4
Prototype these 4 instructions:

- i64x2.widen_low_i32x4_s
- i64x2.widen_high_i32x4_s
- i64x2.widen_low_i32x4_u
- i64x2.widen_high_i32x4_u

Bug: v8:10972
Change-Id: I3defd0a2431252bc3f5bb45e022e62b37beb34ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601012
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71888}
2020-12-29 03:47:13 +00:00
v8-ci-autoroll-builder
de3bd8dd25 Update V8 DEPS.
Rolling v8/build: ffd4756..7c34525

Rolling v8/third_party/depot_tools: 46ef281..3b39cef

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I3881d27d5aec152fbb1059e8db3a2e85337a6b77
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2605670
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@{#71887}
2020-12-29 03:27:13 +00:00
Zhi An Ng
e193557497 [wasm-simd][x64] Prototype saturating rounding multiply high
Bug: v8:10971
Change-Id: I60186a445f3a5ad366cba4e6bcb16519098aa6ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601009
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71886}
2020-12-29 02:31:53 +00:00
Zhi An Ng
7ddcd92ea9 [wasm-simd][x64] Convert ext mul macros into macro-assembler functions
This will make these functions usable from Liftoff when we later
implement extended multiply instructions in Liftoff.

Bug: v8:11262
Change-Id: I5fb105bc0184675eb60cd8ae63cc13955b0f767d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601876
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71885}
2020-12-29 01:38:53 +00:00
Zhi An Ng
506c09797c [x64] Sort out move instructions in codegen
In AVX, it is better to use the appropriate integer or floating point
moves depending on which instructions produce/consume these moves, since
there can be a delay moving from integer to floating point domain. On
SSE systems, it is less important, and we can move movaps/movups which
is 1 byte shorter than movdqa/movdqu.

This patch cleans up a couple of places, and defines macro-assembler
functions Movdqa, Movdqu, Movapd, to call into movaps/movups when AVX is
not supported.

Change-Id: Iba6c54e218875f1a70f61792978d7b3f69edfb4b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599843
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71884}
2020-12-29 01:27:23 +00:00
Milad Fa
ddd9b349c1 PPC: [inspector] mark test as slow when running on simulator
Change-Id: Idae6adfd81889da96e7f9dad8781c9a285bea72a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601343
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71883}
2020-12-28 16:32:22 +00:00