1. 02 Jan, 2019 2 commits
  2. 07 Dec, 2018 1 commit
  3. 05 Dec, 2018 1 commit
  4. 04 Dec, 2018 1 commit
    • Junliang Yan's avatar
      PPC/s390: [nojit] Refactor CallApiCallback calling convention · a31338aa
      Junliang Yan authored
      Port c6b0e12e
      
      Original Commit Message:
      
          This is the first (and major) step towards converting CallApiCallback
          and CallApiGetter stubs into builtins.
      
          The CallApiCallbackStub was parameterized with the number of arguments
          passed on the stack. This CL converts the compile-time parameter into
          an explicit runtime parameter, and removes all uses of the stub
          parameter.
      
          (kCallData and kHolder are now passed on the stack).
      
      R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I171fbb7d37525c2087e5dd9d7ff8fb5f959f2a7a
      Reviewed-on: https://chromium-review.googlesource.com/c/1362163Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#58030}
      a31338aa
  5. 28 Nov, 2018 1 commit
  6. 26 Nov, 2018 1 commit
  7. 19 Nov, 2018 1 commit
  8. 06 Nov, 2018 1 commit
  9. 20 Sep, 2018 1 commit
  10. 07 Aug, 2018 1 commit
  11. 23 Jul, 2018 1 commit
  12. 03 Jul, 2018 1 commit
  13. 11 Jun, 2018 1 commit
  14. 29 May, 2018 1 commit
  15. 28 May, 2018 1 commit
  16. 26 May, 2018 1 commit
  17. 25 May, 2018 2 commits
  18. 08 May, 2018 1 commit
    • Junliang Yan's avatar
      PPC/s390: [builtins] Convert CEntry/GetProperty/StringAdd stubs to builtins · 7ff35bd5
      Junliang Yan authored
      Port d8131cd6
      
      Original Commit Message:
      
          Stubs and builtins are very similar. The main differences are that
          stubs can be parameterized and may be generated at runtime, whereas
          builtins are generated at mksnapshot-time and shipped with the snapshot
          (or embedded into the binary).
      
          My main motivation for these conversions is that we can generate
          faster calls and jumps to (embedded) builtins callees from (embedded)
          builtin callers. Instead of going through the builtins constants table
          indirection, we can simply do a pc-relative call/jump.
      
          This also unlocks other refactorings, e.g. removal of
          CallRuntimeDelayed.
      
      R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I193e4275470d492912a7d0f8523c3b8c29f1b146
      Reviewed-on: https://chromium-review.googlesource.com/1050732
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#53081}
      7ff35bd5
  19. 03 May, 2018 1 commit
  20. 27 Apr, 2018 1 commit
    • Junliang Yan's avatar
      PPC/s390: Reland "[builtins] Introduce further constant & external reference indirections" · e5f1b968
      Junliang Yan authored
      Port 3f99a376
      
      Original Commit Message:
      
          This is a reland of f5d30851
      
          Original change's description:
          > [builtins] Introduce further constant & external reference indirections
          >
          > This introduces further indirections for embedded constants and
          > external references for builtins generated by the macro-assembler.
          > The used mechanisms (LookupConstant and LookupExternalReference) are
          > identical to what we already use in CSA.
          >
          > Almost all builtins are now isolate-independent in both release and
          > debug modes. snapshot_blob.bin is roughly 670K smaller in embedded
          > builds vs. non-embedded builds, while libv8.so is roughly 280K larger.
          >
          > Bug: v8:6666
          > Change-Id: I7a6c2193ef5a763e6cf7543dd51597d6fff6c110
          > Reviewed-on: https://chromium-review.googlesource.com/1006581
          > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
          > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
          > Cr-Commit-Position: refs/heads/master@{#52810}
      
      R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I037faebce37a866091dc35e04500790591292622
      Reviewed-on: https://chromium-review.googlesource.com/1031397Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#52855}
      e5f1b968
  21. 25 Apr, 2018 1 commit
    • Andreas Haas's avatar
      Reland: [refactoring] Remove the isolate from signatures of ExternalReferences · 2a3c2c73
      Andreas Haas authored
      I missed one required change which was hidden behind an #if. The fix is in
      the diff between Patch 1 and Patch 3.
      
      Original message:
      In this CL I remove the isolate from signatures of ExternalReference
      accessor functions where the isolate is not used. The uses of the
      isolate were already removed in previous CLs.
      
      Changes:
      * I split the ExternalReference list in external-reference.h into
      those which need the isolate for initialization and those which do not.
      
      * I removed the public constructors and replaced them by
        ExternalReference::Create(). The reason is to separate external
        creation more clearly from internal creation, because externally
        created ExternalReferences sometimes need redirection, whereas
        internally created ExternalReferences are just stored as they are.
        In addition, by removing the isolate from the signature of the
        public constructors, they suddenly exactly matched the interal
        constructor.
      
      * Replace all uses of the public constructors with
        ExternalReference::Create().
      
      * Remove the isolate from all call sites where necessary.
      
      
      This is a step towards making WebAssembly compilation independent of
      the isolate.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:7570
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: I750c162f5d58ed32e866722b0db920f8b9bd8057
      Reviewed-on: https://chromium-review.googlesource.com/1026673Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52777}
      2a3c2c73
  22. 24 Apr, 2018 2 commits
    • Andreas Haas's avatar
      Revert "[refactoring] Remove the isolate from signatures of ExternalReferences" · 7bfed2ad
      Andreas Haas authored
      This reverts commit 44ea425a.
      
      Reason for revert: https://ci.chromium.org/buildbot/client.v8.ports/V8%20Arm%20-%20debug%20builder/13575
      
      Original change's description:
      > [refactoring] Remove the isolate from signatures of ExternalReferences
      > 
      > In this CL I remove the isolate from signatures of ExternalReference
      > accessor functions where the isolate is not used. The uses of the
      > isolate were already removed in previous CLs.
      > 
      > Changes:
      > * I split the ExternalReference list in external-reference.h into
      > those which need the isolate for initialization and those which do not.
      > 
      > * I removed the public constructors and replaced them by
      >   ExternalReference::Create(). The reason is to separate external
      >   creation more clearly from internal creation, because externally
      >   created ExternalReferences sometimes need redirection, whereas
      >   internally created ExternalReferences are just stored as they are.
      >   In addition, by removing the isolate from the signature of the
      >   public constructors, they suddenly exactly matched the interal
      >   constructor.
      > 
      > * Replace all uses of the public constructors with
      >   ExternalReference::Create().
      > 
      > * Remove the isolate from all call sites where necessary.
      > 
      > 
      > This is a step towards making WebAssembly compilation independent of
      > the isolate.
      > 
      > Bug: v8:7570
      > R=​mstarzinger@chromium.org
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: I14f511fc6acc50ab2d6a6641299f5ddbeabef0da
      > Reviewed-on: https://chromium-review.googlesource.com/1018982
      > Commit-Queue: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52768}
      
      TBR=mstarzinger@chromium.org,ahaas@chromium.org
      
      Change-Id: I7c0d8d420f815cede23d550dee8942ac4d7791cc
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7570
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1026570Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52769}
      7bfed2ad
    • Andreas Haas's avatar
      [refactoring] Remove the isolate from signatures of ExternalReferences · 44ea425a
      Andreas Haas authored
      In this CL I remove the isolate from signatures of ExternalReference
      accessor functions where the isolate is not used. The uses of the
      isolate were already removed in previous CLs.
      
      Changes:
      * I split the ExternalReference list in external-reference.h into
      those which need the isolate for initialization and those which do not.
      
      * I removed the public constructors and replaced them by
        ExternalReference::Create(). The reason is to separate external
        creation more clearly from internal creation, because externally
        created ExternalReferences sometimes need redirection, whereas
        internally created ExternalReferences are just stored as they are.
        In addition, by removing the isolate from the signature of the
        public constructors, they suddenly exactly matched the interal
        constructor.
      
      * Replace all uses of the public constructors with
        ExternalReference::Create().
      
      * Remove the isolate from all call sites where necessary.
      
      
      This is a step towards making WebAssembly compilation independent of
      the isolate.
      
      Bug: v8:7570
      R=mstarzinger@chromium.org
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: I14f511fc6acc50ab2d6a6641299f5ddbeabef0da
      Reviewed-on: https://chromium-review.googlesource.com/1018982
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52768}
      44ea425a
  23. 14 Apr, 2018 2 commits
    • Junliang Yan's avatar
      PPC/s390: [stubs] Convert DoubleToIStub and MathPowStub to builtins · 5e8bc1c3
      Junliang Yan authored
      Port a3b60675
      
      Original Commit Message:
      
          This is mostly a simple copy & paste of the stub implementation from
          code-stubs-arch.cc to builtins-arch.cc.
      
          The conversion allows removal of a special case for the DoubleToIStub
          within the compiler & wasm pipelines, and also makes the following
          builtins isolate-independent (in conjunction with
          https://crrev.com/c/1006581):
      
          TFC BitwiseAnd
          TFC BitwiseOr
          TFC BitwiseXor
          TFC Exponentiate
          TFC ShiftLeft
          TFC ShiftRight
          TFC ShiftRightLogical
          TFJ AtomicsAdd
          TFJ AtomicsAnd
          TFJ AtomicsCompareExchange
          TFJ AtomicsExchange
          TFJ AtomicsLoad
          TFJ AtomicsOr
          TFJ AtomicsStore
          TFJ AtomicsSub
          TFJ AtomicsXor
          TFJ MathClz32
          TFJ MathImul
          TFJ MathPow
          TFJ NumberParseInt
          TFJ StringFromCharCode
          TFJ TypedArrayFrom
          TFJ TypedArrayOf
          TFJ TypedArrayPrototypeMap
      
      R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: Iee9fc5671646772625556717db052b78089c5c66
      Reviewed-on: https://chromium-review.googlesource.com/1013247Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#52606}
      5e8bc1c3
    • Junliang Yan's avatar
      PPC/s390: [stubs] Remove return register argument from DoubleToIStub · 3110259e
      Junliang Yan authored
      Port 87557649
      
      Original Commit Message:
      
          This changes DoubleToIStub to return its result on the stack instead
          of a specific return register.
      
          In a follow-up, the DoubleToIStub could be converted into a builtin.
      
      R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I952fec4fbe004e2734a84ba853f4f5a33c8dd8ce
      Reviewed-on: https://chromium-review.googlesource.com/1013418Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#52605}
      3110259e
  24. 11 Apr, 2018 1 commit
  25. 23 Feb, 2018 1 commit
    • Junliang Yan's avatar
      PPC/s390: [turbofan] Masking/poisoning in codegen (optimized code, arm) · 11805b13
      Junliang Yan authored
      Port 25799516
      
      Original Commit Message:
      
          This introduces masking of loads with speculation bit during code generation.
          At the moment, this is done only under the
          --branch-load-poisoning flag, and this CL enlarges the set of supported
          platforms from {x64} to {x64, arm}.
      
          Overview of changes:
          - new register configuration configuration with one register reserved for
            the speculation poison/mask (kSpeculationPoisonRegister).
          - in codegen, we introduce an update to the poison register at the starts
            of all successors of branches (and deopts) that are marked as safety
            branches (deopts).
          - in memory optimizer, we lower all field and element loads to PoisonedLoads.
          - poisoned loads are then masked in codegen with the poison register.
            * only integer loads are masked at the moment.
      
      R=tebbi@chromium.org, joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: Idda9bf06133d8999290cda5bcf6333c064b3e6dc
      Reviewed-on: https://chromium-review.googlesource.com/927163
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#51528}
      11805b13
  26. 04 Jan, 2018 1 commit
  27. 12 Dec, 2017 1 commit
    • Junliang Yan's avatar
      PPC/s390: [builtins] implement RunMicrotasks pump as a code stub · 4bc48c21
      Junliang Yan authored
      Port 52ff3ae4
      
      Original Commit Message:
      
          - Implement RunMicrotasks in CSA to prevent a potentially large number
            of jumps between C++ and JS code while consuming te queue. Appears to
            provide a ~60% speedup in microtask-heavy code, which from limited
            testing appears to scale linearly.
      
            The code-stub microtask pump bails out to the old C++ microtask pump
            if it encounters a CallHandlerInfo microtask, and remains in C++ for
            the remainder of the queue (returning to the JS/stub implementation
            after the bailed out queue is exhausted).
      
          - Add a variation of JSEntryStub which enters the new RunMicrotasks code
            stub.
      
          - Add a new RunMicrotasks helper to Execution, which uses the
            RunMicrotasks entry stub.
      
      R=caitp@igalia.com, joransiu@ca.ibm.com, jbarboza@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: Ifa15ca19312bb92758e82d19c3e3fc0a8b908d82
      Reviewed-on: https://chromium-review.googlesource.com/820197Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#50018}
      4bc48c21
  28. 02 Dec, 2017 1 commit
    • Mathias Bynens's avatar
      Normalize casing of hexadecimal digits · 822be9b2
      Mathias Bynens authored
      This patch normalizes the casing of hexadecimal digits in escape
      sequences of the form `\xNN` and integer literals of the form
      `0xNNNN`.
      
      Previously, the V8 code base used an inconsistent mixture of uppercase
      and lowercase.
      
      Google’s C++ style guide uses uppercase in its examples:
      https://google.github.io/styleguide/cppguide.html#Non-ASCII_Characters
      
      Moreover, uppercase letters more clearly stand out from the lowercase
      `x` (or `u`) characters at the start, as well as lowercase letters
      elsewhere in strings.
      
      BUG=v8:7109
      TBR=marja@chromium.org,titzer@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org,rossberg@chromium.org,yangguo@chromium.org,mlippautz@chromium.org
      NOPRESUBMIT=true
      
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I790e21c25d96ad5d95c8229724eb45d2aa9e22d6
      Reviewed-on: https://chromium-review.googlesource.com/804294
      Commit-Queue: Mathias Bynens <mathias@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49810}
      822be9b2
  29. 15 Nov, 2017 1 commit
  30. 07 Nov, 2017 1 commit
  31. 06 Nov, 2017 2 commits
  32. 03 Nov, 2017 1 commit
  33. 30 Oct, 2017 2 commits
  34. 27 Oct, 2017 1 commit