1. 26 Jun, 2018 1 commit
    • Sigurd Schneider's avatar
      [turbofan] Support kRootRegisterBias on all platforms · ba39d635
      Sigurd Schneider authored
      We had a kRootRegisterBias on x64 before. This CL ports the feature to
      all other platforms as well. The root register bias is helpful to adjust
      the value of the root register, which allows to better utilize signed
      immediate offset constants in load instructions.
      
      We currently use a separate add instruction to add kRootRegisterBias
      in the code that initializes the root register. This could be improved
      by adding a custom relocation mode ensuring that instead of the root
      address, the root address plus the bias is inserted (and in this way
      the add instruction can be omitted).
      
      Bug: v8:6666
      Change-Id: I55cf02ab85d11e3c6d0d83a8f7905dbf924890f1
      Reviewed-on: https://chromium-review.googlesource.com/1113539
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54023}
      ba39d635
  2. 21 Jun, 2018 1 commit
  3. 19 Jun, 2018 1 commit
  4. 05 Jun, 2018 1 commit
  5. 04 Jun, 2018 1 commit
  6. 28 May, 2018 1 commit
  7. 26 Apr, 2018 3 commits
  8. 27 Feb, 2018 1 commit
    • Mike Stanton's avatar
      Reland "[turbofan] Masking/poisoning in codegen (optimized code, arm64)" · 7c51c944
      Mike Stanton authored
      This is a reland of 800daded.
      
      Original change's description:
      > [turbofan] Masking/poisoning in codegen (optimized code, arm64)
      > 
      > This introduces masking of loads with speculation bit during code generation.
      > At the moment, this is done only under the
      > --branch-load-poisoning flag, and this CL enlarges the set of supported
      > platforms from {x64, arm} to {x64, arm, arm64}.
      > 
      > Overview of changes:
      > - new register configuration configuration with one register reserved for
      >   the speculation poison/mask (kSpeculationPoisonRegister).
      > - in codegen, we introduce an update to the poison register at the starts
      >   of all successors of branches (and deopts) that are marked as safety
      >   branches (deopts).
      > - in memory optimizer, we lower all field and element loads to PoisonedLoads.
      > - poisoned loads are then masked in codegen with the poison register.
      >   * only integer loads are masked at the moment.
      > 
      > Bug: chromium:798964
      > Change-Id: Ie6bc9c3bdac9998b0ef81f050a9c844399ca3ae4
      > Reviewed-on: https://chromium-review.googlesource.com/928724
      > Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      > Reviewed-by: Martyn Capewell <martyn.capewell@arm.com>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51576}
      
      Bug: chromium:798964
      Change-Id: I6c87d34c4e05fca0bd7f5447555133ecb0fb7a2e
      Reviewed-on: https://chromium-review.googlesource.com/939402Reviewed-by: 's avatarMartyn Capewell <martyn.capewell@arm.com>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51602}
      7c51c944
  9. 26 Feb, 2018 2 commits
    • Adam Klein's avatar
      Revert "[turbofan] Masking/poisoning in codegen (optimized code, arm64)" · 797d3df0
      Adam Klein authored
      This reverts commit 800daded.
      
      Reason for revert: breaks arm64 build
      
      Original change's description:
      > [turbofan] Masking/poisoning in codegen (optimized code, arm64)
      > 
      > This introduces masking of loads with speculation bit during code generation.
      > At the moment, this is done only under the
      > --branch-load-poisoning flag, and this CL enlarges the set of supported
      > platforms from {x64, arm} to {x64, arm, arm64}.
      > 
      > Overview of changes:
      > - new register configuration configuration with one register reserved for
      >   the speculation poison/mask (kSpeculationPoisonRegister).
      > - in codegen, we introduce an update to the poison register at the starts
      >   of all successors of branches (and deopts) that are marked as safety
      >   branches (deopts).
      > - in memory optimizer, we lower all field and element loads to PoisonedLoads.
      > - poisoned loads are then masked in codegen with the poison register.
      >   * only integer loads are masked at the moment.
      > 
      > Bug: chromium:798964
      > Change-Id: Ie6bc9c3bdac9998b0ef81f050a9c844399ca3ae4
      > Reviewed-on: https://chromium-review.googlesource.com/928724
      > Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      > Reviewed-by: Martyn Capewell <martyn.capewell@arm.com>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51576}
      
      TBR=rmcilroy@chromium.org,mvstanton@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,rodolph.perfetta@arm.com,martyn.capewell@arm.com,pierre.langlois@arm.com
      
      Change-Id: I1b5dad27f9620c7da3277602081f392de6221caf
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:798964
      Reviewed-on: https://chromium-review.googlesource.com/937861Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51578}
      797d3df0
    • Mike Stanton's avatar
      [turbofan] Masking/poisoning in codegen (optimized code, arm64) · 800daded
      Mike Stanton authored
      This introduces masking of loads with speculation bit during code generation.
      At the moment, this is done only under the
      --branch-load-poisoning flag, and this CL enlarges the set of supported
      platforms from {x64, arm} to {x64, arm, arm64}.
      
      Overview of changes:
      - new register configuration configuration with one register reserved for
        the speculation poison/mask (kSpeculationPoisonRegister).
      - in codegen, we introduce an update to the poison register at the starts
        of all successors of branches (and deopts) that are marked as safety
        branches (deopts).
      - in memory optimizer, we lower all field and element loads to PoisonedLoads.
      - poisoned loads are then masked in codegen with the poison register.
        * only integer loads are masked at the moment.
      
      Bug: chromium:798964
      Change-Id: Ie6bc9c3bdac9998b0ef81f050a9c844399ca3ae4
      Reviewed-on: https://chromium-review.googlesource.com/928724
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarMartyn Capewell <martyn.capewell@arm.com>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51576}
      800daded
  10. 21 Feb, 2018 2 commits
  11. 29 Jan, 2018 1 commit
  12. 26 Jan, 2018 1 commit
  13. 18 Jan, 2018 1 commit
  14. 15 Jan, 2018 1 commit
  15. 11 Jan, 2018 1 commit
    • Martyn Capewell's avatar
      Reland "[arm64] Switch jssp to csp" · c6ea0328
      Martyn Capewell authored
      This is a reland of 50baf934
      
      This fixes the number of expected instructions in MaybeCallEntryHookDelayed,
      only exposed by nosnap tests.
      
      Original change's description:
      > [arm64] Switch jssp to csp
      >
      > Switch stack pointer to using csp directly, making jssp redundant.
      >
      > Bug: v8:6644
      > Change-Id: I8e38eda50d56a25161b187c0a033608dd9f90239
      > Reviewed-on: https://chromium-review.googlesource.com/860097
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
      > Cr-Commit-Position: refs/heads/master@{#50487}
      
      Bug: v8:6644
      Change-Id: Ie9a969ccbf00fd7a7cff8f45b73cdb6bc4f17df9
      Reviewed-on: https://chromium-review.googlesource.com/860639Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
      Cr-Commit-Position: refs/heads/master@{#50513}
      c6ea0328
  16. 10 Jan, 2018 2 commits
  17. 04 Jan, 2018 1 commit
  18. 21 Dec, 2017 1 commit
    • Georgia Kouveli's avatar
      [arm64] Pad function arguments. · 5d10735e
      Georgia Kouveli authored
      This patch updates the instruction selector and code generator to pad arguments
      for arm64 and drop an even number of slots when dropping the arguments. It also
      updates the builtins that handle arguments. These changes need to be made at
      the same time.
      
      It also adds some tests for forwarding varargs, as this was affected by the
      builtin changes and the existing tests did not catch all issues.
      
      Bug: v8:6644
      Change-Id: I81318d1d1c9ab2568f84f2bb868d2a2d4cb56053
      Reviewed-on: https://chromium-review.googlesource.com/829933
      Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50259}
      5d10735e
  19. 05 Dec, 2017 1 commit
  20. 18 Oct, 2017 2 commits
  21. 13 Oct, 2017 1 commit
  22. 28 Sep, 2017 1 commit
  23. 27 Sep, 2017 1 commit
  24. 12 Sep, 2017 1 commit
  25. 14 Aug, 2017 1 commit
  26. 25 Jul, 2017 1 commit
  27. 13 Jul, 2017 1 commit
  28. 07 Jul, 2017 1 commit
  29. 06 Jul, 2017 1 commit
  30. 31 May, 2017 2 commits
    • neis's avatar
      [compiler] Delay allocation of code-embedded heap numbers. · 659e8f7b
      neis authored
      Instead of allocating and embedding certain heap numbers into the code
      during code assembly, emit dummies but record the allocation requests.
      Later then, in Assembler::GetCode, allocate the heap numbers and patch
      the code by replacing the dummies with the actual objects. The
      RelocInfos for the embedded objects are already recorded correctly when
      emitting the dummies.
      
      R=jarin@chromium.org
      BUG=v8:6048
      
      Review-Url: https://codereview.chromium.org/2900683002
      Cr-Commit-Position: refs/heads/master@{#45635}
      659e8f7b
    • martyn.capewell's avatar
      Reland of Reland of "ARM64: Add NEON support" · fc3f29d3
      martyn.capewell authored
      This reverts commit c5aad5f2
      The CL was reverted due to missing Chromium dependencies.
      
      This commit removes the simulator trace-based tests, and the associated header file dependencies, previously pulled in by DEPS. The NEON support now has only hand-written tests, in test-assembler-arm64.cc. The remaining tests can be added in a later patch.
      
      BUG=chromium:718439
      
      Original issue's description:
      > Reland "ARM64: Add NEON support"
      >
      > This reverts commit cc047635.
      > The CL was reverted due to a missing DEPS mirror.
      >
      > Original issue's description:
      > > ARM64: Add NEON support
      > >
      > > Add assembler, disassembler and simulator support for NEON in the ARM64 backend.
      > >
      > > BUG=
      > >
      > > Review-Url: https://codereview.chromium.org/2622643005
      > > Cr-Commit-Position: refs/heads/master@{#44306}
      >
      > BUG=
      >
      > Review-Url: https://codereview.chromium.org/2812573003
      > Cr-Commit-Position: refs/heads/master@{#44652}
      
      Review-Url: https://codereview.chromium.org/2896303003
      Cr-Commit-Position: refs/heads/master@{#45633}
      fc3f29d3
  31. 15 Apr, 2017 1 commit
  32. 13 Apr, 2017 1 commit
  33. 31 Mar, 2017 1 commit