1. 07 Nov, 2017 2 commits
  2. 06 Nov, 2017 1 commit
  3. 03 Nov, 2017 1 commit
  4. 02 Nov, 2017 1 commit
  5. 30 Oct, 2017 2 commits
  6. 27 Oct, 2017 2 commits
  7. 26 Oct, 2017 2 commits
  8. 25 Oct, 2017 1 commit
  9. 20 Oct, 2017 2 commits
  10. 18 Oct, 2017 3 commits
    • Clemens Hammacher's avatar
      [arm] [simulator] Fix implementation of vabs and vneg · b41b493b
      Clemens Hammacher authored
      They did not preserve the bit pattern of nans before. Now they do.
      Also, add some tests for these instructions.
      
      R=ahaas@chromium.org, rodolph.perfetta@arm.com
      
      Bug: v8:6947
      Change-Id: I189720cd47e1768194567a41371fc9586b414c45
      Reviewed-on: https://chromium-review.googlesource.com/722979
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarRodolph Perfetta <rodolph.perfetta@arm.com>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48672}
      b41b493b
    • Pierre Langlois's avatar
      Simplify DoubleToI stub. · 9f4f3c28
      Pierre Langlois authored
      The DoubleToI stub is no longer called outside of TurboFan, and always in the
      same way:
      
        - The parameter is on top of the stack.
        - The stub is always called in a slow path.
        - It truncates.
      
      Therefore, we can simplify it to only support this case and remove dead
      code.
      
      On top of this, since the stub is always considered to be on a slow path for all
      backends, this patch takes the opportunity to remove the `skip_fastpath`
      optimisation. This would generate a stub which does not handle all inputs,
      assuming that the backend already handled some of the inputs in a fast
      path. Removing this allows the stub to have the same behaviour on all targets.
      
      On Arm, this patch reworks the stub a little. We could use ip instead of saving
      and restoring a register on the stack. Also, comments would mention that we
      assume the exponent to be greater than 31 when the it can be 30 or higher. As
      done for Arm64, let's check this at runtime in debug mode.
      
      On Arm64, we can also implement the stub without pushing and poping off the
      stack. It needs 2 general purpose and a double scratch registers which we have
      reserved already (ip0, ip1 and d30). This removes the need to check that the
      stack pointer is always 16-bytes aligned.
      
      Finally, this also fixes a potential bug on Arm64, in the
      `GetAllocatableRegisterThatIsNotOneOf` method which is now removed. We were
      picking an allocatable double register when we meant to pick a general one.
      
      Bug: v8:6644
      Change-Id: I88d4597f377c9fc05432d5922a0d7129b6d19b47
      Reviewed-on: https://chromium-review.googlesource.com/720963Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
      Cr-Commit-Position: refs/heads/master@{#48671}
      9f4f3c28
    • Clemens Hammacher's avatar
      [cleanup] Fix remaining (D)CHECK macro usages · 5f651082
      Clemens Hammacher authored
      This CL fixes all occurences that don't require special OWNER reviews,
      or can be reviewed by Michi.
      
      After this one, we should be able to reenable the readability/check
      cpplint check.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:6837, v8:6921
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: Ic81d68d5534eaa795b7197fed5c41ed158361d62
      Reviewed-on: https://chromium-review.googlesource.com/721120
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48670}
      5f651082
  11. 17 Oct, 2017 1 commit
  12. 13 Oct, 2017 6 commits
  13. 12 Oct, 2017 1 commit
    • Pierre Langlois's avatar
      [arm] Support splitting add with immediate instructions · d5b29f43
      Pierre Langlois authored
      When an immediate does not fit an add instruction we use a temporary register to
      hold the value, using movw/movt to encode it. However, in order to remove a use
      of r9 in TurboFan's code generator, we need to cope with no scratch registers
      being available. That is to say that the destination and source registers are
      the same, and `ip` is not available to use.
      
      In this case, we can split an add instruction into a sequence of additions:
      ```
      UseScratchRegisterScope temps(...);
      Register my_scratch = temps.Acquire();
      __ add(r0, r0, Operand(0xabcd); // add r0, r0, #0xcd
                                      // add r0, r0, #0xab00
      ```
      
      As a drive-by fix, make the disassembler test fail if we expected a different
      number of instructions generated.
      
      Bug: v8:6553
      Change-Id: Ib7fcc765d28bccafe39257f47cd73f922c5873bf
      Reviewed-on: https://chromium-review.googlesource.com/685014Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
      Cr-Commit-Position: refs/heads/master@{#48491}
      d5b29f43
  14. 11 Oct, 2017 1 commit
    • Georgia Kouveli's avatar
      [arm64] Update BuiltinContinuation frames for jssp alignment. · a63f045c
      Georgia Kouveli authored
      Adds some necessary padding to ensure the frame is 16-byte aligned.
      We don't yet consider the bailout state, which will be handled separately.
      
      This patch also improves the code generated for ContinueTo*Builtin* stubs.
      
      Finally, it adds a test that checks the return value for Array.map in
      the case where a LAZY deopt results in a topmost builtin continuation
      frame - this is easy to break if the padding for the result is done
      incorrectly in NotifyBuiltinContinuation, but was not detected by existing
      tests.
      
      Bug: v8:6644
      Change-Id: Id1a294950cdf535e2bfdb0ed27c67f077ec34f8a
      Reviewed-on: https://chromium-review.googlesource.com/704835
      Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48465}
      a63f045c
  15. 09 Oct, 2017 9 commits
  16. 04 Oct, 2017 1 commit
  17. 28 Sep, 2017 1 commit
  18. 25 Sep, 2017 1 commit
    • Benedikt Meurer's avatar
      [turbofan] Properly optimize literals in inlined functions. · 855b88ae
      Benedikt Meurer authored
      When inlining based on SharedFunctionInfo rather than based on concrete
      JSFunction, we weren't able to properly optimize array, object and
      regexp literals inside the inlinee, because we didn't know the concrete
      FeedbackVector for the inlinee inside JSCreateLowering. This was because
      JSCreateLowering wasn't properly updated after the literals moved to the
      FeedbackVector. Now with this CL we also have the VectorSlotPair on the
      literal creation operators, just like we do for property accesses and
      calls, and are thus able to always access the appropriate FeedbackVector
      and optimize the literal creation.
      
      The impact is illustrated by the micro-benchmark on the tracking bug,
      which goes from
      
        createEmptyArrayLiteral: 1846 ms.
        createShallowArrayLiteral: 1868 ms.
        createShallowObjectLiteral: 2246 ms.
      
      to
      
        createEmptyArrayLiteral: 1175 ms.
        createShallowArrayLiteral: 1187 ms.
        createShallowObjectLiteral: 1195 ms.
      
      with this CL, so up to 2x faster now.
      
      Drive-by-fix: Also remove the unused CreateEmptyObjectLiteral builtin
      and cleanup the names of the other builtins to be consistent with the
      names of the TurboFan operators and Ignition bytecodes.
      
      Bug: v8:6856
      Change-Id: I453828d019b27c9aa1344edac0dd84e91a457097
      Reviewed-on: https://chromium-review.googlesource.com/680656
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48140}
      855b88ae
  19. 22 Sep, 2017 2 commits