1. 04 Feb, 2019 1 commit
  2. 18 Jan, 2019 1 commit
  3. 17 Jan, 2019 2 commits
  4. 10 Jan, 2019 1 commit
    • tzik's avatar
      Shuffle the parameter ordering of JSEntry · 7efa02a3
      tzik authored
      This moves |root_register_value| parameter of JSEntryFunction to the
      first. I.e. the type of entry function will be changed from
       Object*(Object* new_target, Object* target, Object* receiver,
               int argc, Object*** args,
               Address root_register_value)
      to
       Object*(Address root_register_value,
               Object* new_target, Object* target, Object* receiver,
               int argc, Object*** args),
      and moves all parameter handling except for |root_register_value| from
      JSEntryVariant to JSEntryTrampolineHelper.
      
      This is a preparation to add another JS entry point for RunMicrotasks,
      whose type will be
       Object*(Address root_register_value, MicrotaskQueue*).
      The new entry point requires |root_register_value| to be the first to
      share the implementation of the EntryFrame setup with existing ones.
      
      Bug: v8:8124
      Change-Id: I675376a2ccd240f61cf04eea6fe9a91031e06ede
      Reviewed-on: https://chromium-review.googlesource.com/c/1372857
      Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58683}
      7efa02a3
  5. 08 Jan, 2019 2 commits
    • Jakob Kummerow's avatar
      [ubsan] Rename ObjectPtr to Object · ae8f83fe
      Jakob Kummerow authored
      The two names refer to the same thing by now, so this patch is
      entirely mechanical.
      
      Bug: v8:3770
      Change-Id: Ia360c06c89af6b3da27fd21bbcaeb2bdaa28ce22
      Reviewed-on: https://chromium-review.googlesource.com/c/1397705Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58615}
      ae8f83fe
    • tzik's avatar
      Pass argc of JSEntry as intptr_t · 088f9c60
      tzik authored
      |argc| parameter of JSEntry is passed as int from C++ code, and loaded
      into a register on the asm code. As int is 32 bit, and registers are
      64 bit on 64 bit platforms, upper 32 bits of the loaded value may be
      contaminated by a random value if it's passed as a stack parameter.
      
      For now, |argc| is passed as a register parameter on all platforms, and
      the upper 32 bits of |argc| is filled by zero, fortunately. However, if
      we shuffle the order of parameters, |argc| can be passed as a stack
      parameter and its value may be broken.
      
      Specifically on x64 Windows, the first 4 parameters are passed as
      register parameters and the rest are stack parameters. As |argc| is the
      4th parameter, if we prepend another parameter and shift |argc| to
      the 5th parameter, |argc| will become a stack parameter and its load
      to 64 bit register breaks the value.
      
      This CL converts the type of the |argc| parameter to intptr_t, so that
      it's safe to load from stack to full width registers.
      
      Bug: v8:8124
      Change-Id: Ie7407cf5e6252ed7323a9c42389db387b0064673
      Reviewed-on: https://chromium-review.googlesource.com/c/1400326Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58614}
      088f9c60
  6. 26 Dec, 2018 1 commit
  7. 20 Dec, 2018 1 commit
  8. 18 Dec, 2018 2 commits
  9. 10 Dec, 2018 1 commit
    • Peter Marshall's avatar
      [runtime] Set arguments limit to FixedArray::kMaxLength · 4d2b197d
      Peter Marshall authored
      Right now, this is the limit implicitly imposed for spread/apply calls
      as to actually do a spread/apply call through CallVarargs, you need to
      pass a FixedArray with the args to be pushed.
      
      Likewise, turbofan can only materialize an arguments object with a
      backing store of length FixedArray::kMaxLength.
      
      The practical limit that users will actually hit is the stack - this
      change doesn't change that, it just documents what the actual limit is.
      
      This would actually allow an embedder/custom fork to increase stack
      size and still be able to make spread/apply calls with a large number
      of args.
      
      Change-Id: If5e66a61ed3f9df36031eb098646d48fc2ca2507
      Reviewed-on: https://chromium-review.googlesource.com/c/1367451Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58119}
      4d2b197d
  10. 07 Dec, 2018 1 commit
    • Jakob Gruber's avatar
      [nojit] Migrate JSEntry variants to builtins · b89d4249
      Jakob Gruber authored
      This migrates the JSEntryStub to three dedicated builtins:
      
      JSEntry
      JSConstructEntry
      JSRunMicrotasksEntry
      
      Drive-by: Tweaks to make the code isolate-independent (e.g. using the
      correct macro assembler method to load and store external references
      through the kRootRegister).
      Drive-by: The context slot on x64/ia32 must be set up after
      kRootRegister is initialized, so we first reserve the slot and later
      load its value.
      Drive-by: Update all remaining comments referencing JSEntryStub.
      
      Bug: v8:7777
      Change-Id: Ie3ba17ffb3bde6f18ec1d26d778b258719b2d4ef
      Reviewed-on: https://chromium-review.googlesource.com/c/1365275Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58088}
      b89d4249
  11. 06 Dec, 2018 1 commit
  12. 30 Nov, 2018 1 commit
  13. 29 Oct, 2018 1 commit
  14. 22 Oct, 2018 1 commit
  15. 11 Oct, 2018 1 commit
  16. 23 Jul, 2018 1 commit
  17. 04 Jul, 2018 1 commit
  18. 21 Jun, 2018 1 commit
  19. 30 May, 2018 1 commit
    • Alexey Kozyatinskiy's avatar
      [inspector] use interrupt for pause only as last resort · 6d87d957
      Alexey Kozyatinskiy authored
      With this CL we use interrupt for pause in two cases:
      - when we process Debugger.pause on interruption,
      - when we would like to break as soon as possible after OOM.
      In all other cases, e.g. for async step into we use break
      on function call by calling StepIn debugger action.
      
      In mentioned cases we should not actually use interrupt as well:
      - Debugger.pause in this case scheduled using interrupt and we
        may just break right now without requesting another interrupt,
        unfortunately blink side is not ready,
      - we should use more reliable way to break right after near OOM
        callback, otherwise we can get this callback, increase limit,
        request break on next interrupt, before interrupt get another
        huge memory allocation and crash.
      
      There are couple advantages:
      - we get much better break locations for async stepping
        (see inspector tests expectations),
      - we can remove DEBUG_BREAK interruption
        (it should speedup blackboxing with async tasks, see
        removed todo in debug.cc for details)
      - it is required preparation step for async step out,
        (see https://chromium-review.googlesource.com/c/v8/v8/+/1054618)
      
      Bug: v8:7753
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Iabd7627dbffa9a0eab1736064caf589d02591926
      Reviewed-on: https://chromium-review.googlesource.com/1054155
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53439}
      6d87d957
  20. 09 May, 2018 1 commit
  21. 04 May, 2018 1 commit
  22. 23 Apr, 2018 1 commit
    • Alexey Kozyatinskiy's avatar
      [runtime] implemented SafeForInterruptsScope · d3f6c647
      Alexey Kozyatinskiy authored
      This CL introduced SafeForInterruptsScope. This scope overrides
      outer PostponeInterruptsScopes:
      - reschedule postponed interrupts if needed,
      - allow requesting new interrupts.
      As soon as scope removed interrupts are posponed if needed.
      
      This scope will be:
      - used to allow inspector to interrupt and terminate
        DebugeEvaluate::Local,
      - exposed with new flag on Isolate to implement SafeForTerminationScope
        in blink.
      
      R=yangguo@chromium.org
      
      Bug: chromium:820640
      Change-Id: I15befc10c2cee393d1e3be48cecb31ee14dae638
      Reviewed-on: https://chromium-review.googlesource.com/1022969
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52743}
      d3f6c647
  23. 09 Apr, 2018 1 commit
  24. 28 Mar, 2018 1 commit
  25. 22 Mar, 2018 3 commits
  26. 20 Mar, 2018 2 commits
  27. 09 Jan, 2018 1 commit
  28. 04 Dec, 2017 1 commit
    • Caitlin Potter's avatar
      [builtins] implement RunMicrotasks pump as a code stub · 52ff3ae4
      Caitlin Potter authored
      - 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.
      
      Bug: 
      Change-Id: I4667d4dd633d24455ea5d7cef239da0af1a7365e
      Reviewed-on: https://chromium-review.googlesource.com/650486
      Commit-Queue: Caitlin Potter <caitp@igalia.com>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49842}
      52ff3ae4
  29. 30 Nov, 2017 1 commit
  30. 20 Oct, 2017 1 commit
  31. 18 Oct, 2017 1 commit
  32. 13 Oct, 2017 1 commit
  33. 11 Sep, 2017 1 commit
  34. 05 Sep, 2017 1 commit