1. 29 Mar, 2021 1 commit
  2. 24 Mar, 2021 1 commit
  3. 22 Feb, 2021 1 commit
  4. 09 Feb, 2021 1 commit
  5. 08 Dec, 2020 1 commit
  6. 07 Dec, 2020 1 commit
  7. 09 Nov, 2020 1 commit
  8. 27 Oct, 2020 1 commit
  9. 13 Oct, 2020 2 commits
  10. 16 Sep, 2020 1 commit
  11. 07 Sep, 2020 1 commit
  12. 03 Sep, 2020 1 commit
    • Jakob Kummerow's avatar
      Revert "Check interrupts in runtime BigInt parser" · ec49e377
      Jakob Kummerow authored
      This reverts commit 825c61d8.
      
      Reason for revert: Processing interrupts triggers a DisallowHeapAllocation scope failure.
      
      Original change's description:
      > Check interrupts in runtime BigInt parser
      > 
      > The BigInt constructor has quadratic complexity while parsing strings,
      > and the input is unbounded. Interrupts should be checked during this
      > operation to ensure the host has control over runaway execution.
      > 
      > Change-Id: I15db9adeeafadc7b866a395dd8263aa8c2109ce8
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2384166
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69679}
      
      TBR=jkummerow@chromium.org,leszeks@chromium.org,marcel@laverdet.com
      
      Bug: chromium:1124477
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Change-Id: I1ba8c1de1f809f71a1c4fae9b56a8bd40f9f7e7f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2392815Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69703}
      ec49e377
  13. 02 Sep, 2020 3 commits
  14. 31 Aug, 2020 2 commits
    • Brendan Shanks's avatar
      Use NtCurrentTeb() in GetStackStart() to fix 64-bit Wine on macOS · c40c8f7d
      Brendan Shanks authored
      When running 64-bit Windows binaries on macOS using Wine, there is a
      conflict between macOS's use of GS to point to pthread thread-specific
      data, and Windows' use of GS to point to the TEB.
      
      Apple has reserved some TSD slots for use by Wine to store commonly-used
      TEB members (such as 0x30, the 'Self' pointer to the TEB).
      But, other direct GS accesses by Windows programs (such as to
      'StackBase') will return macOS pthread data rather than the TEB member.
      This was causing a V8 unit test to crash on macOS under Wine.
      
      Using NtCurrentTeb() gets the 'Self' pointer first, then dereferences
      it to access the correct 'StackBase', fixing the crash.
      This turns GetStackStart() from one instruction into two.
      
      Chrome (http://crrev.com/c/2380425) and Crashpad also use
      NtCurrentTeb().
      
      The 32-bit change isn't needed, but is just for consistency.
      
      Bug: chromium:1121842
      Change-Id: I824f893aa451d8570142226be91840c964426f38
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2381941Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69627}
      c40c8f7d
    • Tianping Yang's avatar
      [test] Add a test case to the snaphot with all function code · a96715b0
      Tianping Yang authored
      By eager compile all functions in the startup snapshot, the startup
      snapshot can contain all function codes without warm-up.
      
      BUG=v8:4836
      R=yangguo@chromium.org
      
      Change-Id: I07e86b6940c2fe75816df8ae429d110272216d0a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2379535Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69624}
      a96715b0
  15. 05 Aug, 2020 1 commit
  16. 07 Jul, 2020 1 commit
  17. 18 Jun, 2020 1 commit
  18. 25 May, 2020 1 commit
  19. 14 May, 2020 1 commit
  20. 27 Apr, 2020 1 commit
  21. 17 Apr, 2020 1 commit
    • Jiaxun Yang's avatar
      [builtins][MIPS]: Workaround gas auto-align issue · 72a6e594
      Jiaxun Yang authored
      GAS have a auto-align function which will align all the directive
      data into it's nature boundary. And we're using .octa to present
      data in embedded.S, which will be auto-aligned into 128-bit boundary.
      It can break relatve offset in generated binary.
      So we workaround it by forcing generate .long DataDirective on MIPS.
      
      Also I rewoked WriteByteChunk so it can accept any kind of directive
      now. Further more, implementation of HexLiteral is indentical on
      generic, aix and mac so I merged them into base.
      
      Bug: v8:10420
      Change-Id: I0ff791412360769510735659f909524c5f96d3e0
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2153187Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67198}
      72a6e594
  22. 01 Apr, 2020 1 commit
  23. 23 Mar, 2020 1 commit
    • Eric Rannaud's avatar
      [cpu-profile] Timestamps in tracing events args stay in monotonic time · 668aafb5
      Eric Rannaud authored
      On Linux, Perfetto translates the builtin "ts" timestamp in trace event
      from CLOCK_MONOTONIC to CLOCK_BOOTTIME, before passing them to devtools.
      Devtools therefore implicitly operates on timestamps that are in
      CLOCK_BOOTTIME.
      
      However, additional timestamps sent in trace event payload arguments
      will not be converted to CLOCK_BOOTTIME by Perfetto, raising the
      possibility of devtools using timestamps from multiple clock domains
      incorrectly.
      
      Since trace events sent by CpuProfile also include the builtin "ts"
      trace timestamp (sampled from CLOCK_MONOTONIC nearly at the same time by
      the tracing framework), sending "data.startTime" and "data.endTime" is
      essentially redundant. devtools-frontend:2113957 stops the use of the
      value of these timestamps in the payload of Profile and ProfileChunk
      events. Devtools continue to use the presence of these arguments to
      indentify start and end profile events.
      
      ProfileChunk events also include "timeDeltas" which are relative
      timestamps. They are also in CLOCK_MONOTONIC and are not translated by
      Perfetto. devtools-frontend:2113957 computes absolute CLOCK_BOOTTIME
      timestamps from timeDeltas by adding them to "ts" in the "Profile" event
      (previously, "data.startTime" was used). This is only valid if the
      system is not suspended/resumed during profiling. Providing support for
      suspend/resume in the middle of profiling will likely involve having
      Perfetto convert "timeDeltas" directly to CLOCK_BOOTTIME.
      
      This CL introduces no code changes and only adds comments to explain
      the above.
      
      BUG=chromium:1055871
      
      Change-Id: I649dfcce8ea1a100c0ecfe03f843c7cb1fdd6f33
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2114001
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66820}
      668aafb5
  24. 19 Mar, 2020 1 commit
  25. 10 Mar, 2020 2 commits
    • Janusz Majnert's avatar
      Make torque emit structs in classes in order · 5a04c5ce
      Janusz Majnert authored
      Torque compiler emits a C++ class definition header
      class-definitions-tq.h. Unfortunately it does so in a manner that
      introduces randomness into the ordering of some structs. This means that
      every full build of V8 may yield a different header.
      Since this header is included in a lot of files in V8, it causes a lot
      of ccache misses (over a 1000).
      
      This commit makes sure that the structs are emitted in lexical order.
      
      Bug: v8:10310
      Change-Id: Ie39066d36e41583ff990bc639f7f241462351585
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2093500
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66645}
      5a04c5ce
    • Iain Ireland's avatar
      [regexp] Fix and unify non-unicode case-folding algorithms · 3fab9d05
      Iain Ireland authored
      Non-unicode, case-insensitive regexps (e.g. /foo/i, not foo/iu) use a
      case-folding algorithm that doesn't quite match the Unicode
      definition. There are two places in irregexp that need to do
      case-folding. Prior to this patch, neither of them quite matched the
      spec (https://tc39.es/ecma262/#sec-runtime-semantics-canonicalize-ch).
      
      This patch implements the "Canonicalize" algorithm in
      src/regexp/special-case.h, and uses it in the relevant places. It
      replaces special-case logic around upper-casing / ASCII characters
      with the following approach:
      
      1. For most characters, calling UnicodeSet::closeOver on a set
         containing that character will produce the correct set of
         case-insensitive matches.
      
      2. For a small handful of characters (like the sharp S that prompted
         this change), UnicodeSet::closeOver will include some characters
         that should be omitted. For example, although closeOver('ß') =
         "ßẞ", uppercase('ß') is "SS", so step 3.e means that 'ß'
         canonicalizes to itself, and should not match 'ẞ'. In these cases,
         we can skip the closeOver entirely, because it will never add an
         equivalent character. These characters are in the IgnoreSet.
      
      3. For an even smaller handful of characters, UnicodeSet::closeOver
         will produce some characters that should be omitted, but also some
         characters that should be included. For example, closeOver('k') =
         "kKK" (lowercase k, uppercase K, U+212A KELVIN SIGN), but KELVIN
         SIGN should not match either of the other two (step 3.g). To handle
         this, we put such characters in the SpecialAddSet. In these cases,
         we closeOver the original character, but filter out the results
         that do not have the same canonical value.
      
      The computation of IgnoreSet and SpecialAddSet happens at build time,
      using the pre-existing gen-regexp-special-case.cc step.
      
      R=jgruber@chromium.org
      
      Bug: v8:10248
      Change-Id: I00d48b180c83bb8e645cc59eda57b01eab134f0b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072858Reviewed-by: 's avatarFrank Tang <ftang@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66641}
      3fab9d05
  26. 21 Feb, 2020 1 commit
  27. 13 Feb, 2020 1 commit
  28. 13 Jan, 2020 1 commit
  29. 07 Jan, 2020 1 commit
  30. 05 Nov, 2019 1 commit
  31. 30 Oct, 2019 1 commit
  32. 22 Oct, 2019 1 commit
  33. 24 Sep, 2019 1 commit
  34. 23 Sep, 2019 1 commit
  35. 20 Aug, 2019 1 commit