1. 07 Apr, 2021 1 commit
  2. 01 Apr, 2021 2 commits
  3. 30 Mar, 2021 1 commit
  4. 29 Mar, 2021 2 commits
  5. 25 Mar, 2021 3 commits
  6. 24 Mar, 2021 2 commits
    • Andreas Haas's avatar
      [wasm][liftoff] Fix reftype parameter handling · 7d844bdb
      Andreas Haas authored
      LiftoffCompiler::ProcessParameter assumed that by processing parameters
      in the order of their index, register parameters get
      processed first, and that for processing stack parameters it can already
      use all registers as temp registers. This is not true with reference
      type parameters, because registers always first get assigned to value
      type parameters even when there is a reference type parameter with a
      lower index. Because of this incorrect assumption register parameters
      were overwritten by reference type parameters on the stack that got
      processed first.
      
      With this CL, only those registers get used as temp registers for
      reference type parameters that are not used for parameters.
      
      CC=jkummerow@chromium.org, clemensb@chromium.org
      R=thibaudm@chromium.org
      
      Bug: v8:11596
      Change-Id: I30ed7f073147df0bd81b9ef4d2b2a54d7badc937
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784560
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73635}
      7d844bdb
    • Thibaud Michaud's avatar
      [wasm][interpreter] Fix max stack height for implicit rethrow · f035b2f0
      Thibaud Michaud authored
      Take into account that the implicit rethrow at the end of a try block
      might unpack the exception values, and reserve enough stack space for
      them.
      This is normally done for all throwing opcodes before the switch, but
      'end' is not considered a throwing opcode, which is why it needs special
      handling.
      
      Also clean up by factorizing the rethrow logic.
      
      R=ahaas@chromium.org
      
      Bug: chromium:1186795
      Change-Id: I6fde1b88085db95a9cab32c2c8e0ed1d28b64a32
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783024Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73627}
      f035b2f0
  7. 22 Mar, 2021 7 commits
  8. 19 Mar, 2021 2 commits
    • Clemens Backes's avatar
      [wasm][memory64] Fix typing of memory.grow · 81008e17
      Clemens Backes authored
      If memory64 is enabled, memory.grow should consume and return an i64
      instead of i32.
      This CL implements this for both TurboFan and Liftoff, and adds
      validation and execution tests at different layers.
      
      R=manoskouk@chromium.org
      
      Bug: v8:10949
      Change-Id: I0b725dbd0d5767bda4609747c1f4aad163c35304
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773800Reviewed-by: 's avatarManos Koukoutos <manoskouk@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73542}
      81008e17
    • Benedikt Meurer's avatar
      [wasm][inspector] Don't use `Script::source_url` to store URL. · c0ee8f90
      Benedikt Meurer authored
      The `Script::source_url` field holds the value of the magic
      `//# sourceURL` comment if found, and the `Script::name` field is
      supposed to hold the actual name of the resource (as provided by
      the embedder ideally), in case of Chromium that's supposed to be
      the URL (in case of Node.js it's often the local path).
      
      Using `source_url` worked by chance so far, but for loading DWARF
      symbol files correctly we need the initiator (which we pick from
      the embedderName of the Script as reported to DevTools). More
      importantly, the partial handling of `//# sourceURL` in V8 is a
      layering violation and causes trouble in DevTools, i.e. when users
      put relative paths here. So as part of refactoring and correctifying
      the handling of `//# sourceURL`, we need to make sure that the embedder
      provided name (the URL in case of Chromium) is always stored in the
      `Script::name` field.
      
      Bug: chromium:1183990, chromium:974543, chromium:1174507
      Change-Id: I32e11def2b9b52be11bd2e0e64a2ab6bdcf5e52d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773584
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73536}
      c0ee8f90
  9. 18 Mar, 2021 2 commits
  10. 17 Mar, 2021 2 commits
  11. 16 Mar, 2021 1 commit
  12. 10 Mar, 2021 1 commit
  13. 09 Mar, 2021 2 commits
  14. 08 Mar, 2021 2 commits
  15. 05 Mar, 2021 2 commits
  16. 04 Mar, 2021 4 commits
  17. 03 Mar, 2021 2 commits
  18. 02 Mar, 2021 2 commits
    • Nico Hartmann's avatar
      Revert "[wasm][liftoff][eh] Implement catch_all" · 0f8b5c5d
      Nico Hartmann authored
      This reverts commit 6e234e9d.
      
      Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20CFI/4795/overview
      
      Original change's description:
      > [wasm][liftoff][eh] Implement catch_all
      >
      > Inline a catch handler after each potentially throwing call. The handler
      > just merges values into the actual catch environment and then jumps to
      > the catch body.
      >
      > This automatically adds support for unwind, which also uses the
      > "CatchAll" interface method.
      >
      > Many tests can be written either with "catch" or with "catch_all".
      > Duplicate them to get coverage for both.
      >
      > R=​clemensb@chromium.org
      >
      > Bug: v8:11453
      > Change-Id: I789ad44b8d1e496f026157d5c37a12004a8b37e3
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2726497
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73129}
      
      Bug: v8:11453
      Change-Id: Ica7fa708962d9ae4b9fbf7473963d187062227ca
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2727266
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73131}
      0f8b5c5d
    • Thibaud Michaud's avatar
      [wasm][liftoff][eh] Implement catch_all · 6e234e9d
      Thibaud Michaud authored
      Inline a catch handler after each potentially throwing call. The handler
      just merges values into the actual catch environment and then jumps to
      the catch body.
      
      This automatically adds support for unwind, which also uses the
      "CatchAll" interface method.
      
      Many tests can be written either with "catch" or with "catch_all".
      Duplicate them to get coverage for both.
      
      R=clemensb@chromium.org
      
      Bug: v8:11453
      Change-Id: I789ad44b8d1e496f026157d5c37a12004a8b37e3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2726497Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73129}
      6e234e9d