1. 02 May, 2019 1 commit
  2. 29 Apr, 2019 1 commit
  3. 25 Mar, 2019 1 commit
    • Clemens Hammacher's avatar
      [managed] Clean up {std::shared_ptr} use · dce80ce2
      Clemens Hammacher authored
      1) Pass {std::shared_ptr} by reference if a copy might not be needed.
         This applies both to accessors as well as constructing methods.
         This change often saves one atomic increment and decrement of the
         internal reference counter.
      2) Use {std::make_shared} directly to improve memory management of the
         {std::shared_ptr}. This saves one dynamic memory allocation on all
         known implementations.
      
      R=titzer@chromium.org
      
      Bug: v8:8834
      Change-Id: I1a951deb135082745885bc981662a8d6d6fb1a71
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532333Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60425}
      dce80ce2
  4. 19 Mar, 2019 2 commits
  5. 18 Mar, 2019 1 commit
  6. 13 Mar, 2019 1 commit
  7. 11 Mar, 2019 1 commit
  8. 15 Feb, 2019 1 commit
  9. 13 Feb, 2019 1 commit
  10. 12 Feb, 2019 1 commit
    • Andreas Haas's avatar
      [wasm] Generate code for the table.get and table.set instructions · 01dc5707
      Andreas Haas authored
      This CL contains the following changes:
      (1) Allocate memory for WasmTables in the WasmInstance.
          - We extend the WasmInstance by a FixedArray which stores
            references to the WasmTables.
      (2) Rename the name of the backing store of WasmTables from `functions`
          to `elements`.
          - The name `functions` just does not fit anyref tables.
      (3) Generate code with TurboFan for table.get and table.set.
      (4) Extend wasm-module-builder.js to be able to generate modules with
          multiple tables.
      (5) Add  mjsunit tests to test table.get and table.set.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:7581
      Change-Id: I44af4838ee7a37b394841a2f673ecae5734a4d1c
      Reviewed-on: https://chromium-review.googlesource.com/c/1463519
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59529}
      01dc5707
  11. 23 Jan, 2019 1 commit
  12. 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
  13. 09 Jan, 2019 1 commit
  14. 08 Jan, 2019 1 commit
    • Andreas Haas's avatar
      [wasm][anyref] Allow anyref values in WebAssembly.Global objects · 741f2312
      Andreas Haas authored
      This CL adds support for anyref in WebAssembly.Global objects. Note
      that the specification is not complete yet in this area.
      
      I did the following changes:
      - I renamed the `array_buffer` field of WasmGlobalObject to
        `untagged_buffer`
      - I added an additional field of type FixedArray, `tagged_buffer`.
        - In the constructor of WasmGlobalObject I allocate either the former
          or the latter, but not both.
      - In the WebAssembly.Global constructor I added special handling for
        the case where no initial value is provided. In that case I set the
        inital value to `null` and not to `undefined`.
      
      R=titzer@chromium.org
      
      Bug: v8:7581
      Change-Id: I7e4855d7e6c04a9bcdc7ebd450caca5819d060e2
      Reviewed-on: https://chromium-review.googlesource.com/c/1398226
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58625}
      741f2312
  15. 20 Dec, 2018 1 commit
  16. 19 Dec, 2018 1 commit
  17. 18 Dec, 2018 5 commits
  18. 17 Dec, 2018 4 commits
  19. 14 Dec, 2018 1 commit
  20. 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
  21. 11 Dec, 2018 1 commit
  22. 08 Dec, 2018 1 commit
  23. 03 Dec, 2018 1 commit
  24. 29 Nov, 2018 1 commit
  25. 25 Nov, 2018 1 commit
  26. 24 Nov, 2018 1 commit
  27. 23 Nov, 2018 1 commit
  28. 21 Nov, 2018 1 commit
    • Ross McIlroy's avatar
      [AsmJs] Avoid allocation of WasmModuleObject until instantiation. · ccd8073c
      Ross McIlroy authored
      Moves allocation of the WasmModuleObject for asm.js code out of SyncCompileTranslatedAsmJS
      since that is called when we are compiling the native context independent SharedFunctionInfo
      and the WasmModuleObject requires a native context. Instead save the members required to
      create the object in the AsmWasmData and create it during module instantiation. Note:
      since the Wasm module is an implementation detail for asm_wasm code and isn't exposed,
      this doeesn't have semantic change for asm.js code.
      
      As part of this change, the AsmWasmData is changed from a FixedArray to a dedicated
      struct. Some logic is also moved from module-compiler to wasm-engine to make the
      seperation between Wasm SyncCompile and AsmJS SyncCompile more clear.
      
      BUG=chromium:900535,v8:8395
      
      Change-Id: Ia48469c095b0688f210aa86e7430c9ab4ea4b26b
      Reviewed-on: https://chromium-review.googlesource.com/c/1345509
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57704}
      ccd8073c
  29. 12 Nov, 2018 1 commit
  30. 25 Oct, 2018 1 commit
  31. 10 Oct, 2018 1 commit
    • Ben L. Titzer's avatar
      [wasm] Use a tuple as the instance for JS imports · a2b34806
      Ben L. Titzer authored
      This CL refactors the implementation of WASM->JS import wrappers in order
      to make the wrapper code shareable. Instead of specializing to the import
      index, we use a tuple as the object ref in the both the import and indirect
      tables. The tuple allows the wrapper code to load both the calling
      instance and the target callable, rather than relying on code specialization.
      
      This requires some tricky codegen machinery, because WASM call descriptors
      expect an instance argument in a given register, yet the wrappers receive
      a tuple, the code generator must generate a prologue that loads the
      instance (and the callable), since it is not possible to express this at
      the graph level.
      
      R=mstarzinger@chromium.org
      CC=clemensh@chromium.org
      
      Change-Id: Id67e307f7f5089e776f5439a53b5aee4b76934b6
      Reviewed-on: https://chromium-review.googlesource.com/c/1268237
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56520}
      a2b34806
  32. 17 Sep, 2018 1 commit
    • Michael Starzinger's avatar
      Reland "[wasm] Implement handling of exported/imported exceptions." · 00741254
      Michael Starzinger authored
      This is a reland of a4105a43
      
      Original change's description:
      > [wasm] Implement handling of exported/imported exceptions.
      > 
      > This implements the proper semantics for matching exported/imported
      > exceptions by using the notion of an "exception tag" that is global to
      > the system. It can be used to match exceptions in one module against
      > exceptions declared and/or thrown in another module (or instance).
      > 
      > R=clemensh@chromium.org
      > TEST=mjsunit/wasm/exceptions-shared
      > BUG=v8:8091
      > 
      > Change-Id: I37586d7be5d5e6169b3418dfbc415b26dd4750dd
      > Reviewed-on: https://chromium-review.googlesource.com/1226976
      > Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55940}
      
      Bug: v8:8091
      Change-Id: Ib85f099b26a8323a8a00299b5aaeb05aaff3c3c6
      Reviewed-on: https://chromium-review.googlesource.com/1227975Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55959}
      00741254