1. 03 Jan, 2018 2 commits
  2. 02 Jan, 2018 3 commits
    • Pierre Langlois's avatar
      [turbofan] Delete unused OutOfLineCode classes. · 456a428c
      Pierre Langlois authored
      These classes were only used to implement checked loads.
      
      Bug: 
      Change-Id: Icd3aa6f22ffe7a48e5bea98b0a44a58905788c80
      Reviewed-on: https://chromium-review.googlesource.com/847578Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
      Cr-Commit-Position: refs/heads/master@{#50328}
      456a428c
    • Pierre Langlois's avatar
      [cctest] Support testing Simd128 moves and swaps · 0761b55d
      Pierre Langlois authored
      Extend the code-generator tests to cover AssembleMove and AssembleSwap with
      Simd128 registers and stack slots, for targets that support them.
      
      For this to work however, we need support for passing Simd128 stack parameters
      in TurboFan which this patch implements for Arm and x86. PPC and S390 both do
      not support the Simd128 representation and it appears MIPS and MIPS64's
      implementation of AssembleMove and AssembleSwap do not support it either.
      
      As per the design of the tests, the set of values to perform moves on are
      represented in a FixedArray of Smis (for kTagged) and HeapNumbers (for kFloat32
      and kFloat64). They are converted to raw values for the moves to be performed
      on, to be then converted back into a FixedArray. For the kSimd128
      representation, we represent values as a FixedArray of 4 Smis, each representing
      a lane. They are converted to a raw Simd128 vector using the `I32x4ReplaceLane`
      and `I32x4ExtractLane` operations.
      
      Finally, these tests need Simd128 variables mixed with the CodeStubAssembler
      which is not a use-case officially supported. And as a result, the `RecordWrite`
      stub does not guarantee to preserve Simd128 registers. To get around this, we
      have to be careful to skip write barriers when dealing with Simd128 parameters
      inside the "teardown" function, and we've had to move all allocations to the
      "setup" function.
      
      Thanks to this, we are able to catch bugs such as this one
      https://bugs.chromium.org/p/v8/issues/detail?id=6843.
      
      Bug: v8:6848
      Change-Id: I8787d6339cdbfcd9356c5e8995925f0b45c562fa
      Reviewed-on: https://chromium-review.googlesource.com/728599
      Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50326}
      0761b55d
    • Clemens Hammacher's avatar
      [turbofan] Remove CheckedLoad operation · 0f5328a3
      Clemens Hammacher authored
      After https://crrev.com/c/832457, CheckedLoad is not being used any
      more. Thus, remove it from the TurboFan backend and from all tests.
      CheckedStore was already removed in https://crrev.com/c/822570.
      
      R=jarin@chromium.org
      CC=titzer@chromium.org, mstarzinger@chromium.org
      
      Change-Id: I2eeec2f4a9d0a10067db5cc25ec41366ae85e917
      Reviewed-on: https://chromium-review.googlesource.com/832459
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50323}
      0f5328a3
  3. 29 Dec, 2017 3 commits
  4. 27 Dec, 2017 2 commits
  5. 22 Dec, 2017 7 commits
  6. 21 Dec, 2017 5 commits
  7. 20 Dec, 2017 4 commits
    • Clemens Hammacher's avatar
      [wasm] Fix one more 32 bit 64 bit promotion · d418f68d
      Clemens Hammacher authored
      And add a helper method to convert an uint32 value to uintptr (e.g. a
      noop on 32 bit and Uint32ToUint64 conversion on 64 bit).
      
      R=ahaas@chromium.org
      
      Change-Id: Ibc6731bc7ddaf8ceaa27e9e8fbec916d184d9ad4
      Reviewed-on: https://chromium-review.googlesource.com/836618
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50246}
      d418f68d
    • Georgia Kouveli's avatar
      Reland "[arm64] Preparation for padding of arguments" · f6879033
      Georgia Kouveli authored
      This is a reland of bcf11729
      
      The test was timing out in no snapshot builds, as each CodeAssemblerTester
      creates a new Context. Reduced the random iterations significantly.
      
      Original change's description:
      > [arm64] Preparation for padding of arguments
      >
      > As part of JSSP removal, we need to align the arguments passed to functions
      > on the stack, by adding a padding slot when the total number of arguments
      > is odd.
      >
      > This patch introduces the kPadArguments flag (which is currently set to
      > false for all architectures), which will control padding of arguments in
      > architecture-independent parts of the code (deoptimizer, instruction
      > selector).
      >
      > It also adds some executable tests for tail calls with various stack
      > parameter counts on the caller and callee sides.
      >
      > This will be turned on for arm64 together with arm64-specific changes to
      > the code generator, the MacroAsembler and the builtins, in a later patch.
      >
      > Bug: v8:6644
      > Change-Id: I79a5c149123fe8130cedd1ccffec3d9b50361e08
      > Reviewed-on: https://chromium-review.googlesource.com/806554
      > Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#50134}
      
      TBR=jarin@chromium.org
      
      Bug: v8:6644
      Change-Id: I795877ed9791e126ffac6841dbbb65189e95d207
      Reviewed-on: https://chromium-review.googlesource.com/833046
      Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50238}
      f6879033
    • Andreas Haas's avatar
      [arm][turbofan] Implement on-stack returns. · 9c7b6e1e
      Andreas Haas authored
      This is the implementation of crrev.com/c/766371 for arm.
      
      Original description:
      
      Add the ability to return (multiple) return values on the stack:
      
      - Extend stack frames with a new buffer region for return slots.
        This region is located at the end of a caller's frame such that
        its slots can be indexed as caller frame slots in a callee
        (located beyond its parameters) and assigned return values.
      - Adjust stack frame constructon and deconstruction accordingly.
      - Extend linkage computation to support register plus stack returns.
      - Reserve return slots in caller frame when respective calls occur.
      - Introduce and generate architecture instructions ('peek') for
        reading back results from return slots in the caller.
      - Aggressive tests.
      - Some minor clean-up.
      
      R=v8-arm-ports@googlegroups.com
      
      Change-Id: I7d61424a184d5778baf1d1270013f4e0c7ec68b4
      Reviewed-on: https://chromium-review.googlesource.com/836608Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50237}
      9c7b6e1e
    • Jaroslav Sevcik's avatar
      [compiler] Introduce a new node for array index masking. · eab08dae
      Jaroslav Sevcik authored
      Bug: 
      Change-Id: Idf3829f59cebe5c68b011ab6a0fa766ca2bad359
      Reviewed-on: https://chromium-review.googlesource.com/832448
      Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50231}
      eab08dae
  8. 19 Dec, 2017 8 commits
  9. 18 Dec, 2017 6 commits