- 02 Jul, 2021 2 commits
-
-
Zhi An Ng authored
This reverts commit 92bfb63c. Reason for revert: Broke build https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20shared/43249/overview Original change's description: > [build] Separate out inspector as a shared library > > This makes src/inspector:inspector into a v8_component producing a > shared library in component builds. To enable this, all of its exported > are now marked with V8_INSPECTOR_EXPORT. > > This also inverts the dependency between src/inspector:inspector and > :v8_base_without_compiler, and instead makes d8 and some tests depend on > inspector rather than getting it via v8. > > As a result, the no_check_targets exclusions list in .gn is reduced. > > Ultimately embedders like chromium should depend on :v8 and optionally > src/inspector:inspector, but to allow that transition to occur, this > renames :v8 to :v8_lib and introduces a new :v8 which depends on v8 and > inspector. Once all embedders have changed to reflect the new structure, > this part can be reverted. > > Bug: v8:11917 > Change-Id: Ia8b15f07fb15acc5e1f111b1a80248def4285fd0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2999088 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Dan Elphick <delphick@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75532} Bug: v8:11917 Change-Id: I0ed27ed95211d13b8b3438a8c0a42d577806c475 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3003452 Auto-Submit: Zhi An Ng <zhin@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#75533}
-
Dan Elphick authored
This makes src/inspector:inspector into a v8_component producing a shared library in component builds. To enable this, all of its exported are now marked with V8_INSPECTOR_EXPORT. This also inverts the dependency between src/inspector:inspector and :v8_base_without_compiler, and instead makes d8 and some tests depend on inspector rather than getting it via v8. As a result, the no_check_targets exclusions list in .gn is reduced. Ultimately embedders like chromium should depend on :v8 and optionally src/inspector:inspector, but to allow that transition to occur, this renames :v8 to :v8_lib and introduces a new :v8 which depends on v8 and inspector. Once all embedders have changed to reflect the new structure, this part can be reverted. Bug: v8:11917 Change-Id: Ia8b15f07fb15acc5e1f111b1a80248def4285fd0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2999088Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#75532}
-
- 10 May, 2021 1 commit
-
-
Clemens Backes authored
After updating our bots to use GCC 7.4, we do not need to support incomplete C++14 support any more. In particular, we can assume complete c++14 constexpr support now. This CL removes the V8_HAS_CXX14_CONSTEXPR and CONSTEXPR_DCHECK macros. The CONSTEXPR_DCHECKs are replaced by DCHECK and friend, or STATIC_ASSERT where possible. R=jgruber@chromium.org, leszeks@chromium.org, mlippautz@chromium.org Bug: v8:9686, v8:11384 Change-Id: I3a8769a0f54da7eb2cacc37ee23e5c97092e3051 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2876847Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74486}
-
- 28 Apr, 2021 1 commit
-
-
Michael Lippautz authored
GCC 7.4 has problems with combining [[nodiscard]] with __attribute__((visibility(""))). Disable as there's enough compilation coverage for clang to find issues. Bug: v8:11707 Change-Id: I9e61463c4d11dbc3b03d458e2810206fb93de108 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854737Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#74262}
-
- 18 Jan, 2021 1 commit
-
-
Dan Elphick authored
Adds a v8-gn.h file containing defines that are used in the externally-visible headers files like v8.h. This must be included by include/v8config.h which includes it if the GN flag v8_generate_external_defines_header is on. (Currently off by default). To enable the v8config.h file to be included without the other v8 headers (as required by cppgc), this moves it into its own header set which sets up the include path correctly. Also updates some headers to ensure v8config.h is included before using externally-visible defines. Bug: v8:11292 Change-Id: I5be634f4adfbef144bf684071461d64f1cb30899 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2608212 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#72140}
-
- 25 Nov, 2020 1 commit
-
-
Santiago Aboy Solanes authored
This allows us to assert at compile time that a class instance is assigned, which is particularly useful for Guard classes. Change-Id: Id16b2bb70d29573566e821c908c1169d49ec57af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2552415 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#71397}
-
- 20 Oct, 2020 1 commit
-
-
Maya Lekova authored
Switch the current bool* parameter to a structure that contains the boolean fallback flag and is forward compatible, if we decide to add more options to the fallback call. Fly-by refactoring: moved V8_ENABLE_FP_PARAMS_IN_C_LINKAGE out of a public V8 header file. Bug: chromium:1052746 Change-Id: I844db24cc687c58b3c3bbd84b4d61bb4759bcfc7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2474775 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#70642}
-
- 28 Sep, 2020 1 commit
-
-
Maya Lekova authored
This CL also adds some unit tests, locally tested under x64. The double support is based on this original CL by Gus Caplan (snek@chromium.org): https://chromium-review.googlesource.com/c/v8/v8/+/2264612 Bug: chromium:1052746 Change-Id: Ibdf631689b01ab619a72005226bfc015b4737dde Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2416028Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#70168}
-
- 24 Aug, 2020 1 commit
-
-
johnx authored
Starboard is the platform abstraction for Cobalt. This CL introduces all Cobalt changes in src/base/platform. The review was conducted mostly on: https://chromium-review.googlesource.com/c/v8/v8/+/2247918 See b/156155426 for background Tbr: mlippautz@chromium.org Change-Id: I6cd092304ba6485acd38e82aa2dc4505d7dfb0aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2346090 Commit-Queue: John Xu <johnx@google.com> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69530}
-
- 19 Jun, 2020 1 commit
-
-
Michael Lippautz authored
This is a reland of e0c1a349 The issue was passing SentinelPointer (== +1) through T*. The fix is disabling cfi unrelated cast diagnostic for the bottlenecks (Get()). This means that nullptr is treated the same as kSentinelPointer. The alternative would be a DCHECK that Get() does not return kSentinelPointer and adjusting all Member and Persistent logic that uses Get() to work on void*. This is quite intrusive as it involves Swap(), heterogeneous assignments, comparisons, etc. Original change's description: > cppgc: Properly clear (Weak)Peristent and WeakMember pointers > > The CL addresses two issues with (Weak)Persistent and WeakMember: > 1. (Weak)Persistent pointers are cleared on heap teardown. Before this > CL the pointers would contain stale values which could lead to UAF. > 2. WeakPersistent and WeakMember are cleared using a combination of > internal clearing methods and mutable fields which avoids the use > of const_cast<>. > > Bug: chromium:1056170 > Change-Id: Ibf2b0f0856771b4f6906608cde13a6d43ebf81f3 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2248190 > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#68394} Bug: chromium:1056170 Change-Id: I3d74b43464c2973df1956f51b1419d755dd9f519 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2250240Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68426}
-
- 12 May, 2020 1 commit
-
-
Omer Katz authored
This CL adds 2 new values to the EmbedderStackState enum with more explicit names. The old values are updated as aliases to the new values and marked as soon to be deprecated. This CL also moves the enum to v8-platform.h so that it can be reused by cppgc. Depracating individual values in an enum is supported by GCC only since version 6. Thus new macros were needed for the deprecation (which delegate to the existing macros when supported). GCC versions older than 6 are still used by the CQ bots. Bug: chromium:1056170 Change-Id: Id1ea73edfbbae282b0d8a3bb103dbbbf8ebd417e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2188971 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67744}
-
- 14 Jan, 2020 1 commit
-
-
Michael Lippautz authored
- Introduces a API to set top of the stack through EmbedderHeapTracer::SetStackTop. - Introduces a new API to inform V8 about an empty embedder stack. - Switch internal representation of TracedReference for on-stack handles to a proper stack that considers all contained handles as roots. - Handle garbage is avoided by cleaning up on handle creation or GC. Design doc: https://bit.ly/on-stack-traced-reference Bug: chromium:1040038 Change-Id: I927ef0abb268fdb5853c9e17b1bc96e2491cf101 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1993973 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#65757}
-
- 21 Oct, 2019 1 commit
-
-
Clemens Backes authored
We still set a lot of macros depending on specific gcc versions. All these old versions are unsupported by now anyways, so we can also just define these macros as 1. If this CL sticks for a while, we can start actually cleaning up all code relying on these macros, as most of them should be 1 now on all platforms. R=ulan@chromium.org Bug: v8:9810 Change-Id: I2f9c55170091f8c263deeddfb7ff89e5b2a0bb12 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1862564Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64413}
-
- 16 Oct, 2019 1 commit
-
-
Clemens Backes authored
DCHECKs are not really special, they just create a non-constexpr path within an otherwise constexpr function. Since C++14, this is allowed. Unfortunately, gcc only supports this since version 6, but we still need to support gcc 5. R=ulan@chromium.org Change-Id: If74486144abafa5bbdcdbb9a567ee9295ac4cfc7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1862568Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64310}
-
- 09 Oct, 2019 3 commits
-
-
Igor Sheludko authored
Bug: v8:7703 Change-Id: If8605f4dc4ab50fb5a95b43994262c8f3edd92a7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1849524Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#64192}
-
Clemens Backes authored
The V8_HAS_DECLSPEC_NORETURN macro is unused since https://crrev.com/c/529072, where we switched to the standard [[noreturn]] attribute. R=ulan@chromium.org Bug: v8:9810 Change-Id: Ifd76c967df1da7bb71369e61cd0adc1807b62d44 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847365Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64175}
-
Clemens Backes authored
Since C++14, there is a spec'ed attribute for deprecation of methods, functions, types, aliases or anything else. This CL switches from the GCC __attribute__ to this standard attribute. This allows to use the V8_DEPRECATED and V8_DEPRECATE_SOON macros on anything where the standard attribute can be used (including {using} statements that were not working before). It also avoids the need to nest the whole declaration in the macro, making the code more readable. R=adamk@chromium.org Bug: v8:9810 Change-Id: I7adab7694af75423fb31ade2fc982dbf9c9bc699 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847361Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64174}
-
- 19 Sep, 2019 1 commit
-
-
Jakob Gruber authored
This CL allows us to distinguish between the host- and target OS. The host OS is defined by V8_OS_ macros (e.g. V8_OS_WIN). The target OS is defined by V8_TARGET_OS_ macros (e.g. V8_TARGET_OS_WIN). V8_TARGET_OS_ macros are defined by gn, based on the `target_os` gn variable. If a V8_TARGET_OS_ is set, we also define V8_HAVE_TARGET_OS (this determines fall-back behavior in V8; if it is not defined, we set V8_TARGET_OS_ to equal the equivalent V8_OS_ define). Besides adding the defines, this CL also adds logic to consider the target OS in codegen. Specifically, x64 builds now look at the V8_TARGET_OS_WIN define instead of V8_OS_WIN or _WIN64. This effectively makes cross-compilation to x64 Windows in mksnapshot possible. In future work, we could add similar support for cross-compiling to other platforms such as ia32 Windows. Bug: v8:9736,chromium:803591 Change-Id: I689f3de8c206b743c4bef703f5ade0bba32ce995 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1809374Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63892}
-
- 18 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
This is an unmodified reland of 60624b56. Nosnap bots do not block LKGR any more: https://crbug.com/v8/9737#c10. Original change's description: > Disallow nullptr arguments for {CopyChars} > > This allows to remove special casing for the {count == 0} case, which > was needed because {memmove} does not accept {nullptr} arguments even > if the {count} is zero. > > R=leszeks@chromium.org > > Bug: v8:9396 > Change-Id: Iaef3cdbbffa74c2ba1c4e4501dafd943282cbcd9 > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1807366 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63838} TBR=leszeks@chromium.org Bug: v8:9396 Change-Id: I6ab13575f13df060b450ff105e4b9db516671dcf Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1809365Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63863}
-
- 17 Sep, 2019 2 commits
-
-
Adam Klein authored
This reverts commits 9febc505 (along with followup commit 60624b56). Reason for revert: Breaks win32 nosnap shared, blocking lkgr & roll: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20nosnap%20-%20shared/35145 nosnap bots may be deprecated, but as long as they're in LKGR we need to mind them. Original change's description: > Reland "Remove all custom CopyCharsUnsigned implementations" > > This is a reland of 5d8c4890 > > Original change's description: > > Remove all custom CopyCharsUnsigned implementations > > > > It's unclear whether the custom implementation have any advantage over > > the standard library one's. > > Since we update our toolchain and standard library regularly, it might > > well be the case that the custom implementations are slower by now. > > > > Thus this CL removes all {CopyCharsUnsigned} implementations and > > implements {CopyChars} generically using {std::copy_n}. > > > > Note that this does not touch the {MemMove} and {MemCopy} functions > > yet, as we have seen regressions when trying to remove them before > > (https://crbug.com/v8/8675#c5). > > > > R=leszeks@chromium.org > > > > Bug: v8:9396 > > Change-Id: I97a183afebcccd2fbb567bdba02e827331475608 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1800577 > > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#63808} > > Bug: v8:9396 > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng > Change-Id: I9cd754ebe6b802bb4aabd6d2a448de41da040874 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1807357 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63823} TBR=leszeks@chromium.org,clemensh@chromium.org Change-Id: Ic53ab2293d5dc7722a1121d1aa1159328a6ed8f5 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9396 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1808035Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#63854}
-
Clemens Hammacher authored
This allows to remove special casing for the {count == 0} case, which was needed because {memmove} does not accept {nullptr} arguments even if the {count} is zero. R=leszeks@chromium.org Bug: v8:9396 Change-Id: Iaef3cdbbffa74c2ba1c4e4501dafd943282cbcd9 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1807366Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63838}
-
- 29 Aug, 2019 1 commit
-
-
Igor Sheludko authored
... to let C++ compiler know that isolate root is 4Gb aligned and give it a chance to generate a better code. Bug: v8:9353 Change-Id: Ibd23c14cc44107c722a446a84dd14ca66f3bccfe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1776079Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#63445}
-
- 08 Aug, 2019 1 commit
-
-
Patrick Thier authored
This CL changes the dispatch technique in the regex interpreter to token-threaded dispatch, if computed gotos are supported by the compiler. Otherwise old switch-based dispatch is still used (e.g. for MSVC). With computed gotos, less jumps will be emitted (no extra jump to single branch point/begin of switch) and branch prediction will be better because of no single branch point. This CL improves performance on the RexBench Benchmark suite by ~10%. Bug: v8:9575 Change-Id: I585ad824ff1cc595a5dfa8831ad66d6810d0119b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1733073Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Patrick Thier <pthier@google.com> Cr-Commit-Position: refs/heads/master@{#63126}
-
- 26 Jun, 2019 1 commit
-
-
Sigurd Schneider authored
This makes sure that BUILDING_V8_SHARED and USING_V8_SHARED are not both set at once. Change-Id: Iba3a4fac37518b6ec3658da4575453a7967ece0f Bug: v8:8855 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627978Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#62369}
-
- 17 Apr, 2019 1 commit
-
-
Jakob Gruber authored
Add OS detection for iOS builds. If we are building for an iOS target, the following V8 OS defines will be set: V8_OS_BSD V8_OS_MACOSX V8_OS_POSIX V8_OS_IOS // This one is new. The detection code is taken from Chromium's build_config.h file. Bug: v8:9140 Change-Id: I435a8931dc0ae0eefdb893bc838a04470bcc57db Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1569435Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60897}
-
- 10 Apr, 2019 1 commit
-
-
Paolo Severini authored
In file include/v8config.h we define: ifdef V8_OS_WIN ... if defined(_M_X64) || defined(__x86_64__) define V8_OS_WIN_X64 true endif and V8_OS_WIN_X64 is supposed to be defined when targeting X64 on Windows only. But this is wrong because V8_OS_WIN_X64 gets defined also on an ARM64 builds when the host machine is X64. It should instead be: ifdef V8_OS_WIN ... if defined(V8_TARGET_ARCH_X64) define V8_OS_WIN_X64 true endif Bug: v8:9090 Change-Id: I88e4c46bb6df1efa2070d4e1785081d71df96f0e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1554222Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Paolo Severini <paolosev@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60758}
-
- 03 Apr, 2019 1 commit
-
-
Paolo Severini authored
This is a reland of 3cda21de Original change's description: > V8 x64 backend doesn't emit ABI compliant stack frames > > On 64 bit Windows, the OS stack walking does not work because the V8 x64 > backend doesn't emit unwinding info and also because it doesn't emit ABI > compliant stack frames. See > https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit > for more details. > > This problem can be fixed by observing that V8 frames usually all have the same > prolog and epilog: > > push rbp, > mov rbp, rsp > ... > pop rbp > ret N > > and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows > should walk through V8 frames. Furthermore, since V8 Code objects are all > allocated in the same code-range for an Isolate, it is possible to register a > single PDATA/XDATA entry to cover stack walking for all the code generated > inside that code-range. > > This PR contains changes required to enable stack walking on Win64: > > EmbeddedFileWriter now adds assembler directives to the builtins > snapshot source file (embedded.cc) to emit additional entries in the .pdata and > in the .xdata section of the V8 executable. This takes care of stack walking > for embedded builtins. (The case of non-embedded builtins is not supported). > The x64 Assembler has been modified to collect the information required to emit > this unwind info for builtins. > > Stack walking for jitted code is handled is Isolate.cpp, by registering > dynamically PDATA/XDATA for the whole code-range address space every time a new > Isolate is initialized, and by unregistering them when the Isolate is > destroyed. > > Stack walking for WASM jitted code is handled is the same way in > wasm::NativeModule (wasm/wasm-code-manager.cpp). > > It is important to note that Crashpad and Breakpad are already registering > PDATA/XDATA to manage and report unhandled exceptions (but not for embedded > builtins). Since it is not possible to register multiple PDATA entries for the > same address range, a new function is added to the V8 API: > SetUnhandledExceptionCallback() can be used by an embedder to register its own > unhandled exception handler for exceptions that arise in v8-generated code. > V8 embedders should be modified accordingly (code for this is in a separate PR > in the Chromium repository: > https://chromium-review.googlesource.com/c/chromium/src/+/1474703). > > All these changes are experimental, behind: > > the 'v8_win64_unwinding_info' build flag, and > the '--win64-unwinding-info' runtime flag. > > Bug: v8:3598 > Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Paolo Severini <paolosev@microsoft.com> > Cr-Commit-Position: refs/heads/master@{#60330} Bug: v8:3598 Change-Id: If988baf7d3e4af165b919d6e54c1ad985f8e25e3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534618Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Paolo Severini <paolosev@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60581}
-
- 20 Mar, 2019 1 commit
-
-
Leszek Swirski authored
This reverts commit 3cda21de. Reason for revert: Breaks the roll on Windows (see https://cr-buildbucket.appspot.com/build/8918477701097622400) Original change's description: > V8 x64 backend doesn't emit ABI compliant stack frames > > On 64 bit Windows, the OS stack walking does not work because the V8 x64 > backend doesn't emit unwinding info and also because it doesn't emit ABI > compliant stack frames. See > https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit > for more details. > > This problem can be fixed by observing that V8 frames usually all have the same > prolog and epilog: > > push rbp, > mov rbp, rsp > ... > pop rbp > ret N > > and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows > should walk through V8 frames. Furthermore, since V8 Code objects are all > allocated in the same code-range for an Isolate, it is possible to register a > single PDATA/XDATA entry to cover stack walking for all the code generated > inside that code-range. > > This PR contains changes required to enable stack walking on Win64: > > EmbeddedFileWriter now adds assembler directives to the builtins > snapshot source file (embedded.cc) to emit additional entries in the .pdata and > in the .xdata section of the V8 executable. This takes care of stack walking > for embedded builtins. (The case of non-embedded builtins is not supported). > The x64 Assembler has been modified to collect the information required to emit > this unwind info for builtins. > > Stack walking for jitted code is handled is Isolate.cpp, by registering > dynamically PDATA/XDATA for the whole code-range address space every time a new > Isolate is initialized, and by unregistering them when the Isolate is > destroyed. > > Stack walking for WASM jitted code is handled is the same way in > wasm::NativeModule (wasm/wasm-code-manager.cpp). > > It is important to note that Crashpad and Breakpad are already registering > PDATA/XDATA to manage and report unhandled exceptions (but not for embedded > builtins). Since it is not possible to register multiple PDATA entries for the > same address range, a new function is added to the V8 API: > SetUnhandledExceptionCallback() can be used by an embedder to register its own > unhandled exception handler for exceptions that arise in v8-generated code. > V8 embedders should be modified accordingly (code for this is in a separate PR > in the Chromium repository: > https://chromium-review.googlesource.com/c/chromium/src/+/1474703). > > All these changes are experimental, behind: > > the 'v8_win64_unwinding_info' build flag, and > the '--win64-unwinding-info' runtime flag. > > Bug: v8:3598 > Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Paolo Severini <paolosev@microsoft.com> > Cr-Commit-Position: refs/heads/master@{#60330} TBR=bbudge@chromium.org,ulan@chromium.org,mvstanton@chromium.org,mstarzinger@chromium.org,gdeepti@chromium.org,jgruber@chromium.org,paolosev@microsoft.com Change-Id: If8470da94c58df8c800cbe8887f9f86236e43353 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:3598 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532321Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#60372}
-
- 19 Mar, 2019 1 commit
-
-
Paolo Severini authored
On 64 bit Windows, the OS stack walking does not work because the V8 x64 backend doesn't emit unwinding info and also because it doesn't emit ABI compliant stack frames. See https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit for more details. This problem can be fixed by observing that V8 frames usually all have the same prolog and epilog: push rbp, mov rbp, rsp ... pop rbp ret N and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows should walk through V8 frames. Furthermore, since V8 Code objects are all allocated in the same code-range for an Isolate, it is possible to register a single PDATA/XDATA entry to cover stack walking for all the code generated inside that code-range. This PR contains changes required to enable stack walking on Win64: EmbeddedFileWriter now adds assembler directives to the builtins snapshot source file (embedded.cc) to emit additional entries in the .pdata and in the .xdata section of the V8 executable. This takes care of stack walking for embedded builtins. (The case of non-embedded builtins is not supported). The x64 Assembler has been modified to collect the information required to emit this unwind info for builtins. Stack walking for jitted code is handled is Isolate.cpp, by registering dynamically PDATA/XDATA for the whole code-range address space every time a new Isolate is initialized, and by unregistering them when the Isolate is destroyed. Stack walking for WASM jitted code is handled is the same way in wasm::NativeModule (wasm/wasm-code-manager.cpp). It is important to note that Crashpad and Breakpad are already registering PDATA/XDATA to manage and report unhandled exceptions (but not for embedded builtins). Since it is not possible to register multiple PDATA entries for the same address range, a new function is added to the V8 API: SetUnhandledExceptionCallback() can be used by an embedder to register its own unhandled exception handler for exceptions that arise in v8-generated code. V8 embedders should be modified accordingly (code for this is in a separate PR in the Chromium repository: https://chromium-review.googlesource.com/c/chromium/src/+/1474703). All these changes are experimental, behind: the 'v8_win64_unwinding_info' build flag, and the '--win64-unwinding-info' runtime flag. Bug: v8:3598 Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Paolo Severini <paolosev@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60330}
-
- 17 Dec, 2018 2 commits
-
-
Clemens Hammacher authored
C++ introduces the {alignof} keyword, which evaluates to an integral constant defining the alignment of the given type. This makes {V8_ALIGNOF} redundant. R=ulan@chromium.org Bug: v8:8562 Change-Id: I15a4022c2c396afba96360f218d8a04b17a9a448 Reviewed-on: https://chromium-review.googlesource.com/c/1379938 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#58292}
-
Clemens Hammacher authored
C++ introduces the {alignas} keyword, which can be used with types or integral constant expressions. Use this instead of the V8_ALIGNAS (for types) or V8_ALIGNED (for integral constants) macros. R=ulan@chromium.org Bug: v8:8562 Change-Id: I54999b56a5715237f88c63d8543ef728a5b2eff5 Reviewed-on: https://chromium-review.googlesource.com/c/1379935Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58290}
-
- 05 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
and split Smi out of objects.h into smi.h. Bug: v8:3770, v8:5402 Change-Id: I5ff7461495d29c785a76c79aca2616816a29ab1e Reviewed-on: https://chromium-review.googlesource.com/c/1313035Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#57252}
-
- 07 Sep, 2018 1 commit
-
-
Dan Elphick authored
Move everything defined in the v8::internal namespace from include/v8.h into a separate header that can be included by globals.h/checks.h instead of the whole v8.h. Also moves V8_EXPORT into v8config.h (so it can be use in the new v8-internal.h). Bug: v8:8015 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I22cdc2728d91a94b309a3d030ed06c0f8a06c723 Reviewed-on: https://chromium-review.googlesource.com/1210102Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#55707}
-
- 18 Jul, 2018 1 commit
-
-
Dan Elphick authored
Move brackets enclosing declarator in a couple of V8_DEPRECATE_SOON cases so that the attribute is correctly placed. I.e. should come after the class keyword and after a function signature but before the body. Also adds suppressions for a case where a replacement method calls the deprecated method it replaces. Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I490ff07a13552cf335186d64ca061f21ac4e8afc Reviewed-on: https://chromium-review.googlesource.com/1140593Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54527}
-
- 25 Apr, 2018 1 commit
-
-
Predrag Rudic authored
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I3fc1b53c43e53e12e041178912f372f33068d67c Reviewed-on: https://chromium-review.googlesource.com/1023418 Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#52775}
-
- 06 Apr, 2018 1 commit
-
-
Clemens Hammacher authored
Replace all uses with V8_WARN_UNUSED_RESULT. WARN_UNUSED_RESULT was defined in src/base/compiler-specific.h, which includes include/v8config.h, which already defined V8_WARN_UNUSED_RESULT. R=mstarzinger@chromium.org Bug: v8:7570 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I662072294605036ca5aa0c8fdaa0218ac5d95f23 Reviewed-on: https://chromium-review.googlesource.com/998893Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52457}
-
- 26 Jun, 2017 1 commit
-
-
Clemens Hammacher authored
There were only two uses. Replace them by [[noreturn]] directly. R=jarin@chromium.org BUG=v8:6474 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I965f74f5b3493cfef9efd698f24bf00216442fd8 Reviewed-on: https://chromium-review.googlesource.com/544845Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46205}
-
- 13 Jun, 2017 1 commit
-
-
Clemens Hammacher authored
Since we require C++11 support now, there is no need to use __attribute__ or __declspec, all compilers should support the [[noreturn]] attribute. R=jarin@chromium.org BUG=v8:6474 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I6c478c69658fd23c1c8ca468fbf3c6a36474ef66 Reviewed-on: https://chromium-review.googlesource.com/529072Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45909}
-
- 11 Jun, 2017 1 commit
-
-
scottmg authored
Sufficient to compile //v8 in Chrome with target_os="fuchsia". Doesn't link yet, due to missing implementations (primarily VirtualMemory, as well as a few utility functions). BUG=chromium:731217 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2931143002 Cr-Commit-Position: refs/heads/master@{#45831}
-
- 15 May, 2017 1 commit
-
-
Wiktor Garbacz authored
Change-Id: Ie141097c12ad578c752f51393bd5a5df176b3cad Reviewed-on: https://chromium-review.googlesource.com/504528 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45301}
-