<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in visitor.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>39e910be - [44.0.0] Merged backports for security advisories (#13007)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#39e910be</link>
        <description>[44.0.0] Merged backports for security advisories (#13007)* fix(environ): repair unsound StringPool::try_clone()The 43.0 release introduced a soundness bug in StringPool::try_clone(): thecloned map retains &amp;&apos;static str keys pointing into the original pool&apos;sstrings storage. Once the original Linker is dropped those keys dangle.Cloning a Linker, then dropping the original one, leaves a linker whoseregistered imports could no longer be found, causing instantiation tofail with &quot;unknown import&quot;.Signed-off-by: Flavio Castelli &lt;fcastelli@suse.com&gt;* Fix pooling allocator predicate to reset VM permissionsThis commit fixes a mistake that was introduced in #9583 where the logicto reset a linear memory slot in the pooling allocator used the wrongpredicate. Specifically VM permissions must be reset if virtual memorycan be relied on at all, and the preexisting predicate of`can_elide_bounds_check` was an inaccurate representation of this. Thecorrect predicate to check is `can_use_virtual_memory`.* winch: Fix the type of the `table.size` output registerThis commit corrects the tagged size of the output of the `table.size`instruction. Previously this was hardcoded as a 32-bit integer insteadof consulting the table&apos;s index type to use theindex-type-sized-register instead.* winch: Fix a host panic when executing `table.fill`This commit fixes a possible panic when a Winch-compiled module executesthe `table.fill` instruction. Refactoring in #11254 updated Craneliftbut forgot to update Winch meaning that Winch&apos;s indices were still usingthe module-level indices instead of the `DefinedTableIndex` space. Thisadds some tests and updates Winch&apos;s translation to use preexistinghelpers.* x64: Fix `f64x2.splat` without SSE3Don&apos;t sink a load into `pshufd` which loads 16 bytes, instead force`put_in_xmm` to ensure only 8 bytes are loaded.* Properly verify alignment in string transcodingThis commit updates string transcoding between guest modules to properlyverify alignment. Previously alignment was only verified on the firstallocation, not reallocations, which is not spec-compliant. Thisadditionally fixes a possible host panic when dealing with unalignedpointers.* Fix type confusion in AArch64 amode RegScaled folding* winch: Add add_uextend to perform explicit extension when needed.This commit fixes an out-of-bounds access caused by the lack zeroextension in the code responsible for calculating the heap address forloads/stores.This issue manifests in aarch64 (unlike x64) given that no automaticextension is performed, resulting in an out-of-bounds access.An alternative approach is to emit an extend for the index, howeverthis approach is preferred given that it gives the MacroAssemblerlayer better control of how to lower addition, e.g., in aarch64 we caninline the desired extension in a single instruction.* winch: Correctly type the result of table.growThis commit fixes an out-of-bounds access caused by the lack of typenarrowing from the `table.grow` builtin. Without explicit narrowing,the type is treated as 64-bit value, which could cause issues whenpaired with loads/stores.* Review comments* Properly handle table index typesOnly narrow when dealing with the 64-bit pointer/32-bit tables* Fix panic with out-of-bounds flags in `Value`This commit fixes a panic when a component model `Value` is lifted froma flags value which specifies out-of-bounds bits as 1. This is specifiedin the component model to ignore the out-of-bounds bits, which `flags!`correctly did (and thus `bindgen!`), but `Value` treated out-of-boundsbits as a panic due to indexing an array.* Fix bounds checks in FACT&apos;s `string_to_compact` methodWe need to bounds check the source byte length, not the number of code units.* Add missing realloc validation in string transcodingThis commit adds a missing validation that a return value of `realloc`is inbounds during string transcoding. This was accidentally missing onthe transcoding path from `utf8` to `latin1+utf16` which meant that anearly-raw pointer could get passed to the host to perform thetranscode.* winch: Refine zero extension heuristicThis commit refines the zero extension heuristic such that itunconditionally emits a zero extension when dealing with 32-bitheaps. This eliminates any ambiguity related to the value of thememory indices across ISAs.* Fix failure on 32-bit* Fix miri test---------Signed-off-by: Flavio Castelli &lt;fcastelli@suse.com&gt;Co-authored-by: Flavio Castelli &lt;fcastelli@suse.com&gt;Co-authored-by: Shun Kashiwa &lt;shunthedev@gmail.com&gt;Co-authored-by: Sa&#250;l Cabrera &lt;saulecabrera@gmail.com&gt;Co-authored-by: Nick Fitzgerald &lt;fitzgen@gmail.com&gt;

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Thu, 09 Apr 2026 17:40:49 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>071c4061 - winch: implement ref.null, ref.is_null, ref.func, and typed select (#12940)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#071c4061</link>
        <description>winch: implement ref.null, ref.is_null, ref.func, and typed select (#12940)* winch: implement ref.null, ref.is_null, ref.func, and typed select* add disas tests and ref.func call_indirect coverage* register wasmtime module in fuzz wast_test to fix wast_smoke_test

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Thu, 02 Apr 2026 19:48:19 +0000</pubDate>
        <dc:creator>r-near &lt;163825889+r-near@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>a465eabf - Introduce `wasmtime::Store::try_new`, which handles OOM (#12415)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#a465eabf</link>
        <description>Introduce `wasmtime::Store::try_new`, which handles OOM (#12415)* Introduce `wasmtime::Store::try_new`, which handles OOM`Store::new` is an infallible constructor, so there is not a direct way to makeit return an error on OOM. Additionally, it is one of the most-used functions inthe Wasmtime embedder API, so changing its signature to return a `Result` is anon-starter -- it would cause way too much pain. So instead we define`Store::try_new` which returns a `Result` and make `Store::new` call and unwrapthat new constructor.Part of https://github.com/bytecodealliance/wasmtime/issues/12069* update disas tests and fix winch* Disable concurrency support in `Store::try_new` OOM test* Add attributes that were lost in rebase

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Tue, 27 Jan 2026 00:13:33 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>b112bb85 - Migrate winch-codegen to `wasmtime_environ::error` (#12297)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#b112bb85</link>
        <description>Migrate winch-codegen to `wasmtime_environ::error` (#12297)

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Fri, 09 Jan 2026 19:20:48 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>0145a99d - Enable `clippy::extra_unused_type_parameters` lint (#12004)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#0145a99d</link>
        <description>Enable `clippy::extra_unused_type_parameters` lint (#12004)

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Fri, 07 Nov 2025 16:49:37 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>1b571864 - Delete `vm::Instance::table_grow` (#11216)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#1b571864</link>
        <description>Delete `vm::Instance::table_grow` (#11216)This commit is a further inch towards #11179 by removing internalreliance on reading `VMContext` pointers and casting them to `Pin&lt;&amp;mutInstance&gt;` in various contexts. Notably now only a defined table needsto be grown, which simplifies the internals of `vm::Instance` ever soslightly. This is a similar change as #11211 which transitions libcallsto using `DefinedTableIndex` instead of `TableIndex`.

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Fri, 11 Jul 2025 15:34:36 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>ab76f64b - Make `vm::Instance::get_defined_memory` safe (#11211)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#ab76f64b</link>
        <description>Make `vm::Instance::get_defined_memory` safe (#11211)This is a small step forward to making `vm::Instance` safe internally.Notably the `get_defined_memory` helper now returns a safe mutablereference instead of a raw pointer. This is then additionally coupledwith the canonicalization of always working with memories as &quot;instanceplus defined memory index&quot; instead of &quot;instance plus memory index&quot;. Thisenables removing some unsafe `VMContext` to `Instance` conversion aswell. This change, however, required updating libcalls to special-casewhen an imported memory is operated on to load the vmcontext/index inthe libcall itself.This change notably does not update the `memory_init` libcall just yetdue to the fact that the `DataIndex` is relative to the owning instanceeven if the memory is owned by a different instance (e.g. it&apos;simported). Otherwise this chips away at some of the `unsafe` related tomemory/table management in `vm::Instance`.

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Thu, 10 Jul 2025 16:18:57 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>7d72a9ae - Rename `memory32_grow` builtin to `memory_grow` (#11208)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#7d72a9ae</link>
        <description>Rename `memory32_grow` builtin to `memory_grow` (#11208)This builtin is used for both 32 and 64-bit linear memories, no need tobake &quot;32&quot; into the name any more.

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Wed, 09 Jul 2025 19:08:48 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>dacd33b0 - winch: Simplify constant handling, part 2/N (#10989)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#dacd33b0</link>
        <description>winch: Simplify constant handling, part 2/N (#10989)* winch: Introduce register allocation for scratch registersThis commit introduces a register allocator for scratch registers. Theobjective of this change is to make it generally safer to work withscratch registers and prevent accidental clobbering of said registers.This approach also has the advantage that allows for a more naturalabstraction over ISA-dependent scratch register definitions, e.g., wecan easily encode that fact that in aarch64 x16 and x17 are consideredscratch registers, while in x64 Winch&apos;s ABI defines a single globalscratch register.* winch: Hook up the scratch allocator in each of the backendsThis commit makes use of the scratch register allocator in both thex64 and aarch64 backends for immediate value loading.Given that the MacroAssembler is the boundary between ISA-agnosticcode and ISA-dependent code, it seems to be the natural location forthis allocator to live.The allocator gives exclusive access to a scratch register of aparticular class, through the `Masm::with_scratch` method. Note thatthe semantics of this allocator don&apos;t involve spilling or any otherform of register availability resolution. If a register is requestedand it&apos;s not available, this method will panic.* Apply `cargo fmt`* Update disassembly testsEven though the entire change doens&apos;t contain major funcitonalchanges, a side effect of improving the constant handling in aarch64is that we perform better instruction selection for instructions thatdeal with immediattes, improving the generated code in some cases.* Review edits

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Mon, 09 Jun 2025 22:54:51 +0000</pubDate>
        <dc:creator>Sa&#250;l Cabrera &lt;saulecabrera@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>89419ec2 - winch: Move the `AtomicWaitKind` definition to the MacroAssembler (#10853)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#89419ec2</link>
        <description>winch: Move the `AtomicWaitKind` definition to the MacroAssembler (#10853)This commit is a small refactoring which moves the definition of the`AtomicWaitKind` enum to the `MacroAssembler`, to ensure with theother operation kind definitions.

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Wed, 28 May 2025 17:34:06 +0000</pubDate>
        <dc:creator>Sa&#250;l Cabrera &lt;saulecabrera@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>703871a2 - Enable the `useless_conversion` Clippy lint (#10838)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#703871a2</link>
        <description>Enable the `useless_conversion` Clippy lint (#10838)* Enable the `useless_conversion` Clippy lintWe&apos;ve got lots of types in Wasmtime and convert between them quite alot, but often over time conversions become unnecessary throughrefactorings or similar. This will hopefully enable us to clean up someconversions as they come up to try to have as few as possible ideally.* Review comments

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Tue, 27 May 2025 16:49:22 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>5b265534 - winch: Use innermost frame to emit `br_table` (#10821)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#5b265534</link>
        <description>winch: Use innermost frame to emit `br_table` (#10821)* winch: Use innermost frame to emit `br_table`Prior to this commit, the lowering of br_table used the default targetas the relative reference to pop ABI results. This approach is notideal, as it leads to a loss of precision regarding the stack pointerposition, causing unmet invariants at jump sites for all otherbranches.This commit, instead, takes advantage of the fact that all jumps are&quot;outward&quot; and uses the innermost frame to pop ABI results whenlowering br_table. This ensures two main things:* The stack pointer offset is correctly positioned according to the  expectations of the innermost block&apos;s end sequence, which will be  handled in the next eventual `end` sequence.* We meet the jump site invariants introduced by CodegenContext::br,  which take advantage of Wasm semantics, given that all jumps are  &quot;outward&quot;.* Format

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Wed, 21 May 2025 16:47:47 +0000</pubDate>
        <dc:creator>Sa&#250;l Cabrera &lt;saulecabrera@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>90ac295e - Update Wasmtime to the 2024 Rust Edition (#10806)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#90ac295e</link>
        <description>Update Wasmtime to the 2024 Rust Edition (#10806)* Update Wasmtime to the 2024 Rust EditionNow that our MSRV supports the 2024 edition it&apos;s possible to make thisswitch. This commit moves Wasmtime to the 2024 Edition to keepup-to-date with Rust idioms and access many of the edition featuresexclusive to the 2024 edition.prtest:full* Reformat with the 2024 edition

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Mon, 19 May 2025 16:40:55 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>40315bd2 - winch: Consolidate branch emission (#10730)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#40315bd2</link>
        <description>winch: Consolidate branch emission (#10730)This commit fixes https://github.com/bytecodealliance/wasmtime/issues/10613When emitting some WebAssembly instructinos involving branches, like`br_if` stack pointer expectations must be met at jump sites, moreimportantly when these instructions deal with multiple branches orfallthrough cases, the need to reclaim any extra stack space mightarise, and when it does, special handling is needed to ensure thatvalue location is respected. Prior to this change, the emission for`br_table`  was incorrectly handling multiple return values on thestack, causing the miscompilation reported in the issue above.This commit introduces a better mechanism to deal with branchemission, ensuring that all invariants are applied to the main entrypoints for branches: `return`, `br` , `br_if`  and `br_table`.

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Mon, 05 May 2025 20:51:05 +0000</pubDate>
        <dc:creator>Sa&#250;l Cabrera &lt;saulecabrera@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>ee275a89 - Switch to using Wasmtime-style builtins for ceil, floor, etc. (#10657)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#ee275a89</link>
        <description>Switch to using Wasmtime-style builtins for ceil, floor, etc. (#10657)* Switch to using Wasmtime-style builtins for ceil, floor, etc.With this patch, all emitted calls are Wasmtime-style builtins, ratherthan Cranelift-style libcalls. This ensures that all calls fromCranelift-generated code into Wasmtime host code use the same mechanism,and eliminates the relocation handling code for the libcall mechanism.* Update tests.* Avoid using x86_pshufb on non-x86 platforms.* Revert unneeded f32/f64 changes in Pulley.* Define i8x16 as an unconstructible type if sse isn&apos;t available.* Delete the setters too.* Fix f32/f64 setters.* Test with prtest:full.prtest:full* Support fma.* Return true for `has_native_fma` on pulley.This works because pulley already has code implementing fma. This avoidsneeding to marshal f32x4 values into builtin function calls on pulley.* Update tests.

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Thu, 24 Apr 2025 05:06:05 +0000</pubDate>
        <dc:creator>Dan Gohman &lt;dev@sunfishcode.online&gt;</dc:creator>
    </item>
<item>
        <title>366f320d - Update wasm spec test suite, add exception feature flags (#10553)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#366f320d</link>
        <description>Update wasm spec test suite, add exception feature flags (#10553)* Update wasm spec test suite, add exception feature flagsThis commit performs an update of the spec test suite submodule to thenext-to-latest commit. The latest commit will require updating the`wast` dependency which isn&apos;t published yet.This update brings in the `wasm-3.0` folder of tests since it&apos;s beenawhile since the last update. That update notably means that theexception-handling proposal is mixed in with all the others with varioustests. Getting tests as flagged as passing or failing as a result wasunexpectedly difficult.The solution I ended up settling on was to preemptively implement someinfrastructure for the exceptions proposal:* `wasmtime::Config` methods* `wasmtime` CLI flags* integration with wast testing* various updates to `should_fail`It turns out we can run a few tests with the exception proposal, notablydue to tags being implemented for stack switching. That meant that thiscouldn&apos;t blanket ignore the exceptions proposal and say it&apos;s expected tofail. Instead the proposal is said &quot;this passes!&quot; and tests areindividually listed as &quot;this is expected to fail&quot;.This then required changing an `unsupported!` panic to plumbing errorsaround to avoid actually implementing the exceptions proposal here.* Review comments

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Tue, 08 Apr 2025 22:00:49 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>898b0feb - Winch: Add load_zero instructions for x64 with AVX (#10288)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#898b0feb</link>
        <description>Winch: Add load_zero instructions for x64 with AVX (#10288)

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Tue, 25 Feb 2025 16:29:56 +0000</pubDate>
        <dc:creator>Jeffrey Charles &lt;jeff.charles@shopify.com&gt;</dc:creator>
    </item>
<item>
        <title>b0319ebc - Winch: Add implementations for pmin and pmax for x64 with AVX (#10284)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#b0319ebc</link>
        <description>Winch: Add implementations for pmin and pmax for x64 with AVX (#10284)

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Tue, 25 Feb 2025 15:45:03 +0000</pubDate>
        <dc:creator>Jeffrey Charles &lt;jeff.charles@shopify.com&gt;</dc:creator>
    </item>
<item>
        <title>1f24222f - Winch: Add min and max for SIMD floats for x64 with AVX (#10271)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#1f24222f</link>
        <description>Winch: Add min and max for SIMD floats for x64 with AVX (#10271)

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Tue, 25 Feb 2025 11:55:24 +0000</pubDate>
        <dc:creator>Jeffrey Charles &lt;jeff.charles@shopify.com&gt;</dc:creator>
    </item>
<item>
        <title>acef4083 - Winch: Add SIMD float arithmetic support for x64 with AVX (#10247)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/winch/codegen/src/visitor.rs#acef4083</link>
        <description>Winch: Add SIMD float arithmetic support for x64 with AVX (#10247)* Winch: Add SIMD float arithmetic support for x64 with AVX* Add ensure_has_avx to v128_neg method

            List of files:
            /wasmtime-44.0.1/winch/codegen/src/visitor.rs</description>
        <pubDate>Thu, 20 Feb 2025 20:58:11 +0000</pubDate>
        <dc:creator>Jeffrey Charles &lt;jeff.charles@shopify.com&gt;</dc:creator>
    </item>
</channel>
</rss>
