1. 05 Nov, 2018 1 commit
  2. 31 Oct, 2018 3 commits
  3. 19 Oct, 2018 1 commit
  4. 15 Oct, 2018 1 commit
    • Predrag Rudic's avatar
      MIPS: Port [turbofan] Use relative calls/jumps on arm for builtins · a1974d49
      Predrag Rudic authored
      Port commit 23dbb81d.
      
      Original CL message:
      
      >This CL uses pc-relative jumps and calls (B/BL) for calls from embedded
      >builtins to embedded builtins. To make this work, the code range size is
      >limited to 32MB on arm during mksnapshot, which ensures that all builtin
      >to builtin offsets for jumps/calls fit into the B/BL immediate. At code
      >generation time, we put a placeholder into the instruction offset which
      >we resolve to the right code object when the code is copied to the heap.
      >We use a new relocation mode RELATIVE_CODE_TARGET for these relative jumps.
      >The relocation mode RELATIVE_CODE_TARGET should never appear after
      >generating the snapshot.
      >
      >We modify the target_address/set_target_address methods of RelocInfo
      >such that they return the absolute target addresses for pc-relative B/BL
      >instructions. This ensures that the GC can treat RELATIVE_CODE_TARGET in
      >the same way as code targets. This, however, only matters during
      >snapshot creation time, and production code never contains
      >RELATIVE_CODE_TARGET relocations.
      >
      >Bug: v8:6666
      >Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      >Change-Id: If7eab83ad588859ca87c654a5ddc3e37caea884c
      >Reviewed-on: https://chromium-review.googlesource.com/1117181
      >Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      >Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      >Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      >Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      >Cr-Commit-Position: refs/heads/master@{#54320}
      
      This CL is completed Miran's draft without MIPS64 port.
      (https://chromium-review.googlesource.com/c/v8/v8/+/1136640/3).
      
      Change-Id: I979378ac445548641755968d890f7f4a82dc7986
      Reviewed-on: https://chromium-review.googlesource.com/c/1221313
      Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarIvica Bogosavljevic <ibogosavljevic@wavecomp.com>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56640}
      a1974d49
  5. 04 Oct, 2018 1 commit
  6. 28 Sep, 2018 1 commit
  7. 20 Sep, 2018 1 commit
  8. 11 Sep, 2018 1 commit
  9. 23 Aug, 2018 1 commit
  10. 13 Aug, 2018 1 commit
  11. 08 Aug, 2018 2 commits
  12. 07 Aug, 2018 1 commit
  13. 03 Aug, 2018 1 commit
  14. 25 Jul, 2018 1 commit
  15. 13 Jul, 2018 1 commit
  16. 06 Jul, 2018 1 commit
  17. 22 Jun, 2018 1 commit
  18. 21 Jun, 2018 1 commit
    • Ben L. Titzer's avatar
      [asm] Remove Assembler(isolate...) constructor · ea2f33c6
      Ben L. Titzer authored
      This completes the transition to Assembler::Options, which reduces
      the assemblers's dependency on isolates, and there is now only one
      way to create an Assembler, which is to use the options.
      Note that some operations on assemblers still need an isolate, such
      as GetCode(), and in these cases, the isolate is an additional
      argument to the method.
      
      R=jgruber@chromium.org
      CC=mstarzinger@chromium.org
      
      Change-Id: I413209d816c63a7c3640f1c226764693dcad1e7f
      Reviewed-on: https://chromium-review.googlesource.com/1106169
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53925}
      ea2f33c6
  19. 20 Jun, 2018 1 commit
    • 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
  20. 13 Jun, 2018 1 commit
  21. 18 May, 2018 1 commit
  22. 30 Apr, 2018 1 commit
  23. 14 Apr, 2018 1 commit
    • Jakob Kummerow's avatar
      [ubsan] Change Address typedef to uintptr_t · 2459046c
      Jakob Kummerow authored
      The "Address" type is V8's general-purpose type for manipulating memory
      addresses. Per the C++ spec, pointer arithmetic and pointer comparisons
      are undefined behavior except within the same array; since we generally
      don't operate within a C++ array, our general-purpose type shouldn't be
      a pointer type.
      
      Bug: v8:3770
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779
      Reviewed-on: https://chromium-review.googlesource.com/988657
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52601}
      2459046c
  24. 13 Apr, 2018 1 commit
  25. 16 Mar, 2018 1 commit
  26. 21 Feb, 2018 1 commit
  27. 13 Feb, 2018 1 commit
  28. 02 Feb, 2018 1 commit
  29. 22 Jan, 2018 1 commit
  30. 16 Jan, 2018 1 commit
  31. 20 Dec, 2017 1 commit
    • 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
  32. 16 Dec, 2017 1 commit
    • Michael Achenbach's avatar
      Revert "[arm64] Preparation for padding of arguments" · fb8efb12
      Michael Achenbach authored
      This reverts commit bcf11729.
      
      Reason for revert:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/16791
      
      The test cctest/test-run-tail-calls/FuzzStackParamCount hangs on
      the nosnap debug bot and times out.
      
      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=rmcilroy@chromium.org,jarin@chromium.org,georgia.kouveli@arm.com
      
      Change-Id: Iff4d7da418204834822842b160eacb8980058172
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6644
      Reviewed-on: https://chromium-review.googlesource.com/830847Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50144}
      fb8efb12
  33. 15 Dec, 2017 1 commit
    • Georgia Kouveli's avatar
      [arm64] Preparation for padding of arguments · bcf11729
      Georgia Kouveli authored
      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: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50134}
      bcf11729
  34. 22 Nov, 2017 1 commit
    • Clemens Hammacher's avatar
      Allow move semantics on Labels · eeb32224
      Clemens Hammacher authored
      The Label class currently allows to be copied on all platforms except
      for arm64, where it can not be copied or moved.
      This allows too much though:
      Copying a label even on another platform than arm64 might fail if the
      label was linked already, because only one of the copies will be bound
      later, and the other will fire a DCHECK error in its destructor.
      
      This CL changes the restriction to never allow to copy construct or
      assign a Label, but allow move construction and move assignment on all
      platforms except arm64.
      This will allow to place Labels in containers, as will be done in
      Liftoff (except for arm64, where it still needs to be allocated on the
      heap).
      
      R=mstarzinger@chromium.org
      
      Bug: v8:6600
      Change-Id: Ic1234c2d233317eed6a3d537c13faed2c701fe13
      Reviewed-on: https://chromium-review.googlesource.com/783190
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49570}
      eeb32224
  35. 18 Oct, 2017 1 commit
  36. 13 Oct, 2017 2 commits