- 19 Jul, 2021 1 commit
-
-
Clemens Backes authored
This prepares the trap handler to support being used from simulators. Modifications to the arm64 simulator will be done in a follow-up CL. For now, the trap handler will be registered but not used in Wasm (we emit explicit bounds checks instead, as before). The implementation uses inline assembly, so it is only available on x64 POSIX systems for now. This is the main platform we use for testing and for fuzzing, so it should give us the test coverage we need. If needed, inline assembly for other platforms can be added later. The new code will be executed by the existing arm64 simulator bots, e.g. "V8 Linux - arm64 - sim". R=ahaas@chromium.org, mseaborn@chromium.org Bug: v8:11955 Change-Id: Idc50291c704d9dea902ae0098e5309f19055816c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3011160 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#75780}
-
- 07 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
Behind a new --experimental-wasm-nn-locals flag. The checking policy implemented here is that locals count as initialized until the end of the current control structure, as described here: https://github.com/WebAssembly/function-references/issues/44#issuecomment-801977331 Bug: v8:7748 Change-Id: I954fdf1b4e02ed4b45ef61b8379b7c0bbe802400 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3010283Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75613}
-
- 01 Jul, 2021 1 commit
-
-
Manos Koukoutos authored
Changes: - Use a lightweight WasmElemSegment::Entry struct to store element segment entries in a WasmModule. - Also, restructure LoadElemSegmentImpl to handle all types of global.get entries correctly. - Simplify InitializeIndirectFunctionTables and make it handle all types of entries correctly. - In the above two cases, reject WasmJSFunctions for now. Bug: v8:11895 Change-Id: Ie714f8c7f1af8959486138d2ad49bc622a89276d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2991248 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75513}
-
- 30 Jun, 2021 4 commits
-
-
Manos Koukoutos authored
This is a reland of 071a1acf Changes compared to original: Expect SIMD test to fail if SIMD is not supported. Original change's description: > [wasm] Refactor initializer expression handling > > Design doc: https://bit.ly/3xPxWUe > > This CL introduces two main changes: > - Initializer expressions are now decoded by WasmFullDecoder. With > wasm-gc, initializer expressions are no longer just constants, and > require complex decoding (including stack tracking). This resulted in > extensive code duplication. > - Initializer expressions are not stored explicitly by module-decoder as > an AST (WasmInitExpr), but rather as a WireBytesRef, and are decoded > again during module instantiation. This should reduce memory > consumption for globals and other module elements with initializer > expressions (which has been observed in the 40MB range in some > real-world benchmarks. > > Summary of changes: > - Add a static parameter {kFunctionBody, kInitExpression} to the > WasmDecoder. Use it to specialize validation to function bodies/init. > expressions. > - Introduce a new Interface for the WasmFullDecoder for init. > expressions. > - Differentiate between constant and non-constant opcodes in > WasmFullDecoder. > - Change representation of init. expressions in WasmModule to > WireBytesRef. > - Reimplement EvaluateInitExpression in module-instantiate to re-decode > initializer expressions. > - Remove some now-invalid module decoder tests. > > Pending changes: > - Also refactor initializer expressions for element segment entries. > - Reintroduce deleted tests. > > Bug: v8:11895 > Change-Id: I76512bfe1386c8338667d30fa6db93880a1e4b42 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972910 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75476} Bug: v8:11895 Change-Id: I2dface5ff28d5a2d439a65d3e5cb83135c061bb9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2997722 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75492}
-
Clemens Backes authored
This reverts commit 071a1acf. Reason for revert: Breaks on nosse: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux/42795/overview Original change's description: > [wasm] Refactor initializer expression handling > > Design doc: https://bit.ly/3xPxWUe > > This CL introduces two main changes: > - Initializer expressions are now decoded by WasmFullDecoder. With > wasm-gc, initializer expressions are no longer just constants, and > require complex decoding (including stack tracking). This resulted in > extensive code duplication. > - Initializer expressions are not stored explicitly by module-decoder as > an AST (WasmInitExpr), but rather as a WireBytesRef, and are decoded > again during module instantiation. This should reduce memory > consumption for globals and other module elements with initializer > expressions (which has been observed in the 40MB range in some > real-world benchmarks. > > Summary of changes: > - Add a static parameter {kFunctionBody, kInitExpression} to the > WasmDecoder. Use it to specialize validation to function bodies/init. > expressions. > - Introduce a new Interface for the WasmFullDecoder for init. > expressions. > - Differentiate between constant and non-constant opcodes in > WasmFullDecoder. > - Change representation of init. expressions in WasmModule to > WireBytesRef. > - Reimplement EvaluateInitExpression in module-instantiate to re-decode > initializer expressions. > - Remove some now-invalid module decoder tests. > > Pending changes: > - Also refactor initializer expressions for element segment entries. > - Reintroduce deleted tests. > > Bug: v8:11895 > Change-Id: I76512bfe1386c8338667d30fa6db93880a1e4b42 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972910 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75476} Bug: v8:11895 Change-Id: I9fcfdedad73ef21beb9632f50305b8e678a2dff6 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2997582 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@{#75484}
-
Manos Koukoutos authored
Design doc: https://bit.ly/3xPxWUe This CL introduces two main changes: - Initializer expressions are now decoded by WasmFullDecoder. With wasm-gc, initializer expressions are no longer just constants, and require complex decoding (including stack tracking). This resulted in extensive code duplication. - Initializer expressions are not stored explicitly by module-decoder as an AST (WasmInitExpr), but rather as a WireBytesRef, and are decoded again during module instantiation. This should reduce memory consumption for globals and other module elements with initializer expressions (which has been observed in the 40MB range in some real-world benchmarks. Summary of changes: - Add a static parameter {kFunctionBody, kInitExpression} to the WasmDecoder. Use it to specialize validation to function bodies/init. expressions. - Introduce a new Interface for the WasmFullDecoder for init. expressions. - Differentiate between constant and non-constant opcodes in WasmFullDecoder. - Change representation of init. expressions in WasmModule to WireBytesRef. - Reimplement EvaluateInitExpression in module-instantiate to re-decode initializer expressions. - Remove some now-invalid module decoder tests. Pending changes: - Also refactor initializer expressions for element segment entries. - Reintroduce deleted tests. Bug: v8:11895 Change-Id: I76512bfe1386c8338667d30fa6db93880a1e4b42 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972910Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#75476}
-
Clemens Backes authored
This flag only controls whether d8 installs the signal handler for wasm traps. Hence it should be a d8-only flag, to avoid confusion if used in other embeddings. We just introduced --wasm-enforce-bounds-checks to do what you might think --no-wasm-trap-handler would do. R=ahaas@chromium.org Bug: v8:11926 Change-Id: Ic1f33af36236a2981cf060f450bbfd02e51d9793 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2989130 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#75459}
-
- 22 Jun, 2021 2 commits
-
-
Manos Koukoutos authored
We can get rid of this by deferring adding a new global to the module's globals, and using the current size of globals to determine allowed global indices. Bug: v8:11895 Change-Id: Ide80eab2de4abdbab96a7298acf3665599c394ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972908 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75295}
-
Manos Koukoutos authored
- Add an expected type argument in DecodeWasmInitExprForTesting. This eliminates the need to check for kWasmVoid in consume_init_expr. - Invoke StartDecoding() to initialize module in DecodeWasmInitExprForTesting. - Pass the current module to DecodeInitExprForTesting. - Adjust tests. Bug: v8:11895 Change-Id: I13b71b68a2011bf08742701cb9dd986afd6e55f8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972907 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75292}
-
- 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}
-
- 16 Jun, 2021 1 commit
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: I4382c73bf089672ab9f054754a87e27b51478b86 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964602 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75187}
-
- 14 Jun, 2021 2 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}
-
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}
-
- 11 Jun, 2021 1 commit
-
-
Thibaud Michaud authored
A try block may have no handler. Relevant links: https://github.com/WebAssembly/exception-handling/issues/131 https://github.com/WebAssembly/exception-handling/pull/157 R=clemensb@chromium.org Bug: v8:8091 Change-Id: Ia429762714dd87ed6b043f95c3496c65aaa8495f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2949100 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75100}
-
- 09 Jun, 2021 1 commit
-
-
Peter Kasting authored
Bug: chromium:1216696 Change-Id: I0918215c2e2b845bd7b39e06128d74382a467b05 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2950262 Commit-Queue: Peter Kasting <pkasting@chromium.org> Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#75062}
-
- 08 Jun, 2021 2 commits
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: I4d1badcc31accfc1a2efcd0d12118e7aa436e610 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2940894 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75011}
-
Manos Koukoutos authored
Changes: - Add struct.new_with_rtt as a new WasmInitExpr. Parse it in consume_init_expr(). Add it to InstanceBuilder::EvaluateInitExpression(). - Change WasmInitExpr::operand_ to vector operands_. - In consume_init_expr(), use parsed over hard-coded opcode length. - Improve WasmStruct::WasmStructPrint slightly. - Add Factory::NewWasmStruct(). - Add WasmValue::CopyToWithSystemEndianness. - In wasm-module-builder.js, generalize emit_init_expr for expressions with operands. Add missing init. expression types. - Add tests. Bug: v8:7748 Change-Id: Ica12378d202730aff1b57c7d4240aa00ef124f8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2940893 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@{#75006}
-
- 04 Jun, 2021 1 commit
-
-
Manos Koukoutos authored
Replacing existing values leads to type errors and printing wrong pcs in errors. Change-Id: I513eae0a7e0cb5764d307eb172a378d328ca3660 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2936596Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#74953}
-
- 02 Jun, 2021 2 commits
-
-
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}
-
Manos Koukoutos authored
- Maintain the correct stack in unreachable code for all type casts. - Compute the correct type for the pushed stack value for ref.cast. - Check if current_code_reachable_and_ok_ instead of checking the popped values' types against bottom. - Add unit tests. Bug: v8:7748 Change-Id: I02c26f526060f40884c4ff1e541315f71d8ad90a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2928191Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#74912}
-
- 25 May, 2021 1 commit
-
-
Andreas Haas authored
With this CL it is not possible anymore to initialize a func ref table with extern ref ref.null. R=manoskouk@chromium.org Change-Id: If6023da6fc21844dd813cc6191f2a4ca595f8b00 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2912577 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#74727}
-
- 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}
-
- 19 May, 2021 3 commits
-
-
Sathya Gunasekaran authored
This reverts commit 8f39a585. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win64%20-%20msvc/17874/blamelist 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: I90ca2d789e943cd00c2344e2d333c9175fcedee5 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2903482 Auto-Submit: Sathya Gunasekaran <gsathya@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@{#74658}
-
Manos Koukoutos authored
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}
-
Manos Koukoutos authored
We used to verify its index as if it was a function index. Bug: chromium:1210447 Change-Id: I5e015b1b11b22b6b7e7e13dac4945f8eb6f3d846 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2903153Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#74649}
-
- 14 May, 2021 2 commits
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: I9a4dad42f433ce0adf928461cf0db589df3d69e9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2897087 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74571}
-
Yuri Iozzelli authored
See https://github.com/WebAssembly/branch-hinting for a description of the proposal. Change-Id: Ib6e980fc20aa750decabdeb9e281f502c9fe84ed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784696 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74569}
-
- 05 May, 2021 1 commit
-
-
Manos Koukoutos authored
Main changes: - Allow global.get in elements segments with expressions-as-elements. - Allow element segments with types other than funcref. Detailed changes: - Move WasmInitExpr to its own file. Add stream opearator << support. - Simplify type of PrintCollection. - Make WasmElemSegment use an array of WasmInitExpr's over the previous ad-hoc implementation. Move null_index to WasmModuleBuilder. - Refactor consume_element_segment_header. Make it return a WasmElemSegment. - Refactor consume_element_expr. Make it return a WasmInitExpr. - Refactor DecodeElementSection. Make it invoke consume_element_segment_header, then populate its element array. - Update module-instantiate.cc to handle global.get elements. - Fix bug in wasm-objects.cc where the wrong type index was passed into module()->has_signature() - Adapt and add tests. Change-Id: I5abfbe424dbb750ee2dca59f91c451ffcb79f95f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857959 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74374}
-
- 30 Apr, 2021 1 commit
-
-
Clemens Backes authored
This fixes a compiler warning on gcc 7.4. R=ahaas@chromium.org CC=machenbach@chromium.org Bug: v8:11716 Change-Id: I385765f1ac3de17eea1bb56109869636f8ae9d95 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862779 Commit-Queue: Clemens Backes <clemensb@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Auto-Submit: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#74310}
-
- 23 Apr, 2021 1 commit
-
-
Almothana Athamneh authored
Bug: chromium:934932 Change-Id: I9e7940b645cfad8da40950de86c2a5a7feedccff Cq-Include-Trybots: luci.v8.try:v8_fuchsia_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2846894Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Almothana Athamneh <almuthanna@chromium.org> Cr-Commit-Position: refs/heads/master@{#74160}
-
- 21 Apr, 2021 1 commit
-
-
Manos Koukoutos authored
Changes: - Remove TypeCheckBranchResult. Change TypeCheckBranch() to return bool. Refactor call sites to reflect this (decouple current code reachability check from type check). - Unify TypeCheckBranch(), TypeCheckFallthrough(), and the type-checking part of Return() into TypeCheckStackAgainstMerge(). - Make sure all TypeCheck* functions are only called within VALIDATE. - In graph-builder-interface, rename end_env -> merge_env to reflect its function for loops. - Change expected error messages in some tests. Change-Id: I857edc18db9c2454ad12d539ffe7a10e96367710 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839560Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#74100}
-
- 15 Apr, 2021 2 commits
-
-
Manos Koukoutos authored
The typing of br_table was relaxed in https://github.com/WebAssembly/spec/pull/1305. Before, we had to compute the greatest lower bound of all branch types and make sure that stack values are subtypes of that type. Now, we have to check that the stack values are subtypes of each individual branch. This makes a difference only in polymorphic stacks, but greatly simplifies the code, especially with the upcoming introduction of a much more complex type system in wasm-gc. Change-Id: I6e3b410cfe0e71a97623b3030b3575ef707c4900 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2827897 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73982}
-
Manos Koukoutos authored
Changes: - Implement function subtyping in wasm-subtyping.cc. - Add Signature::Build(), which takes initializer lists for the return and parameter types. - Only throw kTrapFuncSigMismatch in call_indirect, change that trap's message. - Add a missing "return 0" in function-body-decoder-impl.h - Fix a faulty check in wasm-objects.cc. - Improve some comments. - Write tests. Improve readability of subtyping-unittest. Bug: v8:7748 Change-Id: I1caba09d5bd01cfd4d6125f300cd9c16af7aba99 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2822633Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#73972}
-
- 13 Apr, 2021 1 commit
-
-
Manos Koukoutos authored
Multivalue has been shipped for a while now, so it is time to remove its experimental feature flag. Additional change: Set kV8MaxWasmFunctionReturns to the old kV8MaxWasmFunctionMultiReturns value. Change-Id: I5c4d33b036e64a7221de17f0e97119bb0a036838 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2817790Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#73927}
-
- 30 Mar, 2021 1 commit
-
-
Thibaud Michaud authored
The delegate instruction is only allowed inside the try section of a try block. R=ahaas@chromium.org Bug: chromium:1193169 Change-Id: I71756b18903dc39e487721b401d18bc4e213cbff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2791565 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#73720}
-
- 22 Mar, 2021 1 commit
-
-
Manos Koukoutos authored
This is a more canonical type name, and is in line with {kVoidCode}. Change-Id: Iaae9524b6fb6ecaafd63ce81cf30e3d01ca3e525 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2775565 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#73557}
-
- 19 Mar, 2021 2 commits
-
-
Clemens Backes authored
This allows to hold a constexpr (empty) "builder" object instead of creating it for every use. R=ahaas@chromium.org Bug: v8:11384 Change-Id: Ib5e13c58e81a950bb5dd0e8eefe4021bc77d8b64 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773801 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#73548}
-
Clemens Backes authored
If memory64 is enabled, memory.grow should consume and return an i64 instead of i32. This CL implements this for both TurboFan and Liftoff, and adds validation and execution tests at different layers. R=manoskouk@chromium.org Bug: v8:10949 Change-Id: I0b725dbd0d5767bda4609747c1f4aad163c35304 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773800Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73542}
-