1. 19 Sep, 2018 1 commit
  2. 11 Sep, 2018 1 commit
  3. 23 Aug, 2018 1 commit
  4. 20 Aug, 2018 1 commit
  5. 07 Aug, 2018 1 commit
  6. 06 Jul, 2018 1 commit
  7. 22 Jun, 2018 1 commit
  8. 21 Jun, 2018 2 commits
  9. 20 Jun, 2018 2 commits
    • Junliang Yan's avatar
      PPC: fix constant pool entry sharing issue · 9dcc665c
      Junliang Yan authored
      R=joransiu@ca.ibm.com
      
      Change-Id: I80d67bdceacc9829855dc62ddd599d88a055c3a8
      Reviewed-on: https://chromium-review.googlesource.com/1108537Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#53897}
      9dcc665c
    • 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
  10. 13 Jun, 2018 1 commit
  11. 08 Jun, 2018 1 commit
  12. 18 May, 2018 1 commit
  13. 30 Apr, 2018 1 commit
  14. 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
  15. 22 Mar, 2018 1 commit
    • Junliang Yan's avatar
      PPC/s390: Reland^2: Remove SFI code field · a29de090
      Junliang Yan authored
      Port 51ded9d3
      
      Original Commit Message:
      
          This is a reland of d8f564ea
      
          Original change's description:
          > Reland: Remove SFI code field
          >
          > Remove the SharedFunctionInfo code field, inferring the code object
          > from the function_data field instead. In some cases, the function_data
          > field can now hold a Code object (e.g. some WASM cases).
          >
          > (Reland of https://chromium-review.googlesource.com/952452)
          >
          > TBR=mstarzinger@chromium.org
          >
          > Bug: chromium:783853
          > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
          > Change-Id: I10ea5be7ceed1b51362a2fad9be7397624d69343
          > Reviewed-on: https://chromium-review.googlesource.com/970649
          > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
          > Reviewed-by: Yang Guo <yangguo@chromium.org>
          > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
          > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
          > Cr-Commit-Position: refs/heads/master@{#52136}
      
      R=leszeks@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I86c5a46a866830a2150ff9366be12a09f111240f
      Reviewed-on: https://chromium-review.googlesource.com/976624Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#52165}
      a29de090
  16. 01 Mar, 2018 1 commit
    • Clemens Hammacher's avatar
      Fix is_trivially_copyable check for MSVC and older stdlibc++ · 9dd6f0d0
      Clemens Hammacher authored
      MSVC 2015 and 2017 implement std::is_trivially_copyable, but not
      correctly. Hence, reimplement it using more low-level primitives.
      
      For stdlibc++ versions below 5.0, we already have a workaround for the
      missing support of std::is_trivially_copyable, but this is an unsound
      approximation, because it is ignoring move constructor, move assignment
      and copy assignment. Therefore, do not use this approximation for
      asserting trivial copyability of a type.
      
      Finally, add unittests for the new is_trivially_copyable
      implementations.
      
      R=mstarzinger@chromium.org
      CC=loorongjie@gmail.com
      
      Change-Id: I9ee56a65882e8c94b72c9a2d484edd27963a5d89
      Reviewed-on: https://chromium-review.googlesource.com/941521Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51651}
      9dd6f0d0
  17. 13 Feb, 2018 1 commit
  18. 09 Feb, 2018 1 commit
  19. 22 Jan, 2018 1 commit
  20. 16 Jan, 2018 1 commit
  21. 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
  22. 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
  23. 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
  24. 16 Oct, 2017 3 commits
    • Junliang Yan's avatar
      Reland "PPC/s390: Fix arguement handling" · 11291891
      Junliang Yan authored
      This is a reland of af49af00
      Original change's description:
      > PPC/s390: Fix arguement handling
      > 
      > 1. in AssembleMove and AssembleSwap, we need to distinguish Double and Float
      > 2. in 32-bit mode, double needs to be counted as 2 slots in stack
      > 
      > R=joransiu@ca.ibm.com, jbarboza@ca.ibm.com, michael_dawson@ca.ibm.com, mmallick@ca.ibm.com
      > 
      > Bug: 
      > Change-Id: Iffe1844aa72e9d4c9492034c3df9a994e1304a27
      > Reviewed-on: https://chromium-review.googlesource.com/720676
      > Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
      > Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      > Cr-Commit-Position: refs/heads/master@{#48593}
      
      Change-Id: If91125e71b82c92f54f537345e4c213bd185e786
      Reviewed-on: https://chromium-review.googlesource.com/721419Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#48610}
      11291891
    • Junliang Yan's avatar
      Revert "PPC/s390: Fix arguement handling" · 34ba7e94
      Junliang Yan authored
      This reverts commit af49af00.
      
      Reason for revert: <INSERT REASONING HERE>
      
      There is a mistake in codegen to cause error in snapshot.
      
      Original change's description:
      > PPC/s390: Fix arguement handling
      > 
      > 1. in AssembleMove and AssembleSwap, we need to distinguish Double and Float
      > 2. in 32-bit mode, double needs to be counted as 2 slots in stack
      > 
      > R=​joransiu@ca.ibm.com, jbarboza@ca.ibm.com, michael_dawson@ca.ibm.com, mmallick@ca.ibm.com
      > 
      > Bug: 
      > Change-Id: Iffe1844aa72e9d4c9492034c3df9a994e1304a27
      > Reviewed-on: https://chromium-review.googlesource.com/720676
      > Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
      > Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      > Cr-Commit-Position: refs/heads/master@{#48593}
      
      TBR=michael_dawson@ca.ibm.com,jyan@ca.ibm.com,joransiu@ca.ibm.com,jbarboza@ca.ibm.com,mmallick@ca.ibm.com
      
      Change-Id: I76b7eb96e7bfc15e3d2b07474543e996b9ea5f86
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/721140Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#48600}
      34ba7e94
    • Junliang Yan's avatar
      PPC/s390: Fix arguement handling · af49af00
      Junliang Yan authored
      1. in AssembleMove and AssembleSwap, we need to distinguish Double and Float
      2. in 32-bit mode, double needs to be counted as 2 slots in stack
      
      R=joransiu@ca.ibm.com, jbarboza@ca.ibm.com, michael_dawson@ca.ibm.com, mmallick@ca.ibm.com
      
      Bug: 
      Change-Id: Iffe1844aa72e9d4c9492034c3df9a994e1304a27
      Reviewed-on: https://chromium-review.googlesource.com/720676Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#48593}
      af49af00
  25. 13 Oct, 2017 2 commits
  26. 14 Sep, 2017 1 commit
  27. 09 Sep, 2017 1 commit
    • Anisha Rohra's avatar
      s390/PPC: Make Register et al. real classes · 0b491c89
      Anisha Rohra authored
      Port 9e995e12
      Port 408f252b
      
        Up to now, each architecture defined all Register types as structs,
        with lots of redundancy. An often found comment noted that they cannot
        be classes due to initialization order problems. As these problems are
        gone with C++11 constexpr constants, I now tried making Registers
        classes again.
        All register types now inherit from RegisterBase, which provides a
        default set of methods and named constructors (like ::from_code,
        code(), bit(), is_valid(), ...).
        This design allows to guarantee an interesting property: Each register
        is either valid, or it's the no_reg register. There are no other
        invalid registers. This is guaranteed statically by the constexpr
        constructor, and dynamically by ::from_code.
      
        I decided to disallow the default constructor completely, so instead of
        "Register reg;" you now need "Register reg = no_reg;". This makes
        explicit how the Register is initialized.
      
        I did this change to the x64, ia32, arm, arm64, mips and mips64 ports.
        Overall, code got much more compact and more safe. In theory, it should
        also increase performance (since the is_valid() check is simpler), but
        this is probably not measurable.
      
      R=bjaideep@ca.ibm.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I2e87efc8790290c64fd6c0a2d093326710b30ed3
      Reviewed-on: https://chromium-review.googlesource.com/658065Reviewed-by: 's avatarJaideep Bajwa <bjaideep@ca.ibm.com>
      Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#47933}
      0b491c89
  28. 16 Aug, 2017 1 commit
  29. 02 Aug, 2017 1 commit
  30. 01 Aug, 2017 2 commits
  31. 24 Jul, 2017 2 commits
  32. 10 Jul, 2017 1 commit
    • Enrico Bacis's avatar
      [ppc] use Double instead of double in ppc compiler · 5457e8a9
      Enrico Bacis authored
      The use of double variables to store bit patterns may lead to bit flips
      when the stored bit pattern is a signaling NaN (sNaN). Operations on a
      sNaN variable (even just returning the variable from a function) may
      turn it into a quiet NaN (qNaN), flipping the signaling bit and
      affecting the information stored in the variable.
      
      We observed this behaviour on ia32 architectures and therefore in the
      simulator builds for other platforms. The use of the wrapper class
      Double should prevent this behaviour.
      
      R=ahaas@chromium.org
      
      Change-Id: Ibd1119924a59db771fd4c250689ad9c2a35fff75
      Reviewed-on: https://chromium-review.googlesource.com/562771Reviewed-by: 's avatarJaideep Bajwa <bjaideep@ca.ibm.com>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Enrico Bacis <enricobacis@google.com>
      Cr-Commit-Position: refs/heads/master@{#46533}
      5457e8a9
  33. 29 Jun, 2017 1 commit