1. 17 Mar, 2020 1 commit
  2. 31 Jan, 2020 1 commit
  3. 10 Jan, 2020 1 commit
  4. 13 Sep, 2019 2 commits
  5. 12 Sep, 2019 1 commit
  6. 11 Sep, 2019 3 commits
  7. 06 Sep, 2019 1 commit
  8. 05 Sep, 2019 2 commits
  9. 09 Aug, 2019 1 commit
  10. 17 Jul, 2019 2 commits
  11. 15 Jul, 2019 1 commit
    • Clemens Hammacher's avatar
      [wasm] Split jump table and lazy compile table · 56eaec9d
      Clemens Hammacher authored
      We had both jump slots and lazy compile slots in the same table. This
      increases the space per slot to the maximum of the two, even though we
      often do not use lazy compilation and could have smaller jump slots.
      This CL splits the two into two separate tables. The lazy compile table
      will only be created on demand, and will never be patched.
      The jump table now only contains jumps, and is more compact (which
      might improve performance because of improved locality).
      
      R=mstarzinger@chromium.org
      
      Bug: v8:9477
      Change-Id: Ie182873a1ec612f71d1b54447021a9a8f8ca59db
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1698393Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62707}
      56eaec9d
  12. 21 May, 2019 1 commit
  13. 17 Apr, 2019 1 commit
  14. 27 Mar, 2019 1 commit
  15. 01 Mar, 2019 1 commit
  16. 15 Feb, 2019 1 commit
  17. 13 Feb, 2019 1 commit
  18. 07 Feb, 2019 1 commit
  19. 17 Jan, 2019 1 commit
  20. 08 Aug, 2018 1 commit
  21. 07 Aug, 2018 2 commits
  22. 06 Aug, 2018 1 commit
  23. 06 Jul, 2018 1 commit
  24. 21 Jun, 2018 1 commit
  25. 20 Jun, 2018 2 commits
    • Predrag Rudic's avatar
      MIPS[64] Port "[wasm] Introduce jump table" · e0ddc6d2
      Predrag Rudic authored
      Port of 733b7c82
      
      Original 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}
      
      Change-Id: Ifa7c2abe89a6dc5dbb03a547db2fab68e292f344
      Reviewed-on: https://chromium-review.googlesource.com/1107630
      Commit-Queue: Sreten Kovacevic <sreten.kovacevic@mips.com>
      Reviewed-by: 's avatarIvica Bogosavljevic <ivica.bogosavljevic@mips.com>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53893}
      e0ddc6d2
    • Ben L. Titzer's avatar
      [asm] Rework Assembler::IsolateData into Assembler::Options · 4252d53f
      Ben L. Titzer authored
      This CL attempts to simplify the Assembler's dependency on the
      isolate, in particular on a global "serializer_enabled" mode contained
      therein. The "serializer_enabled" condition enabled and disabled
      a number of things in both the assemblers and macro assemblers. To
      make these dependencies explicit, the Assembler::IsolateData is refactored
      to be a proper Assembler::Options struct that controls specific assembler
      behaviors, with default settings easily computable from the isolate.
      
      This also helps make the contract for compiling WASM code more explicit
      (since WASM code needs to have reloc info recorded for external references)
      we can explicitly enable this recording without trying to "trick" the
      assembler using "serializer_enabled".
      
      R=jgruber@chromium.org
      CC=mstarzinger@chromium.org, herhut@chromium.org
      
      Change-Id: I7a8ba49df7b75b292d73ec2aa6e507c27a3d99c8
      Reviewed-on: https://chromium-review.googlesource.com/1105982
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53890}
      4252d53f
  26. 19 Jun, 2018 3 commits
    • Junliang Yan's avatar
      PPC/s390: [wasm] Introduce jump table · eafcdc96
      Junliang Yan authored
      Port 733b7c82
      
      Original Commit Message:
      
          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=clemensh@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG= v8:7758
      
      Change-Id: I1a370910ffa56dbdd609be6922067842a6adf1df
      Reviewed-on: https://chromium-review.googlesource.com/1105060
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53852}
      eafcdc96
    • Clemens Hammacher's avatar
      [wasm] Fix jump table for long jumps on arm · d5177a02
      Clemens Hammacher authored
      Direct jumps only work for offset up to 64 MB on arm. For longer jumps,
      use indirect branches (load target from constant pool into the pc
      register).
      
      R=mstarzinger@chromium.org
      CC=pierre.langlois@arm.com
      
      Bug: v8:7758
      Change-Id: I1cf66b7d1bfb62cfcd6b1619c02816909a1f651e
      Reviewed-on: https://chromium-review.googlesource.com/1105996
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53847}
      d5177a02
    • 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
  27. 18 Jun, 2018 2 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
  28. 14 Jun, 2018 1 commit