- 11 May, 2022 1 commit
-
-
Deepti Gandluri authored
Prototype the instruction on the interpreter, and Arm64. Details of instruction lowerings on all relevant architectures can be found at: https://github.com/WebAssembly/relaxed-simd/issues/40 Bug: v8:12284 Change-Id: Id4cb3889d94cf0bb7169ea068efe5ca68cfcbad9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3636365 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#80475}
-
- 09 May, 2022 1 commit
-
-
Deepti Gandluri authored
Add new opcode numbers for relaxed-simd opcodes as in: https://github.com/WebAssembly/relaxed-simd/pull/61, and updates for decoded opcodes larger than two bytes. Bug: v8:12284 Change-Id: I0bff22812243a39599bfeee3c0bc69171dd3c7d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3625835Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#80432}
-
- 05 May, 2022 1 commit
-
-
Peter Kasting authored
This prevents ambiguity errors in C++20 due to ADL when casting types in std::, which gains std::bit_cast<>(). Bug: chromium:1284275 Change-Id: I25046d1952a9304852e481ad8b84049c6769c289 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3625838 Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/main@{#80378}
-
- 22 Apr, 2022 1 commit
-
-
Deepti Gandluri authored
These were originally proposed as a part of the fixed-width SIMD proposal, and were then migrated to the relaxed-simd proposal which also deems these operations out of scope. Github issue: https://github.com/WebAssembly/relaxed-simd/issues/4 Bug: v8:12284 Change-Id: I65ceb6dfd25c43cf49bd7ec5b5ecd6b32cc3516a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3595970Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#80125}
-
- 01 Mar, 2022 1 commit
-
-
Manos Koukoutos authored
According to the latest changes in wasm-gc, externref will be renamed to anyref, and will be assigned as the top of the reference type hierarchy. Since in the current wasm type system funcref is not a subtype of anyref, subtyping is now dependent on whether wasm-gc is enabled. Bug: v8:7748 Change-Id: I0c0ae3dd5523e624d4490ca33d1fba4c2ae59393 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3468345Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79322}
-
- 17 Feb, 2022 1 commit
-
-
Manos Koukoutos authored
Changes: - Simplify GetRefTypeName. - Simplify WasmModuleDebug::GetWasmValue. - Fix some signature issues in tests. Change-Id: I61b9a48c0fbce0bc9cc74771412bdb8977880697 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3468344Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79137}
-
- 31 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
Since inheritance depth of every type is known in the isorecursive hybrid type system, rtts with depth are removed. This enables simplification of type checks in Liftoff and Turbofan, as well as decoding of object allocation instructions. Bug: v8:7748 Change-Id: I6b52579b584191d92644de1c6e805d9f054641d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3422626Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78860}
-
- 27 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
This CL replaces the equirecursive type system for wasm-gc with the isorecursive hybrid type system presented here: https://github.com/WebAssembly/gc/issues/257. In broad strokes, this includes the following changes: - In the module decoder, remove equirecursive types. Implement recursive type groups, subtype definitions, and function/struct/array definitions. Treat nominal modules as syntactic sugar of an isorecursive module, where all types belong in the same recursive group. - Remove rtt.sub and all related infrastructure. - Change subtyping to work with explicit supertypes only. - Add ValidSubtypeDefinition in subtyping, to check that subtype declarations are valid during decoding. - Remove the subtyping cache. - Add support for functions to have specific signature index in WasmModuleBuilder and in test-gc.cc. - Adapt tests. Current restrictions: - Recursive groups are not stored beyond decoding. - Type canonicalization is not implemented. No tests relying on types being considered identical post-canonicalization. - No cross-module subtyping is possible. Tests relying on cross-module subtyping have been commented out. Bug: v8:7748 Change-Id: I69fd04ecc5611f6230c95d5c89d1c520163fffae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416239Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78816}
-
- 19 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
This is a reland of f1c2a208 Changes compared to original: Revert test change which used simd and caused problems in multiple test configurations. Original change's description: > [wasm] Various small cleanups/fixes > > Changes: > - Fix a bug in objects-printer where array elements were not treated as > tagged pointers. > - Fix a few TODOs, mainly in the wasm interpreter. > - Improve documentation, small refactorings. > > Change-Id: I1d70ad454b3a0693b9b784b17395434d81d01b61 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3383136 > Reviewed-by: Nikolaos Papaspyrou <nikolaos@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78656} Change-Id: I91f4fed5fbc91acb8b42413a6f40a8202bd43096 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3398111Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78677}
-
- 18 Jan, 2022 1 commit
-
-
Maya Lekova authored
This reverts commit f1c2a208. Reason for revert: Breaks some tests on no-sse configuration, please see https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux/45243/overview Original change's description: > [wasm] Various small cleanups/fixes > > Changes: > - Fix a bug in objects-printer where array elements were not treated as > tagged pointers. > - Fix a few TODOs, mainly in the wasm interpreter. > - Improve documentation, small refactorings. > > Change-Id: I1d70ad454b3a0693b9b784b17395434d81d01b61 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3383136 > Reviewed-by: Nikolaos Papaspyrou <nikolaos@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78656} Change-Id: Ic698177259bb14b4c251a4212c79cc0d945b07f8 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3398109 Auto-Submit: Maya Lekova <mslekova@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Maya Lekova <mslekova@chromium.org> Owners-Override: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#78657}
-
- 17 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
Changes: - Fix a bug in objects-printer where array elements were not treated as tagged pointers. - Fix a few TODOs, mainly in the wasm interpreter. - Improve documentation, small refactorings. Change-Id: I1d70ad454b3a0693b9b784b17395434d81d01b61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3383136Reviewed-by: Nikolaos Papaspyrou <nikolaos@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78656}
-
- 12 Jan, 2022 2 commits
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: I5280a22240ef5e920f701e991ed13d8b8881fc6b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3377122Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78584}
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: Ieedb5bb0d6555cdf6c628f6700f7116ca142a2d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3376963Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78577}
-
- 11 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
We introduce a type arrayref, which is a supertype of all array types and a subtype of dataref. We change array.len to accept values of type (ref null array). Drive-by: Fix kEq/kData case in TypecheckJSObject. Bug: v8:7748 Change-Id: I47c6a4487ddf5e7280c1427f43abe87a97c896bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3368105Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78565}
-
- 24 Nov, 2021 1 commit
-
-
Manos Koukoutos authored
Design doc: bit.ly/3jEVgzz We separate the internal representation of function references in Wasm from their JSFunction-based (external) representation. This improves performance of call_ref by requiring less indirections to load the context and call target from a function reference. In the boundary between wasm and JS/the C API, we add transformations between the two representations. Detailed changes: - Introduce WasmInternalFunction, containing fields required by call_ref, as well as a reference to the corresponding WasmExternalFunction. Add a reference to the WasmInternalFunction in WasmFunctionData. The {WasmInternalFunction::FromExternal} helper extracts the internal out of an external function. - Change {WasmInstanceObject::external_functions()} to internal functions. - Change wasm function tables to contain internal functions. - Change the following code to use internal functions: - call_ref in liftoff and Turbofan - function type checks in liftoff and Turbofan - CallRefIC and GenericJSToWasmWrapper builtins - {InitExprInterface::RefFunc} - module-compiler.cc in {ProcessTypeFeedback} - In module-instantiate.cc, in function-rtt creation. - Add transformations between internal and external functions in: - WasmWrapperGraphBuilder::{ToJS, BuildUnpackObjectWrapper, FromJS, BuildJSToJSWrapper}. - debug-wasm-objects.cc in {FunctionProxy::Get}, {WasmValueObject::New} and {AddWasmTableObjectInternalProperties}. - runtime-wasm.cc in ReplaceWrapper - the C and JS APIs - module-instantiate.cc, in import and export processing, as well as {InitializeIndirectFunctionTables} - WasmTableObject::{IsValidElement, SetFunctionTableEntry} - {WasmGlobalObject::SetFuncRef} - Simplify body descriptors of WasmExternalFunction variants. - Adjust tests. Bug: v8:11510 Change-Id: I8377f46f55c3771391ae1c5c8201a83854ee7878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3277878Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78068}
-
- 16 Nov, 2021 1 commit
-
-
Milad Fa authored
Due to a bug on AIX, some of the glibc FP functions do not preserve the sign bit when a negative input is passed by value and the output is rounded to 0: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97086 This CL continue the fixes previously added here: https://crrev.com/c/2468618 Change-Id: I2afa1f67ac1d29ec0606de6d6ebcf05be0664b8d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3282308Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#77915}
-
- 08 Nov, 2021 1 commit
-
-
Manos Koukoutos authored
Since the indirect function table at index 0 in an instance is now represented like the other tables, the IndirectFunctionTableEntry abstraction is no more useful. We replace it with direct access to the tables and a simpler abstraction {FunctionTargetAndRef}. Bug: v8:11510 Change-Id: Iab4a6ca7eda8eb1757dbd321cb3997e98e78267e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3247030 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#77754}
-
- 28 Oct, 2021 1 commit
-
-
Ng Zhi An authored
4 instructions, int32x4.trunc_f32x4_{s,u}, int32x4.trunc_f64x2_{s,u}_zero. Drive-by cleanup to wasm-interpreter to use saturated_cast. The machine ops are named <int>Trunc<float>, dropping the "sat" since these don't do any saturation anymore. Bug: v8:12284 Change-Id: I2d4d6a61b819b287fee69e3eea03dd3151cfa10d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3223166Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77598}
-
- 21 Oct, 2021 1 commit
-
-
Ng Zhi An authored
Relaxed f32x4 and f64x2 min and max. These instructions only guarantee results when the inputs are non nans, and when the inputs are not 0s of opposite signs. Reuse existing float binop testing harnesses and add special checks for such constants when relaxed operations are being tested. Drive-by rename of x64 instruction codes to be Minps/Maxps/Minpd/Maxpd since they map down exactly to a single instruction. Bug: v8:12284 Change-Id: I1449dbfa87935a96d7d260db22667ab7b9e86601 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3218196Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77484}
-
- 14 Oct, 2021 1 commit
-
-
Ng Zhi An authored
4 instructions, i8x16, i16x8, i32x4, i64x2 relaxed lane select. These instructions only guarantee results when the entire lane is set or unset, so vpblendvb will give correct results for all of them. Bug: v8:12284 Change-Id: I76959a23f2d97de8ecc3bef43d138184484e3c4d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3207006Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77401}
-
- 11 Oct, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:12284 Change-Id: I3519dfa3302c5851585c7430a9930ccd81507090 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3206502 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#77327}
-
- 07 Oct, 2021 1 commit
-
-
Jakob Kummerow authored
This patch adds infrastructure for collecting feedback about call_ref call targets in Liftoff code, and using that feedback for turning such calls into inlineable direct calls when building Turbofan graphs. The feature is considered experimental quality and hence off by default, --wasm-speculative-inlining turns it on. Bug: v8:7748 Change-Id: I0d0d776f8a71c3dd2c9124d3731f3cb06d4f5821 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3205902 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#77287}
-
- 28 Sep, 2021 1 commit
-
-
Thibaud Michaud authored
When handling the 'end' opcode, there was a confusion with the value of "unreachable". This DCHECK assumes the value of "unreachable" before closing the scope, but was placed after the value is potentially updated to reflect the state after the 'end' opcode. R=clemensb@chromium.org Bug: chromium:1251845 Change-Id: Iea526e6485fa705f6ff4077f54a53204cc70a926 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3190102Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#77116}
-
- 27 Sep, 2021 1 commit
-
-
Andreas Haas authored
R=thibaudm@chromium.org Bug: v8:12244 Change-Id: I9012ec21f4dbf2c644b0cb3964e545bfb2b2112c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3182442Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#77092}
-
- 24 Sep, 2021 1 commit
-
-
Clemens Backes authored
Some macros are redundant or unused. - WASM_RETURN1 is identical to WASM_RETURN. - WASM_RETURNN has an unused {count} parameter, and is otherwise identical to WASM_RETURN. - WASM_IFB is identical to WASM_IF. - WASM_CASE and WASM_CASE_BR are unused. - WASM_BR_TABLEV is unused. R=thibaudm@chromium.org Bug: v8:12244 Change-Id: Ie7be00351f2dfe38d6e84d80e157a85df37233a9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3178860Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#77056}
-
- 20 Sep, 2021 1 commit
-
-
Igor Sheludko authored
... and move methods that use XXX::cast() there. This will untangle the include cycle that'll happen in a follow-up CLs. Bug: v8:11880 Change-Id: Iba46bc9b0e0df9530197f57d0469456eb9006e66 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3164456Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#76932}
-
- 17 Sep, 2021 1 commit
-
-
Thibaud Michaud authored
The recent change in the delegate semantics was incorrectly implemented in the interpreter. It only checked that the first opcode of the target block is a 'try': we also need to skip try blocks when we are already in their 'catch' or 'catch_all' sub-block. Use the exception_stack instead, since it already only contains indices of try blocks that haven't reached their handlers yet. R=clemensb@chromium.org Bug: chromium:1249306 Change-Id: I15746b4bfabf3dcf04cfe0f2ad438c573cce65e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168622 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#76919}
-
- 15 Sep, 2021 1 commit
-
-
Jakob Kummerow authored
Per https://github.com/WebAssembly/gc/issues/234, this implements "nominal" type definitions with explicit supertypes, and statically typed RTT-less instructions for allocation and testing/casting. This should be fully backwards compatible with existing Wasm modules. Spec: https://bit.ly/3cWcm6Q ("version 4") Bug: v8:7748 Change-Id: Id5a1399b368fdfad22036cfd66f1bef593e640f7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3144916 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#76844}
-
- 13 Sep, 2021 1 commit
-
-
Thibaud Michaud authored
The "unreachable" state is usually reset in the first catch block. Ensure that this is done for catchless tries too. R=clemensb@chromium.org Bug: chromium:1246712 Change-Id: If746a3fe3158b0bac4b9b02e4978ca444f8ce427 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3157949Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#76791}
-
- 08 Sep, 2021 1 commit
-
-
Thibaud Michaud authored
Bug: v8:8091, chromium:1247119 Change-Id: Icafd0bf9277aed835032396c2512e7d991407e0d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3144910Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#76720}
-
- 17 Aug, 2021 1 commit
-
-
Ilja Iskovs authored
This is a reland of 2261e053 This patch can now be relanded as some space was made for more opcodes: https://bugs.chromium.org/p/v8/issues/detail?id=12093 Original change's description: > [arm64][wasm] Use NEON S/Usra for Wasm SIMD add(shr(x, imm), y) > > A single AArch64 SIMD signed/unsigned Shift Right and Accumulate can be > used to implement Wasm SIMD add(shr(x, imm), y). This gives a 1-1.5% > improvement on some compute intensive Wasm benchmarks on Neoverse-N1. > > Mla and Adalp optimisations were refactored to match the style of the > added code. > > Change-Id: Id5959a31ca267e02b7d60e7ff6f942adb029b41e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3089157 > Reviewed-by: Zhi An Ng <zhin@chromium.org> > Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> > Cr-Commit-Position: refs/heads/master@{#76280} Change-Id: Idd166b7d3c960af33049bbce6e7276763c28f286 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097284 Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> Reviewed-by: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#76340}
-
- 13 Aug, 2021 2 commits
-
-
Clemens Backes authored
This reverts commit 2261e053. Reason for revert: No issues with the CL, but it is taking the last two available opcodes on arm64 (we use 9 bits to encode it, so we are limited to 512 opcodes). We need to land a security fix which includes the addition of two opcodes. Before relanding this, we need to figure out a strategy to either reduce opcodes, or use one more bit to encode them. Original change's description: > [arm64][wasm] Use NEON S/Usra for Wasm SIMD add(shr(x, imm), y) > > A single AArch64 SIMD signed/unsigned Shift Right and Accumulate can be > used to implement Wasm SIMD add(shr(x, imm), y). This gives a 1-1.5% > improvement on some compute intensive Wasm benchmarks on Neoverse-N1. > > Mla and Adalp optimisations were refactored to match the style of the > added code. > > Change-Id: Id5959a31ca267e02b7d60e7ff6f942adb029b41e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3089157 > Reviewed-by: Zhi An Ng <zhin@chromium.org> > Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> > Cr-Commit-Position: refs/heads/master@{#76280} Change-Id: Ifad0625ed8a6b66e7a7a74da11ad7d60941207e5 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3094014 Auto-Submit: Clemens Backes <clemensb@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@{#76282}
-
Ilja Iskovs authored
A single AArch64 SIMD signed/unsigned Shift Right and Accumulate can be used to implement Wasm SIMD add(shr(x, imm), y). This gives a 1-1.5% improvement on some compute intensive Wasm benchmarks on Neoverse-N1. Mla and Adalp optimisations were refactored to match the style of the added code. Change-Id: Id5959a31ca267e02b7d60e7ff6f942adb029b41e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3089157Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> Cr-Commit-Position: refs/heads/master@{#76280}
-
- 12 Aug, 2021 1 commit
-
-
Ross McIlroy authored
These are no longer enabled, so remove the code mitigation logic from the codebase. BUG=chromium:1003890 Change-Id: I536bb1732e8463281c21da446bbba8f47ede8ebe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3045704 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#76256}
-
- 03 Aug, 2021 1 commit
-
-
Thibaud Michaud authored
Also introduce a separate error type for WebAssembly.Exception, since the properties should not be added to RuntimeError. R=jkummerow@chromium.org Bug: v8:11992 Change-Id: I8f4ae0da9a95184366e07dc43e58a5a9ff4382ae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055304Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#76061}
-
- 29 Jul, 2021 1 commit
-
-
Thibaud Michaud authored
The JS API constructor was renamed to "WebAssembly.Tag" to match the spec: https://github.com/WebAssembly/exception-handling/issues/159 Rename "exception" to "tag" throughout the codebase for consistency with the JS API, and to match the spec terminology (e.g. "tag section"). R=clemensb@chromium.org,nicohartmann@chromium.org Bug: v8:11992 Change-Id: I63f9f3101abfeefd49117461bd59c594ca5dab70 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053583Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75994}
-
- 27 Jul, 2021 1 commit
-
-
Thibaud Michaud authored
R=jkummerow@chromium.org Bug: v8:11992 Change-Id: If62f2cdc080364dec796a836321110bf571769ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049075 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75937}
-
- 26 Jul, 2021 1 commit
-
-
Andreas Haas authored
It is very unlikely that atomic.wait does anything useful in the fuzzer, and will most likely just timeout the fuzzer. That's why it's better to just disallow atomic.wait on the fuzzer. R=thibaudm@chromium.org Bug: chromium:1229074 Change-Id: I57aaff013964fa4c0e6ab411789e53a9013cabd2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053584Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#75920}
-
- 07 Jul, 2021 2 commits
-
-
Clemens Backes authored
We had some (dead) logic to create different parameter values pending on the position of the parameter. As it was not used any more, it got removed in https://crrev.com/c/3003464. This CL changes the existing logic for creating default parameter values to use a similar logic, which matches what --wasm-fuzzer-gen-test creates and has a slightly higher chance of triggering interesting behaviour. R=ahaas@chromium.org Change-Id: Ibb4394c1978f25d70166a03002e084211bfe7e1e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3003465 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#75619}
-
Manos Koukoutos authored
Changes: - Add reference types and simd to GetValueType(). - Generalize BlockScope to handle reference types. Add EmitValueType() to WasmFunctionBuilder. - Constrain local_op and global_op to non-simd numeric types. - Add GenerateOneOf() for functions that need a heap type. Add GenerateOptRef(). Add ref_null, get_local_opt_ref as options for GenerateOptRef(). - Remove the numeric conversion logic from ConsumeAndGenerate. Bug: v8:11954 Change-Id: Idebae4a537326bdc03ac2f5e9c69a519f196938c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3009456 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#75614}
-