1. 02 May, 2019 1 commit
  2. 30 Apr, 2019 1 commit
  3. 29 Mar, 2019 1 commit
    • Joey Gouly's avatar
      Reland "[liftoff] Introduce emit_{i64,i32}_add with immediate" · 138d2dfc
      Joey Gouly authored
      This is a reland of e3be96d6
      
      The failure was due to not sign extendint the immediate for 64-bit adds on
      32-bit platforms.
      
      Original change's description:
      > [liftoff] Introduce emit_{i64,i32}_add with immediate
      >
      > This allows immediates to be encoded directly into instructions, rather than
      > mov-ing constants to registers first.
      >
      > This patch only changes emit_{i64,i32}_add, other emit_ functions will be changed once
      > this approach has been approved.
      >
      > Bug: v8:9038
      >
      > Change-Id: I0c7306c2da0dae26f1c6e2465a9565adbf0bda84
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524482
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60506}
      
      Bug: v8:9038
      Change-Id: I7dd1112827d037d900fd36cce71206388642605b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543730Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60521}
      138d2dfc
  4. 28 Mar, 2019 2 commits
  5. 31 Jan, 2019 1 commit
  6. 28 Jan, 2019 1 commit
  7. 21 Jan, 2019 1 commit
    • Clemens Hammacher's avatar
      [Liftoff][arm] Avoid use of temp registers · ce2bfb8e
      Clemens Hammacher authored
      The temp registers might be needed by the assembler, so avoid using them
      in LiftoffAssembler. Use Liftoff cache registers instead. This might
      introduce additional spills if all registers are in use, but this is
      unlikely.
      
      This also simplifies the logic to ensure non-aliasing of certain
      registers.
      
      R=ahaas@chromium.org
      
      Bug: chromium:922933, v8:6600
      Change-Id: Ie929d9de0b6f4f41c6117d820b6a367dd0a342f7
      Reviewed-on: https://chromium-review.googlesource.com/c/1424862Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58961}
      ce2bfb8e
  8. 16 Jan, 2019 1 commit
    • Clemens Hammacher's avatar
      [assembler] Allow to pass custom buffer implementations · 1a3aab51
      Clemens Hammacher authored
      When generating an Assembler, you currently have two choices: Either
      let the Assembler allocate a growable internal buffer, which is owned
      by the Assembler. Or provide an externally allocated buffer, which
      cannot grow.
      This CL changes this interface to allow providing any implementation of
      a buffer. The provided buffer can be a view to an externally owned
      buffer, which still can grow.
      This will be used to split WebAssembly compilation and code submission.
      The buffer needs to be able to grow, but cannot be owned by the
      Assembler because it has to survive until the code is submitted.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:8689
      Change-Id: Ib6c5ebffc8b71d0778944abac34f02c5cc7dbd79
      Reviewed-on: https://chromium-review.googlesource.com/c/1411347
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58848}
      1a3aab51
  9. 11 Jan, 2019 1 commit
  10. 10 Jan, 2019 1 commit
  11. 03 Jan, 2019 1 commit
  12. 02 Jan, 2019 1 commit
  13. 27 Dec, 2018 1 commit
  14. 21 Dec, 2018 1 commit
  15. 19 Dec, 2018 2 commits
  16. 03 Dec, 2018 1 commit
  17. 29 Nov, 2018 1 commit
  18. 28 Nov, 2018 2 commits
  19. 26 Nov, 2018 2 commits
  20. 23 Nov, 2018 5 commits
  21. 22 Nov, 2018 3 commits
  22. 09 Nov, 2018 1 commit
  23. 14 Sep, 2018 1 commit
  24. 12 Sep, 2018 3 commits
    • Clemens Hammacher's avatar
      Reland^2 "[Liftoff] Implement f32.copysign and f64.copysign" · a39fcbd2
      Clemens Hammacher authored
      This is a reland of 6afe7d18.
      The reason for the revert is fixed in https://crrev.com/c/1219633.
      
      Original change's description:
      > [Liftoff] Implement f32.copysign and f64.copysign
      >
      > These are two of the few missing instructions. This CL implements them
      > for ia32 and x64, and bails out on other platforms.
      > On x64, we are using the BTR instruction since we cannot have 64-bit
      > immediates.
      >
      > Drive-by: Fix naming of existing bt/bts instructions on x64.
      >
      > R=titzer@chromium.org
      >
      > Bug: v8:6600
      > Change-Id: Ib8532ca811160cd61f4ba7c06b04ce093861c872
      > Reviewed-on: https://chromium-review.googlesource.com/1174383
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55780}
      
      Bug: v8:6600
      Change-Id: Ie14ba3a14848ba8e67f97e66d3379178f35dea40
      
      TBR=titzer@chromium.org
      
      Change-Id: Ie14ba3a14848ba8e67f97e66d3379178f35dea40
      Reviewed-on: https://chromium-review.googlesource.com/1219693Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55817}
      a39fcbd2
    • Clemens Hammacher's avatar
      Revert "Reland "[Liftoff] Implement f32.copysign and f64.copysign"" · 1c860ca4
      Clemens Hammacher authored
      This reverts commit f0f5f877.
      
      Reason for revert: Merge conflict (does not compile).
      
      Original change's description:
      > Reland "[Liftoff] Implement f32.copysign and f64.copysign"
      > 
      > This is a reland of 6afe7d18.
      > The reason for the revert is fixed in https://crrev.com/c/1219633.
      > 
      > Original change's description:
      > > [Liftoff] Implement f32.copysign and f64.copysign
      > >
      > > These are two of the few missing instructions. This CL implements them
      > > for ia32 and x64, and bails out on other platforms.
      > > On x64, we are using the BTR instruction since we cannot have 64-bit
      > > immediates.
      > >
      > > Drive-by: Fix naming of existing bt/bts instructions on x64.
      > >
      > > R=titzer@chromium.org
      > >
      > > Bug: v8:6600
      > > Change-Id: Ib8532ca811160cd61f4ba7c06b04ce093861c872
      > > Reviewed-on: https://chromium-review.googlesource.com/1174383
      > > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#55780}
      > 
      > Bug: v8:6600
      > Change-Id: I4baeec6b02b17450988cfa7fedd5037f9cfe1638
      > Reviewed-on: https://chromium-review.googlesource.com/1219508
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55812}
      
      TBR=titzer@chromium.org,clemensh@chromium.org
      
      Change-Id: Iae075a8f5225f1678691698bf3a304faa5ae2aab
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6600
      Reviewed-on: https://chromium-review.googlesource.com/1220747Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55813}
      1c860ca4
    • Clemens Hammacher's avatar
      Reland "[Liftoff] Implement f32.copysign and f64.copysign" · f0f5f877
      Clemens Hammacher authored
      This is a reland of 6afe7d18.
      The reason for the revert is fixed in https://crrev.com/c/1219633.
      
      Original change's description:
      > [Liftoff] Implement f32.copysign and f64.copysign
      >
      > These are two of the few missing instructions. This CL implements them
      > for ia32 and x64, and bails out on other platforms.
      > On x64, we are using the BTR instruction since we cannot have 64-bit
      > immediates.
      >
      > Drive-by: Fix naming of existing bt/bts instructions on x64.
      >
      > R=titzer@chromium.org
      >
      > Bug: v8:6600
      > Change-Id: Ib8532ca811160cd61f4ba7c06b04ce093861c872
      > Reviewed-on: https://chromium-review.googlesource.com/1174383
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55780}
      
      Bug: v8:6600
      Change-Id: I4baeec6b02b17450988cfa7fedd5037f9cfe1638
      Reviewed-on: https://chromium-review.googlesource.com/1219508Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55812}
      f0f5f877
  25. 11 Sep, 2018 2 commits
  26. 04 Sep, 2018 1 commit
    • Clemens Hammacher's avatar
      [Liftoff] Load memory size as ptr-sized int · 0e460c25
      Clemens Hammacher authored
      Since https://crrev.com/c/1112003, the memory size is stored as size_t
      instead of uint32_t in order to support 4GB memories.
      Loading it as uint32_t only works on little-endian systems, and only for
      memory sizes <4GB. This CL fixes this to load and process the memory
      size as pointer-sized value.
      Additional platform-specific methods are added to perform a shift by a
      constant value. This can be reused to improve the generated code for
      other shifts.
      
      R=titzer@chromium.org
      
      Bug: v8:8130, v8:6600
      Change-Id: Ifa688a3ed0e2809190571f24bdf47a7f53880b3d
      Reviewed-on: https://chromium-review.googlesource.com/1203950
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55609}
      0e460c25
  27. 10 Aug, 2018 1 commit