- 15 Dec, 2021 1 commit
-
-
Samuel Groß authored
This CL renames a number of things related to the V8 sandbox. Mainly, what used to be under V8_HEAP_SANDBOX is now under V8_SANDBOXED_EXTERNAL_POINTERS, while the previous V8 VirtualMemoryCage is now simply the V8 Sandbox: V8_VIRTUAL_MEMORY_CAGE => V8_SANDBOX V8_HEAP_SANDBOX => V8_SANDBOXED_EXTERNAL_POINTERS V8_CAGED_POINTERS => V8_SANDBOXED_POINTERS V8VirtualMemoryCage => Sandbox CagedPointer => SandboxedPointer fake cage => partially reserved sandbox src/security => src/sandbox This naming scheme should simplify things: the sandbox is now the large region of virtual address space inside which V8 mainly operates and which should be considered untrusted. Mechanisms like sandboxed pointers are then used to attempt to prevent escapes from the sandbox (i.e. corruption of memory outside of it). Furthermore, the new naming scheme avoids the confusion with the various other "cages" in V8, in particular, the VirtualMemoryCage class, by dropping that name entirely. Future sandbox features are developed under their own V8_SANDBOX_X flag, and will, once final, be merged into V8_SANDBOX. Current future features are sandboxed external pointers (using the external pointer table), and sandboxed pointers (pointers guaranteed to point into the sandbox, e.g. because they are encoded as offsets). This CL then also introduces a new build flag, v8_enable_sandbox_future, which enables all future features. Bug: v8:10391 Change-Id: I5174ea8f5ab40fb96a04af10853da735ad775c96 Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3322981Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#78384}
-
- 29 Oct, 2021 1 commit
-
-
Samuel Groß authored
A CagedPointer is guaranteed to point into the Virtual Memory Cage and will for example be used for ArrayBuffer backing stores when the heap sandbox is enabled. In the current implementation, CagedPointers are stored as offsets from the cage base, shifted to the left. Because the cage base address is usually available in a register, accessing a CagedPointer is very efficient, requiring only an additional shift and add operation. Bug: chromium:1218005 Change-Id: Ifc8c088e3862400672051a8c52840514dee2911f Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3123417Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#77614}
-
- 14 Jun, 2021 1 commit
-
-
Peter Kasting authored
TNode has a templated constructor from TNode<U>, but this doesn't take precedence over the auto-generated copy constructor, which results in a warning being fired. Fix by adding an explicit copy constructor that does what the templated constructor does, which in turn requires fixing some missing #includes that slipped by due to the lack of LazyTemplateChecks() in the autogenerated copy constructor. Bug: chromium:1213098 Change-Id: Iad40950261af8f88396be9227355e4e013837341 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2953503Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Peter Kasting <pkasting@chromium.org> Cr-Commit-Position: refs/heads/master@{#75133}
-
- 31 Mar, 2021 1 commit
-
-
Igor Sheludko authored
This is a reland of 856e8577 The diff compared to the first attempt is that the tests that require SSSE3/AVX are not run when these CPU features are not available. Original change's description: > [dict-proto] SIMD support for SwissNameDictionary in Torque > > This CL adds a Torque-counterpart for swiss_table::GroupSse2Impl in > Torque. This allows the Torque version of SwissNameDictionary to use > SSE for lookups, rather than needing to bailout to the runtime on > x64/ia32. > > Bug: v8:11330 > Change-Id: I74e3f97c460a8b89031016967ec0e545265016a9 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787485 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> > Reviewed-by: Zhi An Ng <zhin@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73727} Bug: v8:11330 Cq-Include-Trybots: luci.v8.try:v8_linux_optional_rel_ng Change-Id: Ibfa5ae5a39333778ea0d0406d5ea4ad683ad0dbe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2794431Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73740}
-
- 30 Mar, 2021 2 commits
-
-
Zhi An Ng authored
This reverts commit 856e8577. Reason for revert: Broke https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20debug/34562/overview Original change's description: > [dict-proto] SIMD support for SwissNameDictionary in Torque > > This CL adds a Torque-counterpart for swiss_table::GroupSse2Impl in > Torque. This allows the Torque version of SwissNameDictionary to use > SSE for lookups, rather than needing to bailout to the runtime on > x64/ia32. > > Bug: v8:11330 > Change-Id: I74e3f97c460a8b89031016967ec0e545265016a9 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787485 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> > Reviewed-by: Zhi An Ng <zhin@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73727} Bug: v8:11330 Change-Id: I453b299455ac088f7e6ecde1e8003ef58d958b51 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2795270 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@{#73728}
-
Igor Sheludko authored
This CL adds a Torque-counterpart for swiss_table::GroupSse2Impl in Torque. This allows the Torque version of SwissNameDictionary to use SSE for lookups, rather than needing to bailout to the runtime on x64/ia32. Bug: v8:11330 Change-Id: I74e3f97c460a8b89031016967ec0e545265016a9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787485Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Zhi An Ng <zhin@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73727}
-
- 08 Mar, 2021 1 commit
-
-
Santiago Aboy Solanes authored
Instead of checking for the null TNode, we can use base::Optional. Bug: v8:6949 Change-Id: I550b2fdb507c61ea6128a0631351b22a8542d4d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737296 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#73260}
-
- 03 Mar, 2021 1 commit
-
-
Santiago Aboy Solanes authored
Also add the qualifier `compiler::` to places where it should have been used in the first place. Bug: v9:6949 Change-Id: Ib5ca6829cd9d72b1e3047afc92363910c902bbbf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2731529Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#73155}
-
- 02 Mar, 2021 1 commit
-
-
Santiago Aboy Solanes authored
Remove sloppy-ness from the CODE_ASSEMBLER_UNARY_OP macros and the remaining methods. Bug: v8:6949 Change-Id: I48e2800c6bac558ae4005fa09551a4551c1dbb25 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2725530 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#73139}
-
- 21 Jan, 2021 1 commit
-
-
Jakob Gruber authored
OWNERS files: removed tebbi's entry. TODOs: replaced with 'turbofan'. Change-Id: Ib7a90418b394f123b82051379f120f0323d04097 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639757Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Hablich <hablich@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#72223}
-
- 13 Nov, 2020 1 commit
-
-
Ross McIlroy authored
Makes ExternalReference count as a subclass of RawPtrT to enable either to be passed to these functions as base argument. BUG=v8:6949,v8:11074 Change-Id: I126856815ff7cdc0612e3c3fcdfdd4938cc19bfa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2534820 Auto-Submit: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#71171}
-
- 06 Nov, 2020 1 commit
-
-
Mythri A authored
StringAdd_CheckNone is called from Turbofan with an empty context. This builtin needs context when calling the StringAdd runtime function which could potentially throw. Turbofan does bounds check before calling this builtin so it is safe to pass an empty context. To enable TNodification of this builtin this cl adds a new type that either accepts a context or an empty context (Smi::Zero) and updates the builtin to use this new type. Bug: v8:6949, v8:11074 Change-Id: Iff12b391ff95109649f2c81fe081e277850f60d6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2523205 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#71018}
-
- 02 Nov, 2020 1 commit
-
-
Tobias Tebbi authored
Drive-by fixes: - Use constexpr types to determine C++ type names. - Fix factory constructors to not skip write barriers in old generation. Change-Id: I0ebbfd56c06ad41d02836fb48531ae7eded166bf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400994Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#70921}
-
- 17 Aug, 2020 1 commit
-
-
Jakob Kummerow authored
This is a comment-only CL. Change-Id: I002b1765bfa839982ab11c22f744734fdd34d4ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352788Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#69417}
-
- 05 Aug, 2020 1 commit
-
-
Tobias Tebbi authored
Make sure that Torque/CSA generated phi's get kRepWord32 instead of kRepWord8 or kRepWord16, since that's how we handle small integer values in Turbofan. Bug: v8:7793 Change-Id: I992b43287552b6117e90fbd0e11576470bc91509 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339096 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69253}
-
- 29 Jul, 2020 1 commit
-
-
Georg Neis authored
The bug was that the allocation of the result array (before the loop) was using the outer frame state, thus returning the allocation's result (an array full of holes) as the return value of the map operation in case the allocation triggers a lazy deopt. Bug: chromium:1104514 Change-Id: I9a6db8a5860472e1b438b6b54414938d61e166c1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2324249Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69129}
-
- 29 Apr, 2020 1 commit
-
-
Igor Sheludko authored
... and bottlenecks for C++, CSA, Torque, TurboFan and hand-written assembly. Bug: v8:10391 Change-Id: I62f8c6f9c934b2cd492e550b7c25f1078c2c6a71 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2134140 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#67479}
-
- 07 Feb, 2020 1 commit
-
-
Igor Sheludko authored
Bug: v8:10047 Change-Id: I140fcf453ce7dd6189e0f643f95570163b625456 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2043831 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#66173}
-
- 20 Dec, 2019 1 commit
-
-
Tobias Tebbi authored
This allows the definition of classes with several arrays and ports SmallOrderedHashTable subclasses to Torque as an example, including the existing CSA allocation functions for them. Overview of changes: - Introduce ResidueClass to encapsulate the modulo-arithmetic necessary to do alignment checks. - Add MachineOperatorReducer to the CSA pipeline to address now missing CSA ad-hoc constant folding that got blocked by a temporary phi. - Allow assignments to references to structs. This is needed to initialize the data_table part of SmallOrderedHashMap. - Make the NumberLiteralExpression AST-node store a double instead of a string. This is necessary to detect arrays with constant size used for padding. - Turn offsets into base::Optional<size_t> to ensure we don't use an invalid or statically unknown offset. - Remove CreateFieldReferenceInstruction since it doesn't work for complex offset computations and the logic can be expressed better in ImplementationVisitor. - Validate alignment of structs embedded in classes. Bug: v8:10004 v8:7793 Change-Id: Ifa414b42278e572a0c577bf9da3d37f80771a258 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958011 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#65538}
-
- 28 Nov, 2019 1 commit
-
-
Jakob Gruber authored
... for convenient TNode access (e.g.: PhiAt, LoadField, LoadElement). Bug: v8:9972 Change-Id: Ie6f5f204079cf7c84279d1cb015055816f301916 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940254 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65243}
-
- 11 Nov, 2019 3 commits
-
-
Santiago Aboy Solanes authored
Bug: v8:9810 Change-Id: I915e0b1f903e8c5aa75280965819b2efb9fdc6dd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906206Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#64887}
-
Ross McIlroy authored
Also Tnodifies TryPrototypeChainLookup. Bug: v8:9810 Change-Id: I4950ad3bbcfcf3528589d343282517ee0b57e65f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906375Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#64881}
-
Tobias Tebbi authored
Overview: - Change basic type hierarchy to split Tagged into StrongTagged (= Object) and and WeakHeapObject. This enables to emit the right CSA types (Object, MaybeObject). - The new Weak<T> type encodes a possibly cleared weak bit pattern that points to type T if it's not cleared. - Make TNode<Object> a subtype of TNode<MaybeObject> so that the generated code compiles on the C++ side. Drive-by change: simplify a few CSA helpers by using MaybeObject as a common supertype of MaybeObject and Object. - Port CreateObjectWithoutProperties and LoadMapPrototypeInfo. Bug: v8:7793 Change-Id: I895a6501ce3e287ea8cf4065aaff3a5535245ab4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889870Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64876}
-
- 12 Sep, 2019 2 commits
-
-
Santiago Aboy Solanes authored
TNodified: * EmitCreateShallowArrayLiteral * EmitCreateShallowObjectLiteral Also propagated the TNodification of AllocationSite. Previously it was used a lot with nullptr, and that changed to {}. Bug: v8:6949, v8:9396 Change-Id: I8ed04d2d346f5960bba23a233c3dd244ad7f122a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795346 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#63725}
-
Tobias Tebbi authored
This enables using TNode types without including code-assembler.h, which is useful when generating CallInterfaceDescriptors. As a drive-by, this moves TNode from v8::internal::compiler to v8::internal. It's only used outside of the compiler anyway. Change-Id: I3d938c22366a3570315041683094f77b0d1096a2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1798425 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#63721}
-