- 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}
-
- 01 Jul, 2021 1 commit
-
-
Peter Kasting authored
There are still a few cases remaining that seem more controversial; I'll upload those separately. Bug: chromium:1066980 Change-Id: Iabbaf23f9bbe97781857c0c589f2b3db685dfdc2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2994804 Commit-Queue: Peter Kasting <pkasting@chromium.org> Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#75494}
-
- 24 Jun, 2021 1 commit
-
-
Thibaud Michaud authored
Because of catch-less try blocks, we have to check the exception stack one more time so that we don't try to rethrow to an outer try scope if this is already the outermost one. R=clemensb@chromium.org Bug: chromium:1219746 Change-Id: I6ad7e4afec669f04bc10197998db5d6eb38a2205 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2983205Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#75355}
-
- 21 Jun, 2021 1 commit
-
-
Clemens Backes authored
The WasmEngine is shared across the whole process, so there is no need to store it in every Isolate. Instead, we can just get it from everywhere on any thread using {wasm::GetWasmEngine()}, which is a simple read of a global. R=jkummerow@chromium.org Bug: v8:11879 Change-Id: I13afb8ca3d116aa14bfaec5a4bbd6d71faa9aa17 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2969825Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75265}
-
- 18 Jun, 2021 1 commit
-
-
Dan Elphick authored
The adding of base:: was mostly prepared using git grep and sed: git grep -l <pattern> | grep -v base/vector.h | \ xargs sed -i 's/\b<pattern>\b/base::<pattern>/ with lots of manual clean-ups due to the resulting v8::internal::base::Vectors. #includes were fixed using: git grep -l "src/utils/vector.h" | \ axargs sed -i 's!src/utils/vector.h!src/base/vector.h!' Bug: v8:11879 Change-Id: I3e6d622987fee4478089c40539724c19735bd625 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2968412Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#75243}
-
- 14 Jun, 2021 3 commits
-
-
Thibaud Michaud authored
Relevant links: https://github.com/WebAssembly/exception-handling/issues/153 https://github.com/WebAssembly/exception-handling/pull/156 R=clemensb@chromium.org Bug: v8:8091 Change-Id: I0deeb9665c6648e643d0aa4f310b7676e1c2fa32 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2959624 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75135}
-
Thibaud Michaud authored
Now that try blocks don't need a catch handler, ensure that we still properly close the scope when we handle the "end" opcode. R=clemensb@chromium.org Change-Id: I012939d5b3ee9caee9275a2f0abd65e517593870 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2959623Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#75126}
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: I3fa510b4dc35d3f58532ecbbeecd79d2826ff667 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2951722 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75115}
-
- 10 Jun, 2021 1 commit
-
-
Manos Koukoutos authored
Changes: - Remove endianness transformations from WasmValue contstructors. WasmValue will now use the system's endianness. Remove CopyToWithSystemEndianness. - Remove endianness transformation from global variable load/stores in: wasm-compiler.cc, liftoff-compiler.cc, wasm-objects{.cc, -inl.h}, and wasm-interpreter.cc - Adjust SIMD tests that directly access part of a value by changing which lane they access within that value. We do that by introducing a LANE macro and use it over ReadLittleEndianValue. Change-Id: I99e97c6eae72e9a135b184633ec266049803bb03 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2944437 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Zhi An Ng <zhin@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#75085}
-
- 04 Jun, 2021 1 commit
-
-
Manos Koukoutos authored
Changes: - Merge all immediates which read a u32_v index into IndexImmediate. Refactor overloaded Validate(const byte*, [Type]Immediate) functions to Validate[Type](const byte*, IndexImmediate). - Move MemoryIndexImmediate/MemoryAccessImmediate validation into their own Validate functions. Remove CheckHasMemory(), move its functionality into these Validate() functions. - Refactor MemoryInitImmediate, TableInitImmediate and CallIndirectImmediate as composite immediates. - Change field initializations for some Immediates to constructor initializers. This helps us drop some useless default constructors. - Use the correct pc in StackEffect for struct.new_default. Bug: v8:11831 Change-Id: I878f69a33f8473dc275184995b3b7b88fe0dfc8a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2928498Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#74948}
-
- 02 Jun, 2021 1 commit
-
-
Jakob Kummerow authored
This instruction is a non-standard V8-only experiment for now, hidden behind the --experimental-wasm-gc-experiments flag. The motivation is to provide a way to set up non-canonicalized RTT hierarchies, to enable expressing the type system of Java-like languages in terms of WasmGC constructs. Bug: v8:7748 Change-Id: Idf1c18e9944c983f40f1e01b2032ee5fdc2fd81b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2930478Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74920}
-
- 31 May, 2021 1 commit
-
-
Thibaud Michaud authored
The delegate instruction is executed when an exception is thrown, not after the last instruction of the block. Handle reachability accordingly. R=ahaas@chromium.org Bug: chromium:1212396 Change-Id: I55e342cd73da44142cfbad7e16ab65ef513e6a60 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2928499Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#74855}
-
- 27 May, 2021 1 commit
-
-
Manos Koukoutos authored
Changes: - Add --experimental-wasm-gc-experiments flag. - Add array.copy opcode. Implement it in decoding and code generation behind the new flag. - Add WasmCodeBuilder::BoundsCheckArrayCopy. Move BoundsCheckArray to the private section. - Add WasmArrayCopy and WasmArrayCopyWithChecks builtin. - Add WasmArrayCopy runtime function. - Add WasmArray::ElementSlot. - Always print two hex digits in CHECK_PROTOTYPE_OPCODE. - In test-gc, print the thrown-error message if the function should not throw. - In test-gc, add GetResultObject with one argument. Bug: v8:7748 Change-Id: I58f4d37e254154596cdef5e78482b55260dd3782 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2912729 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74806}
-
- 21 May, 2021 1 commit
-
-
Manos Koukoutos authored
Additional changes: - Clean up liftoff implementation of br_on_*. - Bundle operations everywhere based on operation rather than type. - Remove reference argument from WASM_BR_ON_* macros, to bring them in sync with WASM_BR_ON_CAST. - Add missing function decoding unittests for br_on_*. Bug: v8:7748 Change-Id: I5f5ebfac5b50b5a9a201acb435344d7471326242 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2909857Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#74709}
-
- 20 May, 2021 1 commit
-
-
Manos Koukoutos authored
This is a reland of 8f39a585 Changes compared to original: Change the type of arguments of WASM_I32V from byte to int for MSVC compatibility. Original change's description: > [wasm-gc] Implement br_on_cast_fail > > Bug: v8:7748 > Change-Id: I7894ad51ccf8ac41a5081c272a583a4ff25c1835 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2900225 > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74652} Bug: v8:7748 Change-Id: I39f39ff6979382f5618683a8e7754f56df4ec9e3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2905599Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#74689}
-