Commit Graph

61643 Commits

Author SHA1 Message Date
Michael Lippautz
fc57d4e815 cppgc: Remove Win stack scanning support
Even though the default toolchain for assembly on Windows uses MASM
assemblers, we are not supposed to use them to support Linux/Win
cross-compile.

Bug: chromium:1056170, chromium:1066834
Change-Id: If17dbd68915f843e3fb47584560a4667d5c35bc7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2132250
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66951}
2020-04-01 14:52:44 +00:00
Milad Farazmand
4b56b1f858 PPC/s390: [wasm-simd] [liftoff] Implement add_saturate on ia32 and x64
Port 767401ba54

R=fanchen.kong@intel.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: Ice8b33376e22ab6658503cda9e34202f96688bcf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2131509
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Milad Farazmand <miladfar@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#66950}
2020-04-01 14:47:44 +00:00
Clemens Backes
7bb686a976 [asm] Fix double literals without dots
Double literals without dots should still be parsed as double constants,
not unsigned constants. The static_cast would remove the fractional
part, making constants like "1e-15" come out as "0" unsigned constants.

The precise semantics is not spec'ed, so we still consider literals like
"1e1" to be unsigned, and only switch to double if there is a fractional
part.

R=ecmziegler@chromium.org

Bug: chromium:1065635
Change-Id: I0aac018058a149632e0849572d19fdcc7b2af7aa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2126922
Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66949}
2020-04-01 13:59:24 +00:00
Maya Lekova
6ee457bf05 [turbofan] Add a type check to String.prototype.startsWith
The ReduceStringPrototypeStartsWith implementation in TurboFan
was doing the CheckString too late, after returning "false" in
case there are no arguments.

Fixed: chromium:1065741
Change-Id: I1016383d65120d3b050e76d6ac41986497af0b8d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2129639
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66948}
2020-04-01 13:57:44 +00:00
Kong, Fanchen
767401ba54 [wasm-simd] [liftoff] Implement add_saturate on ia32 and x64
Bug: v8:9909
Change-Id: Ib744bcbfe3df66d6904421bcbd2581dd6a95b75c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2116878
Commit-Queue: Fanchen Kong <fanchen.kong@intel.com>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66947}
2020-04-01 13:13:54 +00:00
Georg Neis
2f0e62e826 [turbofan] Mark JSStoreGlobal as NeedsExactContext
JSStoreGlobal can become a call into runtime code (SetProperty)
that inspects the context in order to get the language mode. Thus
always passing the native context is not good enough.

Bug: chromium:1065737
Change-Id: Iba9537cd3de743a0967325acf7900190aa835b5f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2130280
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Auto-Submit: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66946}
2020-04-01 12:18:14 +00:00
Clemens Backes
0612910150 [liftoff] Remove some binop macros
This inlines the first set of macros in order reduce an unneccessary
layer of abstraction. This makes the code easier to read and to debug.

R=zhin@chromium.org

Bug: v8:10364
Change-Id: Ia8ccb90c285c365ae5b3d52b6b6912ad1a76d81d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2129532
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66945}
2020-04-01 12:08:54 +00:00
Zhao Jiazhong
56bf2a116c [mips][interpreter] Make IterationBody StackChecks implicit within JumpLoop
Port a447a44f31
https://crrev.com/c/2064226

Original Commit Message:

  Since now the IterationBody StackChecks are implicit within JumpLoops,
  we are able to eagerly deopt in them. If we do that, whenever we advance
  to the next bytecode we don't have to advance to the next literal
  bytecode, but instead "advance" in the sense of doing the JumpLoop.

  Adding tests that test this advancing for wide and extra wide JumpLoops.

  Also, marking JumpLoop as needing source positions since now it has
  the ability of causing an interrupt.

Change-Id: Ia435888fbaca8596839aa15dafb8b4e7239981fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2119783
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#66944}
2020-04-01 12:02:04 +00:00
Clemens Backes
219b0edb6e [liftoff] Shorten names of value types
Import the most commonly used ValueType kinds as constants into
{LiftoffCompiler}, so that we don't need the fully-qualified accessor on
{ValueType}.
This makes many template instantiations much shorter and hence easier to
read.

Drive-by: Replace break after function by return. This often saves
  another line, making macros and switch statements much shorter.

R=zhin@chromium.org

Bug: v8:10364
Change-Id: If78352c2fa6b854989fa82718d0b3478b4d73aad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2129634
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66943}
2020-04-01 11:57:44 +00:00
Camillo Bruni
91a60a4fcb [tools] Harden and speed up map-processor
- avoid endless recursion with corrupted traces
- speed up page by async bar repainting
- minor tweaks to avoid unnecessary work
- move helper functions to make command line version parse log files

Change-Id: If8ce9cc4093030d648fbc7bbb60e53412e9f7a79
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2115434
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66942}
2020-04-01 10:34:04 +00:00
Clemens Backes
a1bd722799 [liftoff] Remove lambdas for binops with immediate
This is the same cleanup as in the previous CL, but for {EmitBinOpImm}.
This requires a minor change in the name of the emit functions with
immediate, to make them distinguishable from the emit functions with two
registers. We just append an "i" to the functions with immediate.

R=zhin@chromium.org

Bug: v8:10364
Change-Id: Ie3732a956698368a5f1fbe67334a13014cd2f354
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2129631
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66941}
2020-04-01 10:26:54 +00:00
Adam Kallai
4c414a2265 fix: failing ThreadTicks DCHECK on Windows on Arm
The same issue has been fixed in Chromium [1] by Richard Townsend.
It seems that cl needs to be applied in V8 as well.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/1593363

Also add self to authors file.

Bug: v8:10365
Change-Id: Ic38b18392263c2a89f207013ec61718418d5f132
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2130126
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66940}
2020-04-01 10:15:24 +00:00
Clemens Backes
ee498c1c16 [asm] Avoid instantiation as resumable function
If "use asm" is used inside a "function*" or async function, it should
bail out.

Drive-by: Minor cleanup in {Runtime_InstantiateAsmJs}.

R=ecmziegler@chromium.org

Bug: chromium:1065852
Change-Id: Ice48126b803a30c4b4ff7b5ae22df85a3f36198a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2126920
Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66939}
2020-04-01 09:50:34 +00:00
Clemens Backes
bff40c9927 [liftoff] Replace lambdas by generic templates
Liftoff has lots of macros that just convert between {LiftoffRegister}
and either {Register} or {DoubleRegister}.
This CL avoids most of these lambdas by passing the original assembler
function to {EmitUnOp} and {EmitBinOp}, and converting the register
types only when calling the respective function.

This makes the code in many macros a lot shorter, and might allow us to
eliminate many macros and just inline their code.

R=zhin@chromium.org

Bug: v8:10364
Change-Id: I8b7dbb19e367d33181d94472ab422a0a50786449
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2129629
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66938}
2020-04-01 09:03:17 +00:00
Jakob Gruber
474e334930 [snapshot] Remove unused SnapshotByteSource::GetIntSlow()
Change-Id: Ib05e6bde2cefa9274952b6f8790ca4ec3d490a75
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2128057
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66937}
2020-04-01 09:02:12 +00:00
Leszek Swirski
39fcb543fd [offthread] Call write barriers during string fixup
The internalized string fixup during off-thread factory merging updates
object slot values, but didn't call the write barrier for that slot.

Now it does.

Bug: chromium:1011762
Change-Id: I11e546a06f48bdb476b66a1944f485b97b0d4dbe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2124318
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66936}
2020-04-01 07:55:08 +00:00
Leszek Swirski
65edd994ba [runtime] Remove unused NewSloppyArguments function
Only the NewSloppyArguments_Generic variant is used, so delete the
unused NewSloppyArguments function and rename the other one to the now
available name.

Change-Id: Ifb90a03bd112f78b4d95f7afc3b299c9634e9acc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2128051
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66935}
2020-04-01 07:16:08 +00:00
Joyee Cheung
1627e58459 Revert "[class] Ship private methods and accessors"
This reverts commit 77b24c063a.

Reason for revert: Broke M83 feature freeze. Reland after the M83 branch cut.

Original change's description:
> [class] Ship private methods and accessors
> 
> Turns --harmony-private-methods on by default.
> 
> Intent to ship: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/HLpO-HC8aKc/TT32fUNPBAAJ
> ChromeStatus page: https://www.chromestatus.com/feature/5700509656678400
> 
> Bug: v8:8330
> Change-Id: I0d9b21cddd5418be8e7059c24fa05ab98de667b9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2110890
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Commit-Queue: Joyee Cheung <joyee@igalia.com>
> Cr-Commit-Position: refs/heads/master@{#66933}

TBR=syg@chromium.org

Change-Id: Idbcb09fadd4779e5c2ee9b1ae52b7fba5bcb236e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8330
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2130450
Reviewed-by: Joyee Cheung <joyee@igalia.com>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/master@{#66934}
2020-04-01 02:37:37 +00:00
Joyee Cheung
77b24c063a [class] Ship private methods and accessors
Turns --harmony-private-methods on by default.

Intent to ship: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/HLpO-HC8aKc/TT32fUNPBAAJ
ChromeStatus page: https://www.chromestatus.com/feature/5700509656678400

Bug: v8:8330
Change-Id: I0d9b21cddd5418be8e7059c24fa05ab98de667b9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2110890
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/master@{#66933}
2020-04-01 01:06:17 +00:00
Michael Lippautz
75662f1b6c cppgc: Fix MSAN builds
The stack scanner copies any potentially uninitialized values into a
temporary on the stack. The temporary is supposed to be unpoisoned
before processing.

This fixes an issue where we would pass the wrong address to
unpoisoning.

Bug: chromium:1056170
Change-Id: I8eb1564103d067e72f9de74b71d9ddfc23a68ade
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2130273
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66932}
2020-03-31 22:50:02 +00:00
Michael Lippautz
9173d7ad17 Reland "cppgc: Limit stack scan to clang-only"
Bug: v8:10370
Change-Id: Ia20388951ce420bdcd47d3c884ce762b87eefdf1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2130272
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66931}
2020-03-31 22:33:32 +00:00
Michael Lippautz
a06b33bbaa cppgc: Fix iOS simulator build for stack scanning
Bug: v8:10369
Change-Id: I2590206bb8158fadeddc4235d36ce34dc91d7599
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2130270
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66930}
2020-03-31 22:01:12 +00:00
Zhi An Ng
aa08d10744 Revert "cppgc: Limit stack scan to clang-only"
This reverts commit c567e4476b.

Reason for revert: Broke V8 Linux - arm64 - sim - MSAN (tree closed)

Original change's description:
> cppgc: Limit stack scan to clang-only
> 
> Quickfix to get non-clang bots green.
> 
> Bug: v8:10370
> Change-Id: I83591cd2bda94cd5aaffd023fe2b7068bdc7442f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2131066
> Reviewed-by: Anton Bikineev <bikineev@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#66928}

TBR=mlippautz@chromium.org,bikineev@chromium.org

Change-Id: I0e41e1caae696c6cb7dceeb48fa9a3ab277b5b66
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10370
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2130759
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66929}
2020-03-31 21:41:41 +00:00
Michael Lippautz
c567e4476b cppgc: Limit stack scan to clang-only
Quickfix to get non-clang bots green.

Bug: v8:10370
Change-Id: I83591cd2bda94cd5aaffd023fe2b7068bdc7442f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2131066
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66928}
2020-03-31 21:16:15 +00:00
Anton Bikineev
d8936aac8f cppgc: Port Member
This CL introduces
 - Member
 - WeakMember
 - UntracedMember
interfaces. Remaining work is to add pointer verifier and write barrier
implementation.

Bug: chromium:1056170
Change-Id: Iddb8e4d002db0b1d1652f2946ddfa08a98a889c7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2124323
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66927}
2020-03-31 18:30:38 +00:00
Junliang Yan
04a7a680a2 [ptr-compr] Enable pointer compression on s390x
Drive-by: Fix a few BE related issue with ptr-compr enabled.

Change-Id: Ic2ff9e69a42e65089a1c1544e5eba1833c2fd95e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2057355
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#66926}
2020-03-31 17:06:17 +00:00
Marja Hölttä
e06e1fa6b6 Move intrinsic functions further up in native context
The interpreter assumed that native context indices of the
runtime functions are less than 256, which is not the case if
intrinsics are at the end of the native context and we keep adding
fields to native context.

Also fix the operand type, so that we get a DCHECK failing if the ids
don't fall into the expected range.

Change-Id: I8bc13a90593739ec66cb0a507572cf5b2acc4235
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2129632
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66925}
2020-03-31 15:53:47 +00:00
Michael Lippautz
12e5ae677c cppgc: Reorganize conservative stack scan defines
Pure refactoring. The re-organization allows to easily
add more platforms.

Bug: chromium:1056170
Change-Id: Ia191c37a1dabff6952414c5314beeeae881713b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2129636
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66924}
2020-03-31 14:33:57 +00:00
Joyee Cheung
a829781cc5 [class] improve error message of private brand checks
Previously we use the error message for normal invalid private member
access, so for a failed brand check for class C, the error is

TypeError: Cannot read private member C from an object whose class did not declare it

This updates the message to

TypeError: Object must be an instance of class C

Bug: v8:8330
Change-Id: Ida98f46b8387631194a9b7a48bd1f419045ac6e7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2100688
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66923}
2020-03-31 14:06:27 +00:00
Anton Bikineev
d82b77e47a cppgc: Add test for stack alignment
This tests that the stack doesn't get misaligned after asm trampolines.
x86 and x64 psABI requires the stack to be 16 bytes aligned.

Bug: chromium:1056170
Change-Id: I73e7100806c6ecf3f5e884a121a15bcc384d8011
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2128048
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66922}
2020-03-31 13:18:47 +00:00
Georg Neis
fd9e54a997 [turbofan] Preserve CheckBounds's kAbortOnOutOfBounds mode
A previous CL made the mode an explicit argument but failed to
keep SimplifiedLowering from overriding it.

Moreover, CheckedUint64Bounds so far didn't support the two modes.

Change-Id: I01d8bf90fca77940fbeb428da57608a59f812c75
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2124833
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66921}
2020-03-31 12:41:30 +00:00
Michael Lippautz
1340412a2d cppgc: Maintain frame pointer for x64 stack scan
Maintain a proper frame pointer in rbp when going through the
trampoline. This ensures that e.g. gdb can properly unwind the
stack.

Bug: chromium:1056170
Change-Id: I7a9252316e7ce8d83cf54e1efc801b92476bc4ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2128050
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66920}
2020-03-31 12:21:50 +00:00
Leszek Swirski
17967c0773 [turbofan] Use switch in ReduceJSCreateArguments
We can make sure we exhaustively test all CreateArgumentsTypes by using
a switch rather than if-else.

Change-Id: Id00094eeb4cb0af212f5c939314aec72a30a3ee0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2128054
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66919}
2020-03-31 11:01:36 +00:00
Georg Neis
093019ee1a Make CreateDynamicFunction switch context before throwing
In https://chromium-review.googlesource.com/c/v8/v8/+/2124837 we
changed the behavior of CreateDynamicFunction such that it throws
a TypeError if the operation is disallowed. The TypeError
constructor was taken from the target context, which didn't make
a lot of sense: the entered context doesn't have access to
the function ctor's context, so it won't have access to an
exception created in the function ctor's context either.

With this CL, the TypeError constructor is taken from the entered
context instead. Note that this is not necessarily the calling
context (we don't generally know the calling context at this point).

Bug: v8:10361, chromium:1065094
Change-Id: I09daa1f913a7e33841eb7fa0c00fca435df64b2f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2127866
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66918}
2020-03-31 08:07:56 +00:00
Clemens Backes
e7cb911a93 [wasm] Fix capitalization of "Wasm"
If we want external people to stop shouting WASM, we should start
by avoiding that in our own code base.
This CL replaces almost all occurrences of "WASM" by "Wasm". The
last remaining ones (in frames.cc) are in capitalized contexts where
WASM fits.

TBR=ecmziegler@chromium.org

Bug: v8:10155
Change-Id: I905b92220768b99bb5e1165255691ffe4498dba3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2126917
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66917}
2020-03-31 06:55:16 +00:00
Ng Zhi An
deb490dcae [wasm-simd][x64] AVX codegen
For i8x16, most i8x16 should be done now. Drive by cleanup to remove
unnecessary CpuFeatureScope (since they are in the macro assembler now).

Bug: v8:9561
Change-Id: Ic4e9462eec62badfae7a5164562fdb167da76968
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2121169
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66916}
2020-03-30 21:59:16 +00:00
Ng Zhi An
5455998ed0 [wasm-simd][ia32] Add AVX codgen for i8x16 shifts
Bug: v8:9561
Bug: v8:10115
Change-Id: Iecec52c353e958a95e5508719cd7bd447ecc7bcc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2125507
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66915}
2020-03-30 21:51:06 +00:00
Ulan Degenbaev
f6f7ab35f7 [heap] Properly initialize all fields of ObjectStats
Bug: v8:6932
Change-Id: I9e77a41812c3ac9750cc4b03a8650c6e490df2a1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2128047
Auto-Submit: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66914}
2020-03-30 19:55:56 +00:00
Michael Lippautz
c10863153a cppgc: Conservative stack scanning
Adds support for conservative stack scanning on x64. The trampolines
saving callee-saved registers are compiled using clang (non-Windows)
and MASM (Windows). This is using the default toolchain for assembly
in Chromium/V8.

This differs from Oilpan in Chromium where x86 and x64 are compiled
using NASM [1]. V8 does not yet require this dependency and building
the trampolines natively avoids it. (NASM also requires separate
blocks for x64 Windows and non-Windows.) On non-x86/x64 platforms
Chromium also uses clang, so there's little benefit in keeping the
dependency.

The trampolines are tested when building with clang.

Other platforms follow in separate CLs.

[1] https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/platform/heap/asm/SaveRegisters_x86.asm

Change-Id: Ice2e23e44391aa94147abe75ee0b5afac458b8f8
Bug: chromium:1056170
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2124319
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66913}
2020-03-30 19:43:06 +00:00
Michael Lippautz
35c21ba313 cppgc: Fix compilation of death tests on iOS
iOS does not support death tests.

Bug: v8:10360
Change-Id: Ia86553d53eee811e5521c093fd034115a9d01750
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2128046
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66912}
2020-03-30 19:11:26 +00:00
Andrew Comminos
58b543ab73 [cpu-profiler] Add support for refcounting to StringsStorage
In order to implement CodeEntry deallocation when profiles are stopped,
we need to be able to effectively deallocate strings. Introduce a simple
imperative refcounting API using the existing HashMap slots for
StringsStorage to enable this.

Design doc: https://docs.google.com/document/d/1OTwlBnAMXZEaOICtuz16c01QnkPPdqHBoHpfGwnk5SY/edit

Bug: chromium:956688
Change-Id: Iaa1142925f40aa66c064d011b2a0630de72037fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2121575
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Andrew Comminos <acomminos@fb.com>
Cr-Commit-Position: refs/heads/master@{#66911}
2020-03-30 19:08:06 +00:00
Z Nguyen-Huu
9c9167124b [wasm] WAT-compatible naming for imported and exported globals
For globals, we would use name as follows.
1. If import: use <import_module>.<field_name> from WasmImport.
2. If export: use <field_name> from WasmExport.
3. Use global<index>.

Add DecodeGlobalNames similar to DecodeFunctionNames.

Doc: https://docs.google.com/document/d/1XoXWONLBgZWQ9dhtoMpQPvD0fnnWA50OorsuSXfME3g
Bug: v8:10242
Change-Id: I11131528fc6ae6ca50727e9b428f76e76b0000e5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2122523
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Kim-Anh Tran <kimanh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66910}
2020-03-30 18:06:47 +00:00
Ng Zhi An
a60707f598 [wasm-simd][arm] Bitmask instructions
Implement i8x16.bitmask, i16x8.bitmask, i32x4.bitmask on arm.

Bug: v8:10308
Change-Id: Ifa2439522b74a310d98621104deda80f3dc25b33
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2101697
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66909}
2020-03-30 17:54:56 +00:00
Joyee Cheung
bbe518736e [class] remove stale TODO
The TODO of implementing static private brands is now obsolete
now that we have implemented static private methods by directly
desugaring the brand check into comparisons between the receiver
and the class constructor in
https://chromium-review.googlesource.com/c/v8/v8/+/1781011

Bug: v8:8330
Change-Id: Id2ab73ef13c67d626ecdfa6792252b5aea3aff45
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2095639
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/master@{#66908}
2020-03-30 15:02:41 +00:00
Milad Farazmand
c2ebc886df PPC/s390: [wasm-simd][liftoff] Implement mul on x64 and ia32
Port a3d2f7a4ef

R=zhiguo.zhou@intel.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: If5888f737b10afa00c96d13243e3147cfcfbbb3e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2127386
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#66907}
2020-03-30 13:53:45 +00:00
Clemens Backes
d9beae85d5 [wasm] Skip more debugging tests with --isolates
Debugging does not work reliably with multiple isolates involved. Thus
skip all tests that we saw flaking so far.

R=thibaudm@chromium.org

Bug: v8:10359, v8:10358
Change-Id: I119f8fdb19efb91f7d9fad0f510ffb68c646e784
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2126906
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66906}
2020-03-30 13:52:40 +00:00
Clemens Backes
6d9fcc31b3 [wasm][debug] Assign another bug to skipped test
The last test will not be fixed in the context of enabling debugging in
Liftoff. Instead, it will fail until we implement anyref in Liftoff.
Thus, assign the new tracking bug to it.

R=thibaudm@chromium.org

Bug: v8:10351, v8:10356
Change-Id: Ic184f390841b0994bf37bbf5f7ecc13e6cf1f957
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2124322
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66905}
2020-03-30 13:11:30 +00:00
Clemens Backes
788bffd532 [liftoff][debug] Fix step in from JS
When stepping in from JS, the stepping frame ID will not be set.
Instead of ensuring to set it properly, we can just skip the check for
the frame ID. It was needed before, when we didn't properly reset
stepping information. Now, it's redundant anyway.

Also, ensure that we don't redirect to the interpreter if the
--debug-in-liftoff flag is set.

Drive-by: Fix and clang-format some parts of the test (no semantic
change).

R=thibaudm@chromium.org, szuend@chromium.org

Bug: v8:10351
Change-Id: I58a3cd68937006c2d6b755a4465e793abcf8a20c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2124317
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66904}
2020-03-30 12:30:20 +00:00
Zhao Jiazhong
7a3bc09cd2 [mips][wasm-simd][liftoff] Implement mul.
Port a3d2f7a4ef
https://crrev.com/c/2113301

Change-Id: I2fefac5482e55c307226b417b51ab530b1f1d3ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2126588
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#66903}
2020-03-30 11:51:49 +00:00
Georg Neis
2aac556145 Make CreateDynamicFunction throw if disallowed
... instead of returning undefined.

Bug: chromium:1065094
Change-Id: I0b0397a8affd44b58e7f4777f32ba22bbd001ab1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2124837
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66902}
2020-03-30 10:59:49 +00:00