1. 05 Nov, 2018 1 commit
  2. 19 Oct, 2018 1 commit
  3. 28 Sep, 2018 1 commit
  4. 19 Sep, 2018 2 commits
  5. 18 Sep, 2018 1 commit
  6. 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
  7. 11 Sep, 2018 3 commits
  8. 23 Aug, 2018 1 commit
  9. 21 Aug, 2018 1 commit
    • Jakob Gruber's avatar
      Revert "[x64] Apply rip-relative call/jump for OFF_HEAP_TARGET" · dcc09b60
      Jakob Gruber authored
      This reverts commit ad5b7365.
      
      Reason for revert: https://crbug.com/875678
      
      Original change's description:
      > [x64] Apply rip-relative call/jump for OFF_HEAP_TARGET
      >
      > Merge rip-relative loading and call/jump into one instruction for
      > OFF_HEAP_TARGET call/jump. For example,
      >
      >   REX.W movq r10,[rip+#disp]
      >   call r10
      >
      > turns into:
      >
      >   call [rip+#disp]
      >
      > Change-Id: I17e115d054b4b352bdaf8eba2e6ac4054bbedaca
      > Reviewed-on: https://chromium-review.googlesource.com/1172152
      > Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55150}
      
      TBR=sigurds@chromium.org,jgruber@chromium.org,shiyu.zhang@intel.com
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:875678
      Change-Id: I5a9dd6e29cc53566d681864f7e275a70ccdcb0cb
      Reviewed-on: https://chromium-review.googlesource.com/1183164
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55255}
      dcc09b60
  10. 16 Aug, 2018 2 commits
  11. 14 Aug, 2018 2 commits
    • Benedikt Meurer's avatar
      [turbofan] Further optimize DataView accesses. · 5fecd146
      Benedikt Meurer authored
      This adds support for unaligned load/store access to the DataView
      backing store and uses byteswap operations to fix up the endianess
      when necessary. This changes the Word32ReverseBytes operator to be
      a required operator and adds the missing support on the Intel and
      ARM platforms (on 64-bit platforms the Word64ReverseBytes operator
      is also mandatory now).
      
      This further improves the performance on the dataviewperf.js test
      mentioned in the tracking bug by up to 40%, and at the same time
      reduces the code complexity in the EffectControlLinearizer.
      
      Bug: chromium:225811
      Change-Id: I7c1ec826faf46a144a5a9068f8f815a5fd040997
      Reviewed-on: https://chromium-review.googlesource.com/1174252Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55111}
      5fecd146
    • Leszek Swirski's avatar
      Revert "[turbofan] Further optimize DataView accesses." · 6a62d88e
      Leszek Swirski authored
      This reverts commit c46915b9.
      
      Reason for revert: Disasm failures https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug/21727 
      
      Original change's description:
      > [turbofan] Further optimize DataView accesses.
      > 
      > This adds support for unaligned load/store access to the DataView
      > backing store and uses byteswap operations to fix up the endianess
      > when necessary. This changes the Word32ReverseBytes operator to be
      > a required operator and adds the missing support on the Intel and
      > ARM platforms (on 64-bit platforms the Word64ReverseBytes operator
      > is also mandatory now).
      > 
      > This further improves the performance on the dataviewperf.js test
      > mentioned in the tracking bug by up to 40%, and at the same time
      > reduces the code complexity in the EffectControlLinearizer.
      > 
      > Bug: chromium:225811
      > Change-Id: I296170b828c2ccc1c317ed37840b564aa14cdec2
      > Reviewed-on: https://chromium-review.googlesource.com/1172777
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55099}
      
      TBR=sigurds@chromium.org,bmeurer@chromium.org
      
      Change-Id: If7a62e3a1a4ad26823fcbd2ab6eb4c053ad11c49
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:225811
      Reviewed-on: https://chromium-review.googlesource.com/1174171Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55107}
      6a62d88e
  12. 13 Aug, 2018 1 commit
    • Benedikt Meurer's avatar
      [turbofan] Further optimize DataView accesses. · c46915b9
      Benedikt Meurer authored
      This adds support for unaligned load/store access to the DataView
      backing store and uses byteswap operations to fix up the endianess
      when necessary. This changes the Word32ReverseBytes operator to be
      a required operator and adds the missing support on the Intel and
      ARM platforms (on 64-bit platforms the Word64ReverseBytes operator
      is also mandatory now).
      
      This further improves the performance on the dataviewperf.js test
      mentioned in the tracking bug by up to 40%, and at the same time
      reduces the code complexity in the EffectControlLinearizer.
      
      Bug: chromium:225811
      Change-Id: I296170b828c2ccc1c317ed37840b564aa14cdec2
      Reviewed-on: https://chromium-review.googlesource.com/1172777
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55099}
      c46915b9
  13. 08 Aug, 2018 2 commits
  14. 24 Jul, 2018 1 commit
    • Clemens Hammacher's avatar
      Reland "[turboassembler] Introduce hard-abort mode" · d324382e
      Clemens Hammacher authored
      This is a reland of a462a785
      
      Original change's description:
      > [turboassembler] Introduce hard-abort mode
      > 
      > For checks and assertions (mostly for debug code, like stack alignment
      > or zero extension), we had two modes: Emit a call to the {Abort}
      > runtime function (the default), and emit a debug break (used for
      > testing, enabled via --trap-on-abort).
      > In wasm, where we cannot just call a runtime function because code must
      > be isolate independent, we always used the trap-on-abort behaviour.
      > This causes problems for our fuzzers, which do not catch SIGTRAP, and
      > hence do not detect debug code failures.
      > 
      > This CL introduces a third mode ("hard abort"), which calls a C
      > function via {ExternalReference}. The C function still outputs the
      > abort reason, but does not print the stack trace. It then aborts via
      > "OS::Abort", just like the runtime function.
      > This will allow fuzzers to detect the crash and even find a nice error
      > message.
      > 
      > Even though this looks like a lot of code churn, it is actually not.
      > Most added lines are new tests, and other changes are minimal.
      > 
      > R=mstarzinger@chromium.org
      > 
      > Bug: chromium:863799
      > Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
      > Reviewed-on: https://chromium-review.googlesource.com/1142163
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54592}
      
      Bug: chromium:863799
      Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
      Reviewed-on: https://chromium-review.googlesource.com/1146100Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54656}
      d324382e
  15. 20 Jul, 2018 2 commits
    • Sigurd Schneider's avatar
      Speculatively revert "[turboassembler] Introduce hard-abort mode" · 039c18e1
      Sigurd Schneider authored
      This reverts commit a462a785.
      
      Reason for revert: Breaks a TurboAssembler test:
      https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm/7726
      
      Original change's description:
      > [turboassembler] Introduce hard-abort mode
      > 
      > For checks and assertions (mostly for debug code, like stack alignment
      > or zero extension), we had two modes: Emit a call to the {Abort}
      > runtime function (the default), and emit a debug break (used for
      > testing, enabled via --trap-on-abort).
      > In wasm, where we cannot just call a runtime function because code must
      > be isolate independent, we always used the trap-on-abort behaviour.
      > This causes problems for our fuzzers, which do not catch SIGTRAP, and
      > hence do not detect debug code failures.
      > 
      > This CL introduces a third mode ("hard abort"), which calls a C
      > function via {ExternalReference}. The C function still outputs the
      > abort reason, but does not print the stack trace. It then aborts via
      > "OS::Abort", just like the runtime function.
      > This will allow fuzzers to detect the crash and even find a nice error
      > message.
      > 
      > Even though this looks like a lot of code churn, it is actually not.
      > Most added lines are new tests, and other changes are minimal.
      > 
      > R=​mstarzinger@chromium.org
      > 
      > Bug: chromium:863799
      > Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
      > Reviewed-on: https://chromium-review.googlesource.com/1142163
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54592}
      
      TBR=mstarzinger@chromium.org,clemensh@chromium.org
      
      Change-Id: I60c011cfe262ccebbb9abf32699a9fe17e72a3c8
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:863799
      Reviewed-on: https://chromium-review.googlesource.com/1145431
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54597}
      039c18e1
    • Clemens Hammacher's avatar
      [turboassembler] Introduce hard-abort mode · a462a785
      Clemens Hammacher authored
      For checks and assertions (mostly for debug code, like stack alignment
      or zero extension), we had two modes: Emit a call to the {Abort}
      runtime function (the default), and emit a debug break (used for
      testing, enabled via --trap-on-abort).
      In wasm, where we cannot just call a runtime function because code must
      be isolate independent, we always used the trap-on-abort behaviour.
      This causes problems for our fuzzers, which do not catch SIGTRAP, and
      hence do not detect debug code failures.
      
      This CL introduces a third mode ("hard abort"), which calls a C
      function via {ExternalReference}. The C function still outputs the
      abort reason, but does not print the stack trace. It then aborts via
      "OS::Abort", just like the runtime function.
      This will allow fuzzers to detect the crash and even find a nice error
      message.
      
      Even though this looks like a lot of code churn, it is actually not.
      Most added lines are new tests, and other changes are minimal.
      
      R=mstarzinger@chromium.org
      
      Bug: chromium:863799
      Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
      Reviewed-on: https://chromium-review.googlesource.com/1142163
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54592}
      a462a785
  16. 06 Jul, 2018 1 commit
  17. 05 Jul, 2018 1 commit
  18. 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
  19. 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
  20. 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
  21. 13 Jun, 2018 1 commit
  22. 18 May, 2018 1 commit
  23. 30 Apr, 2018 1 commit
  24. 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
  25. 20 Mar, 2018 1 commit
  26. 01 Mar, 2018 3 commits
  27. 27 Feb, 2018 2 commits
  28. 26 Feb, 2018 1 commit
    • Clemens Hammacher's avatar
      Reland "[Assembler][x64] Make Operand immutable" · ecb77978
      Clemens Hammacher authored
      This is a reland of e7f9fb4a.
      
      Original change's description:
      > [Assembler][x64] Make Operand immutable
      > 
      > This CL removes all setters from the Operand and removes the friendship
      > relation between Assembler and Operand. All data fields of the Operand
      > are set exactly once in the constructor, the Operand is immutable
      > afterwards.
      > In order to construct the data of an Operand easily, the OperandBuilder
      > is introduced. After building an Operand, the data is copied to the
      > const field of the Operand.
      > 
      > R=mstarzinger@chromium.org
      > 
      > Bug: v8:7310
      > Change-Id: I1628052b8a0c47cbfbc3645dfdac5a0e9705977b
      > Reviewed-on: https://chromium-review.googlesource.com/936741
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51563}
      
      Bug: v8:7310
      Change-Id: I84df5e11b1811585fbba7309e3bb9c6b17e18c0b
      Reviewed-on: https://chromium-review.googlesource.com/936628Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51573}
      ecb77978