1. 02 Jul, 2018 1 commit
  2. 29 Jun, 2018 1 commit
  3. 28 Jun, 2018 3 commits
  4. 27 Jun, 2018 4 commits
  5. 26 Jun, 2018 1 commit
  6. 25 Jun, 2018 1 commit
  7. 22 Jun, 2018 3 commits
  8. 21 Jun, 2018 1 commit
    • Clemens Hammacher's avatar
      [wasm] Introduce builtin for grow_memory · edfcba04
      Clemens Hammacher authored
      This CL adds a builtin which receives an int32 argument and returns the
      int32 result. Internally, it checks whether the argument is in the
      valid smi range, then calls the runtime function with the smi argument
      and converts the return value back from smi to int32.
      This saves a lot of code in the wasm TF builder and in Liftoff.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:6600
      Change-Id: Icddcb020eae74c767a75090feb4939275432c007
      Reviewed-on: https://chromium-review.googlesource.com/1107711
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53946}
      edfcba04
  9. 20 Jun, 2018 2 commits
  10. 19 Jun, 2018 2 commits
    • Michael Starzinger's avatar
      [wasm] Use runtime stubs for coercions in wrappers. · 928e28cd
      Michael Starzinger authored
      This makes sure we use WebAssembly runtime stubs when performing value
      coercions in wrapper code that is compiled into {WasmCode}. It hence
      removes the last {RelocInfo::CODE_TARGET} references in {WasmCode}.
      
      R=clemensh@chromium.org
      BUG=v8:7424
      
      Change-Id: Ic96e541abe98f90796a6506b09ff99557743b6f7
      Reviewed-on: https://chromium-review.googlesource.com/1104462
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53846}
      928e28cd
    • Clemens Hammacher's avatar
      Reland "[wasm] Introduce jump table" · 5f56641b
      Clemens Hammacher authored
      This is a reland of 733b7c82.
      The arm64 bug was fixed in https://crrev.com/c/1105051.
      
      Original change's description:
      > [wasm] Introduce jump table
      >
      > This introduces the concept of a jump table for WebAssembly, which is
      > used for every direct and indirect call to any WebAssembly function.
      > For lazy compilation, it will initially contain code to call the
      > WasmCompileLazy builtin, where it passes the function index to be
      > called.
      > For non-lazy-compilation, it will contain a jump to the actual code.
      > The jump table allows to easily redirect functions for lazy
      > compilation, tier-up, debugging and (in the future) code aging. After
      > this CL, we will not need to patch existing code any more for any of
      > these operations.
      >
      > R=mstarzinger@chromium.org, titzer@chromium.org
      >
      > Bug: v8:7758
      > Change-Id: I45f9983c2b06ae81bf5ce9847f4542fb48844a4f
      > Reviewed-on: https://chromium-review.googlesource.com/1097075
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#53805}
      
      TBR=titzer@chromium.org,mstarzinger@chromium.org
      
      Bug: v8:7758
      Change-Id: I68555230c6db97e70f0b8fef784188f55ee04794
      Reviewed-on: https://chromium-review.googlesource.com/1105158
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53829}
      5f56641b
  11. 18 Jun, 2018 3 commits
    • Clemens Hammacher's avatar
      Revert "[wasm] Introduce jump table" · 33f6c3e1
      Clemens Hammacher authored
      This reverts commit 733b7c82.
      
      Reason for revert: breaks arm64 gc-stress: https://ci.chromium.org/buildbot/client.v8.ports/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/11659
      
      Original change's description:
      > [wasm] Introduce jump table
      > 
      > This introduces the concept of a jump table for WebAssembly, which is
      > used for every direct and indirect call to any WebAssembly function.
      > For lazy compilation, it will initially contain code to call the
      > WasmCompileLazy builtin, where it passes the function index to be
      > called.
      > For non-lazy-compilation, it will contain a jump to the actual code.
      > The jump table allows to easily redirect functions for lazy
      > compilation, tier-up, debugging and (in the future) code aging. After
      > this CL, we will not need to patch existing code any more for any of
      > these operations.
      > 
      > R=​mstarzinger@chromium.org, titzer@chromium.org
      > 
      > Bug: v8:7758
      > Change-Id: I45f9983c2b06ae81bf5ce9847f4542fb48844a4f
      > Reviewed-on: https://chromium-review.googlesource.com/1097075
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#53805}
      
      TBR=mstarzinger@chromium.org,titzer@chromium.org,clemensh@chromium.org,sreten.kovacevic@mips.com
      
      Change-Id: Iea358db2cf13656a65cf69a6d82cbbc10d3e7e1c
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7758
      Reviewed-on: https://chromium-review.googlesource.com/1105157Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53807}
      33f6c3e1
    • Clemens Hammacher's avatar
      [wasm] Introduce jump table · 733b7c82
      Clemens Hammacher authored
      This introduces the concept of a jump table for WebAssembly, which is
      used for every direct and indirect call to any WebAssembly function.
      For lazy compilation, it will initially contain code to call the
      WasmCompileLazy builtin, where it passes the function index to be
      called.
      For non-lazy-compilation, it will contain a jump to the actual code.
      The jump table allows to easily redirect functions for lazy
      compilation, tier-up, debugging and (in the future) code aging. After
      this CL, we will not need to patch existing code any more for any of
      these operations.
      
      R=mstarzinger@chromium.org, titzer@chromium.org
      
      Bug: v8:7758
      Change-Id: I45f9983c2b06ae81bf5ce9847f4542fb48844a4f
      Reviewed-on: https://chromium-review.googlesource.com/1097075
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53805}
      733b7c82
    • Clemens Hammacher's avatar
      [wasm] Register and release protected instructions only once · fffa3317
      Clemens Hammacher authored
      We currently have a system where the protected instructions are
      unregistered when the last instance dies, and registered again on the
      next instantiation. This is triggered by {WasmCompiledModule::Reset}.
      Since the reference to the {NativeModule} will move to the
      {WasmModuleObject}, and this object stays alive even if the last
      instance dies, this will become hard to maintain.
      It will also make it harder to share wasm code across isolates.
      This CL refactors this to register trap handler data once when the code
      is added to the {NativeModule}, and releases it if the code dies.
      
      R=mstarzinger@chromium.org
      CC=​eholk@chromium.org
      
      Bug: v8:5277
      Change-Id: I3f1b336095230b255f3849c271b37b62f2b96cd6
      Reviewed-on: https://chromium-review.googlesource.com/1103567
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53791}
      fffa3317
  12. 15 Jun, 2018 1 commit
  13. 14 Jun, 2018 1 commit
  14. 13 Jun, 2018 3 commits
  15. 12 Jun, 2018 3 commits
  16. 11 Jun, 2018 1 commit
    • Clemens Hammacher's avatar
      [wasm] Disable trap handlers within the same NativeModule · d5007545
      Clemens Hammacher authored
      The current implementation allocates a new {NativeModule} if trap
      handlers are disabled. Afterwards, all export wrappers need to be
      patched to call to the code objects in this new native module (this
      patching is done in {CodeSpecialization}).
      With the jump table, we want to get rid of this patching, hence we need
      to reuse the same jump table, hence we cannot allocate a new
      {NativeModule}. Instead, we should update the existing one with the new
      code.
      
      R=mstarzinger@chromium.org
      CC=eholk@chromium.org
      
      Bug: v8:7143, v8:7758
      Change-Id: If2f395d462752b9084ed1e5f0a81f71d400ccfca
      Reviewed-on: https://chromium-review.googlesource.com/1095262Reviewed-by: 's avatarEric Holk <eholk@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53645}
      d5007545
  17. 08 Jun, 2018 1 commit
  18. 07 Jun, 2018 1 commit
    • Eric Holk's avatar
      [wasm] Fall back on bounds checks when guarded memory unavailable · b984b70c
      Eric Holk authored
      This CL adds the simplest version of a trap handler fallback. At
      instantiation time, we check whether the module was compiled to use
      trap handlers and the memory is guarded. If the memory is not guarded
      but the module is supposed to use trap handlers, we recompile the
      module with bounds checks so that we can use an unguarded memory.
      
      The compiled module is replaced with a bounds checking version, meaning
      future instances from this module will also use bounds checks.
      
      Some likely desirable features that are current missing but can be
      added future CLs include:
      * Disabling trap handler mode entirely.
      * Recompiling all old instances so that trap handler and bounds checked
        code does not coexist in the same process.
      
      Bug: v8:7143
      
      Change-Id: I161fc0d544133b07dc4a93cc6af813369aaf3efe
      Reviewed-on: https://chromium-review.googlesource.com/1018182
      Commit-Queue: Eric Holk <eholk@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53566}
      b984b70c
  19. 06 Jun, 2018 1 commit
  20. 04 Jun, 2018 3 commits
  21. 24 May, 2018 1 commit
  22. 18 May, 2018 1 commit
  23. 16 May, 2018 1 commit