1. 19 Jul, 2019 1 commit
  2. 21 Jun, 2019 1 commit
  3. 23 May, 2019 1 commit
  4. 22 May, 2019 1 commit
    • Andreas Haas's avatar
      [wasm][anyref] Cache export wrappers per signature · d56ee2e3
      Andreas Haas authored
      Up until now, we cached export wrappers per export index. With the
      anyref proposal potentially many more functions will need export
      wrappers, e.g. any function that is stored in a table, and any
      function accessed by the new ref.func instruction.
      
      With this CL, we change the caching scheme an do the caching per
      signature. Thereby we can guarantee that any export wrapper which
      potentially exists can be stored in the cache.
      
      For cctests which use wasm-run-utils, we don't know the size of the
      cache anymore ahead of time. However, we assume that no more than
      5 signatures will be used in any cctest. If this assumption is not
      true, we can just adjust the number.
      
      The cache is now accessed in all code paths where we need an export
      wrapper.
      
      Bug: chromium:962850
      
      Change-Id: I32df60dfa7801d1e71f7d837da091f388198af1f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615247
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61752}
      d56ee2e3
  5. 21 May, 2019 1 commit
  6. 07 May, 2019 1 commit
  7. 11 Apr, 2019 1 commit
  8. 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
  9. 03 Apr, 2019 1 commit
  10. 02 Apr, 2019 1 commit
  11. 27 Mar, 2019 1 commit
  12. 26 Mar, 2019 2 commits
  13. 21 Mar, 2019 2 commits
    • Ben Smith's avatar
      [wasm] Implement bulk memory table.copy in interpreter · 8a7f562e
      Ben Smith authored
      Most of the mjsunit/wasm/table-copy.js tests have been ported to
      cctests, so they can be tested with all execution tiers.
      
      Bug: v8:8965
      Change-Id: I448719be30a4b2bddb9e2cffb4c74d3134db2f50
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529548
      Commit-Queue: Ben Smith <binji@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60396}
      8a7f562e
    • Ben Smith's avatar
      [wasm] Call through dispatch table in interpreter · 1a88414c
      Ben Smith authored
      When running wasm tests, the interpreter previously used a static
      collection of function indexes stored in WasmTable to perform
      call_indirect calls internal to that module. This has the wrong behavior
      if the table is changed (via WasmTableObject::Set, `table.copy`, or
      `table.init`).
      
      This CL changes the cctests to always generate an intepreter entry for
      all functions, and stores those entries in the dispatch table. This
      allows us to use the same execution path as for non-testing code.
      
      The interpreter entry compiler needed to be changed to support
      multi-value returns too, since a 64-bit integer return value may be
      lowered to two 32-bit integer returns.
      
      Bug: v8:9016
      Change-Id: I277df21ffde5c2eee0b691fcc9bab2b1a43eeffc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1531137
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60380}
      1a88414c
  14. 20 Mar, 2019 1 commit
    • Ben Smith's avatar
      [wasm] Rename CheckCallViaJS with argument array · ea9e5a76
      Ben Smith authored
      WasmRunner provides CheckCallViaJS, which calls a wasm function through
      JS and checks its result.
      
      There are currently two overloads, one that takes a variable number of
      arguments, and another more general 4-argument version that takes an
      array of arguments. This means if you run code like:
      
          r.CheckCallViaJS(0, 0, 0, 0);
      
      The overload resolution kicks in, and chooses the general version, which
      will always segfault.
      
      This CL renames the general version to `CheckCallApplyViaJS` so the
      above example will call the variable-argument version instead.
      
      Change-Id: I14a742c467692e09e84f03504cec2306a794fc24
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529990Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Ben Smith <binji@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60345}
      ea9e5a76
  15. 15 Mar, 2019 1 commit
  16. 07 Mar, 2019 1 commit
  17. 20 Feb, 2019 1 commit
  18. 19 Feb, 2019 2 commits
  19. 29 Jan, 2019 2 commits
  20. 28 Jan, 2019 3 commits
  21. 17 Dec, 2018 1 commit
  22. 07 Dec, 2018 3 commits
  23. 05 Nov, 2018 1 commit
  24. 23 Oct, 2018 1 commit
  25. 29 Aug, 2018 1 commit
  26. 21 Aug, 2018 1 commit
  27. 09 Aug, 2018 1 commit
    • Ben L. Titzer's avatar
      [wasm] Add WasmFeatures to enable/detect features · 6aa2a253
      Ben L. Titzer authored
      This CL introduces a set of configuration options implemented as
      a struct of booleans that together comprise the set of enabled
      or detected features. The configuration options replace command-line
      flags that were checked deep in the implementation. As such, it is
      necessary to plumb them through multiple levels of abstraction.
      
      R=ahaas@chromium.org
      CC=mstarzinger@chromium.org
      BUG=chromium:868844
      
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: I1b82f5826e4fd263f68e8cafcd923bac5818a637
      Reviewed-on: https://chromium-review.googlesource.com/1163670Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55018}
      6aa2a253
  28. 02 Aug, 2018 1 commit
    • Ben L. Titzer's avatar
      [cleanup] Remove redundant wasm:: namespace prefixes · 99de47f1
      Ben L. Titzer authored
      The wasm/ directory is inconsistent in many places, often within the
      same file. For all code that exists in a v8::internal::wasm namespace,
      this CL removes any wasm:: qualifiers, which is especially helpful
      since most types are already Wasm-named, such as WasmCode, WasmModule,
      etc. Namespace qualifiers are redundant inside the wasm:: namespace and
      thus go against the main point of using namespaces. Removing the
      qualifiers for non Wasm-named classes also makes the code somewhat more
      future-proof, should we move some things that are not really WASM-specific
      (such as ErrorThrower and Decoder) into a higher namespace.
      
      R=clemensh@chromium.org,mstarzinger@chromium.org
      
      Change-Id: Ibff3e1e93c64c12dcb53c46c03d1bfb2fb0b7586
      Reviewed-on: https://chromium-review.googlesource.com/1160232
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54862}
      99de47f1
  29. 20 Jul, 2018 1 commit
  30. 12 Jul, 2018 1 commit
  31. 27 Jun, 2018 1 commit
  32. 26 Jun, 2018 1 commit