1. 01 Jun, 2021 1 commit
  2. 05 May, 2021 1 commit
    • Manos Koukoutos's avatar
      [wasm][test] Initializer exprs. for element segments · 8d6da6d5
      Manos Koukoutos authored
      Element segments and tables in tests used an ad-hoc mechanism to
      describe the different types of initializer expressions, e.g. an number
      which could denote either the value of a constant or the index of a
      global. This CL tidies up and generalizes the test infrastructure by
      directly using WasmInitExpr in those cases.
      
      Additional changes:
      - Introduce WasmElemSegment class.
      - Remove obsolete --experimental-wasm-bulk-memory flag from tests.
      - Rename WasmInitExpr.type -> kind.
      - Remove dependency of wasm-module-builder from mjsunit.js (except in
        assertTraps).
      
      Change-Id: I716254a04ceea9ceb8ac6b848e12e1637f618f0d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857638
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74368}
      8d6da6d5
  3. 27 Mar, 2020 1 commit
  4. 26 Mar, 2020 1 commit
  5. 03 Dec, 2019 1 commit
  6. 21 Nov, 2019 1 commit
  7. 20 Nov, 2019 1 commit
  8. 08 Oct, 2019 1 commit
  9. 21 May, 2019 1 commit
  10. 16 Apr, 2019 1 commit
    • Ben Smith's avatar
      [wasm][bulk-memory] Check segment bounds lazily · 34c8443c
      Ben Smith authored
      The bulk memory proposal changed behavior of segment initialization
      during instantiation. Previously, all segments would be bounds-checked,
      after which the segments would be initialized.
      
      The bulk memory proposal removes the up-front check, and always
      initializes active segments in order, starting with element segments and
      then continuing with data segments. Each active segment is initialized
      as-if they were being initialized with the `memory.init` and
      `table.init` instructions, so an out-of-bounds initialization may still
      modify the memory or table partially.
      
      Bug: v8:8892
      Change-Id: I472fca2401e07d60b288f0cc745629a451b31088
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1565033
      Commit-Queue: Ben Smith <binji@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60885}
      34c8443c
  11. 05 Apr, 2019 1 commit
    • Ben Smith's avatar
      Reland "[wasm] Implement table.init for interpreter" · 9010424f
      Ben Smith authored
      This is a reland of 63608968
      
      The previous CL failed on Windows, but it was a general bug. The
      dropped_elem_segments was not being set on the instance properly in
      cctests, so`table.init` instructions would fail by reading uninitialized
      data.
      
      I took this opportunity to also add an implementation of
      `elem.drop` in the interpreter, and ported the JS tests for those too.
      
      Original change's description:
      > [wasm] Implement table.init for interpreter
      >
      > This also fixes CheckCallViaJS when a trap occurs. In that case, the
      > trap callback is called instead of an exception being thrown, so if it
      > isn't handled, a bogus result will be returned instead.
      >
      > Bug: v8:8965
      > Change-Id: I560e89f353756df23c062fb8c9484d9971c19253
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1539078
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Commit-Queue: Ben Smith <binji@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60473}
      
      Bug: v8:8965
      Change-Id: Ia547d9530b7ca67fde5bd94539f49153b796e82d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547142
      Commit-Queue: Ben Smith <binji@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60664}
      9010424f
  12. 15 Mar, 2019 1 commit
  13. 13 Mar, 2019 1 commit
  14. 05 Mar, 2019 1 commit
  15. 31 Jan, 2019 2 commits
  16. 30 Jan, 2019 1 commit
  17. 23 Jan, 2019 1 commit
  18. 16 Jan, 2019 1 commit
  19. 15 Jan, 2019 1 commit
    • Ben L. Titzer's avatar
      [wasm] Implement table.drop · 97cdf35f
      Ben L. Titzer authored
      The table.drop bytecode "drops" the backing storage for an element
      initializer. In the V8 implementation, this is a nop, other than
      updating a per-instance boolean array so that two drops of the same
      segment or a drop of an active segment will trap.
      
      This is implemented with inline code in TurboFan in order to be symmetric
      to memory.drop, but could as easily be a runtime call to be supported in
      Liftoff.
      
      R=mstarzinger@chromium.org
      CC=​binji@chromium.org
      BUG=v8:7747
      
      Change-Id: Ic017398eaa764dd3a9ff19523453ff7142c9abf6
      Reviewed-on: https://chromium-review.googlesource.com/c/1408996Reviewed-by: 's avatarBen Smith <binji@chromium.org>
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58817}
      97cdf35f
  20. 14 Jan, 2019 1 commit
    • Ben L. Titzer's avatar
      [wasm] Add runtime call plumbing for Table operations. · 6d3d8f7b
      Ben L. Titzer authored
      This CL adds two new runtime calls for table operations:
        - Runtime_WasmTableInit
        - Runtime_WasmTableCopy
      
      These runtime calls (will) implement the semantics for the corresponding
      bytecodes from the bulk memory proposal. The actual implementation
      of these runtime calls will be done in further CLs.
      
      The third table operation, table.drop, will be implemented with inline
      code, similar to memory.drop. This is also be done in a further CL.
      
      R=mstarzinger@chromium.org
      CC=​binji@chromium.org
      BUG=v8:7747
      
      Change-Id: I498aa054329baf9f72ae55d245b12c3ccd4157b7
      Reviewed-on: https://chromium-review.googlesource.com/c/1408994
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58786}
      6d3d8f7b
  21. 12 Dec, 2018 1 commit
    • Ben Smith's avatar
      [wasm] Implement memory.init and memory.drop · 4084185b
      Ben Smith authored
      `memory.init` copies bytes from a passive data segment to linear memory.
      
      `memory.drop` is an instruction that informs the wasm VM that the instance no
      longer needs access to the passive data segment.
      
      Information about the passive data segments, including their contents, length,
      and whether they are dropped, is stored in the `WasmInstanceObject` as primitive
      arrays.
      
      Bug: v8:7747
      Change-Id: I1515c8868c9be227743456a539126c15280b5365
      Reviewed-on: https://chromium-review.googlesource.com/c/1370691Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Ben Smith <binji@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58196}
      4084185b
  22. 10 Dec, 2018 1 commit
  23. 27 Nov, 2018 1 commit
  24. 12 Nov, 2018 1 commit