<?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 instructions.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>0889323a - cranelift-codegen: rename most uses of std to core and alloc (#12237)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#0889323a</link>
        <description>cranelift-codegen: rename most uses of std to core and alloc (#12237)* rename most std uses to core and alloc* cargo fmt

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Sat, 03 Jan 2026 00:54:48 +0000</pubDate>
        <dc:creator>SSD &lt;96286755+the-ssd@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>4c01ee2f - Cranelift: add get_exception_handler_address. (#11629)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#4c01ee2f</link>
        <description>Cranelift: add get_exception_handler_address. (#11629)* Cranelift: add get_exception_handler_address.This is designed to enable applications such as #11592 that usealternative unwinding mechanisms that may not necessarily want to walk astack and look up exception tables. The idea is that whenever it wouldbe valid to resume to an exception handler that is active on the stack,we can provide the same PC as a first-class runtime value that would befound in the exception table for the given handler edge. A &quot;custom&quot;resume step can then use this PC as a resume-point as long as it followsthe relevant exception ABI (i.e.: restore SP, FP, any other savedregisters that the exception ABI specifies, and provide appropriatepayload value(s)).Handlers are associated with edges out of `try_call`s (or`try_call_indirect`s); and edges specifically, not blocks, because therecould be multiple out-edges to one block. The instruction thus takes theblock that contains the try-call and an immediate that indexes itsexceptional edges.This CLIF instruction required a bit of infrastructure to (i) allownaming raw blocks, not just block calls, as instruction arguments, and(ii) allow getting the MachLabel for any other lowered block duringlowering. But given that, the lowerings themselves are straightforwarduses of MachBuffer labels to fix-up PC-relative address-loadinginstructions (e.g., `LEA` or `ADR` or `AUIPC`+`ADDI`).* Review feedback.* Review feedback: more tests.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Fri, 05 Sep 2025 22:41:46 +0000</pubDate>
        <dc:creator>Chris Fallin &lt;chris@cfallin.org&gt;</dc:creator>
    </item>
<item>
        <title>4590076f - Cranelift: support dynamic contexts in exception-handler lists. (#11321)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#4590076f</link>
        <description>Cranelift: support dynamic contexts in exception-handler lists. (#11321)In #11285, we realized that Wasm semantics require us to match ondynamic instances of exception tags, rather than static tag types. Thisfundamentally requires the unwinder to be able to resolve the currentWasm instance for each Wasm frame on the stack that has any handlers,and our frame format does not provide this today.We discussed many options, some of which solve the more general problem(Wasm vmctx for any frame), but ultimately landed on a notion of&quot;dynamic context for evaluating tags&quot;, specific to Cranelift&apos;sexception-catch metadata; and storing that context and carrying itthrough to a place that is named in the unwind metadata. The reasoningis fairly straightforward: we cannot afford a more general approach thatstores vmctx in every frame (I measured this at 20% overhead for arecursive-Fibonacci benchmark that is call-intensive); and inliningmeans that we may have *multiple* contexts at any given program point,each associated with a different slice of the handler tags; so we need amechanism that, *just for a try-call*, intersperses contexts with tags(or puts a context on each tag) and stores these somewhere that theexception-unwind ABI doesn&apos;t clobber (e.g., on the stack).This PR implements &quot;option 4&quot; from that issue, namely, *dynamicexception contexts*. The idea is that this is the dual to exceptionpayload: while payload lets the unwinder communicate state *to* thecatching code, context lets the unwinder take state *from* the catchingcode that lets it decide whether the tag is a match. Because ofinlining, we need to either associate (optional) context with every tag,or intersperse context-updates with handler tags. I&apos;ve opted for thelatter for efficiency at the CLIF level (in most cases there will bemultiple tags per context), though they are isomorphic.The new tag-matching semantics are: when walking up the stack, uponreaching a `try_call`, evaluate catch-clauses in listed order. A`context` clause sets the current context. A `tagN: block(...)` clauseattempts to match the throwing exception against `tagN`, *evaluated inthe current context*, and branches to the named block if it matches. A`default: block(...)` always branches to the named block.Note that this lets us assume less about tags than before, and thisparticularly manifests in the changes to the inliner. Whereas before,`tagN` is `tagN` and an inner handler for that tag shadows an outerhandler (that is, tags always alias if identical indices); and whereasbefore, `tagN` is not `tagM` and so we can order the tags arbitrarily(that is, tags never alias if non-identical indices); now any two statictag indices may or may not alias depending on the dynamic context ofeach. Or, even in the same context, two may alias, because we leave thematch-predicate as an unspecified (user-chosen) algorithm duringunwinding. (This mirrors the reality that, for example, a Wasm instancemay import two tags, and dynamically these tags may be equal ordifferent at runtime, even instantiation-to-instantiation.) Cranelift&apos;sonly job is to faithfully carry the list of contexts and tags through tothe compiled-code metadata; and to ensure that they remain in the orderthey were specified in the CLIF.This PR introduces the Cranelift-level feature, and it will be used ina subsequent PR that introduces Wasm exception handling. Because ofthat, I&apos;ve opted not to update the clif-utils runtest &quot;runtime&quot; to readout contexts and do something with them -- we will have plenty of testcoverage via a bunch of Wasm tests for corner cases such as the above.This PR does include filetests that show that contexts are carriedthrough to spillslots and those appear in the metadata.Fixes #11285.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Sat, 26 Jul 2025 01:35:57 +0000</pubDate>
        <dc:creator>Chris Fallin &lt;chris@cfallin.org&gt;</dc:creator>
    </item>
<item>
        <title>6f523e7b - Fix `uadd_overflow_trap` in interpreter (#11258)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#6f523e7b</link>
        <description>Fix `uadd_overflow_trap` in interpreter (#11258)

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Wed, 16 Jul 2025 18:48:16 +0000</pubDate>
        <dc:creator>primoly &lt;168267431+primoly@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>8a23cc74 - Cranelift: Make `ir::{Constant,Immediate}` considered entities (#11207)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#8a23cc74</link>
        <description>Cranelift: Make `ir::{Constant,Immediate}` considered entities (#11207)* Cranelift: Make `ir::{Constant,Immediate}` considered entitiesThey reference data in out-of-line pools rather than storing their data inlinein the instruction, and when an instruction containing them is moved from one`ir::Function` to another, they need their indices updatedaccordingly. Therefore, they really are entities rather than immediates.This recategorization means that they will now be properly mapped in`ir::InstructionData::map` calls.* fix tests

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Wed, 09 Jul 2025 19:24:48 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>10d3a22a - Cranelift: Generate an `InstructionData::map` method (#11176)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#10d3a22a</link>
        <description>Cranelift: Generate an `InstructionData::map` method (#11176)* Cranelift: Generate an `InstructionData::map` methodThis allows you to map some functions, described by the given`InstructionMapper`, over each of the entitities in an instruction, producing anew `InstructionData`.I intend to use this as part of an inliner API for Cranelift that I amdeveloping as part of prototyping [Wasmtime&apos;s compile-timebuiltins](https://github.com/bytecodealliance/rfcs/pull/43).* cargo fmt* fix clippy

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Wed, 09 Jul 2025 02:03:53 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@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/cranelift/codegen/src/ir/instructions.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/cranelift/codegen/src/ir/instructions.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>94ec88ea - Cranelift: initial try_call / try_call_indirect (exception) support. (#10510)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#94ec88ea</link>
        <description>Cranelift: initial try_call / try_call_indirect (exception) support. (#10510)* Cranelift: initial try_call / try_call_indirect (exception) support.This PR adds `try_call` and `try_call_indirect` instructions, andlowerings on four of five ISAs (x86-64, aarch64, riscv64, pulley; s390xhas its own non-shared ABI code that will need separate work).It extends CLIF to support these instructions as new kinds of branches,and extends block-calls to accept `retN` and `exnN` block-call args thatcarry the normal return values or exception payloads (respectively) intothe appropriate successor blocks.It wires up the &quot;normal return path&quot; so that it continues to work.It updates the ABI so that unwinding is possible without an initialregister state at throw: specifically, as per our RFC, all registers areclobbered. It also includes metadata in the `MachBuffer` that describesexception-catch destinations. However, no unwinder exists to interpretthese catch-destinations yet, so they are untested.* Add try_call_indirect lowering as well.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Tue, 08 Apr 2025 00:02:16 +0000</pubDate>
        <dc:creator>Chris Fallin &lt;chris@cfallin.org&gt;</dc:creator>
    </item>
<item>
        <title>fc5fc675 - Add some more context to the CLIF verifier (#10410)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#fc5fc675</link>
        <description>Add some more context to the CLIF verifier (#10410)Helps when debugging verifier failures.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Mon, 17 Mar 2025 19:53:45 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4f52f294 - Enable some more 2024 migration lints (#9962)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#4f52f294</link>
        <description>Enable some more 2024 migration lints (#9962)Most don&apos;t produce many warnings except for `rust-2024-incompatible-pat`which required removal of a number of `ref` and `ref mut` keywordsthroughout the workspace.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Thu, 09 Jan 2025 18:17:44 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>d6713c50 - Update nightly in CI to latest (#9195)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#d6713c50</link>
        <description>Update nightly in CI to latest (#9195)Additionally address some new warnings that are cropping up throughoutthe codebase.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Tue, 03 Sep 2024 17:31:50 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>b81ef46c - Remove reference types (`r32` and `r64`) from Cranelift (#9164)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#b81ef46c</link>
        <description>Remove reference types (`r32` and `r64`) from Cranelift (#9164)* Remove reference types (`r32` and `r64`) from Cranelift* restore fuzz regression test

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Thu, 22 Aug 2024 21:39:26 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>dbc11c30 - Cranelift: add stack_switch CLIF instruction (#9078)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#dbc11c30</link>
        <description>Cranelift: add stack_switch CLIF instruction (#9078)* stack_switch instruction* Update cranelift/codegen/src/isa/x64/pcc.rsCo-authored-by: Nick Fitzgerald &lt;fitzgen@gmail.com&gt;* cargo fmt* only lower on linux* give stack_switch the call() side effect* add function in filetest doing switching only* Extend documentation of new instruction* better comments on how we handle the payloads* Revert &quot;only lower on linux&quot;This reverts commit 2af10f944186629de1615aa0ed999b7f49d13132.* Add StackSwitchModel, use to compile stack_switch* turn stack_switch_model into partial constructor---------Co-authored-by: Nick Fitzgerald &lt;fitzgen@gmail.com&gt;

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Wed, 21 Aug 2024 21:37:05 +0000</pubDate>
        <dc:creator>Frank Emrich &lt;git@emrich.io&gt;</dc:creator>
    </item>
<item>
        <title>a0442ea0 - Enforce `uninlined_format_args` for the workspace (#9065)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#a0442ea0</link>
        <description>Enforce `uninlined_format_args` for the workspace (#9065)* Enforce `uninlined_format_args` for the workspace* fix: failing `Monolith Checks` job* fix: formatting

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Mon, 05 Aug 2024 09:59:59 +0000</pubDate>
        <dc:creator>Hamir Mahal &lt;hamirmahal@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4df85c50 - Cranelift: Add an `is_safepoint` predicate to `Opcode` (#9066)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#4df85c50</link>
        <description>Cranelift: Add an `is_safepoint` predicate to `Opcode` (#9066)

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Fri, 02 Aug 2024 19:07:53 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>0683b84b - Cranelift: Stop sign-extending `Imm64` immediates in builder methods (#9046)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#0683b84b</link>
        <description>Cranelift: Stop sign-extending `Imm64` immediates in builder methods (#9046)* Cranelift: Stop sign-extending `Imm64` immediates in builder methodsOriginally, we sign-extended `Imm64` immediates from their controlling typevar&apos;s width to `i64` in the builder methods for `BinaryImm64` and a couple otherinstruction formats: https://github.com/bytecodealliance/wasmtime/pull/1687At some point, we decided that the unused bits in the `Imm64` when thecontrolling type var&apos;s width is less than 64 should be zero. And we startedasserting that in various places, for example:https://github.com/bytecodealliance/wasmtime/blob/87817f38a128caa76eaa6a3c3c8ceac81a329a3e/cranelift/codegen/src/machinst/lower.rs#L1237-L1243However, we never removed or updated the sign-extension code in the buildermethods. This commit switches the builder methods over to masking the `Imm64` tojust the valid bits, effectively doing a zero extend from the controlling typevar&apos;s width instead of a sign extend.To avoid too much churn in tests, I made `display_inst` print thesign-extended-from-the-controlling-type-variable&apos;s-width value of `Imm64`immediates. I also made the `Display` implementation for `Imm64` always print indecimal form with a `-` for negative numbers, rather than the hex it wouldpreviously print for large negative numbers, so that `iconst.i32 0x8000_0000`doesn&apos;t display as `iconst.i32 0xffff_ffff_8000_0000`, which is otherwise prettyconfusing.* Rename condition* return new immediates instead of mutating* Update some test expectations

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Wed, 31 Jul 2024 00:05:28 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>7ac3fda7 - Initial `f16` and `f128` support (#8860)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#7ac3fda7</link>
        <description>Initial `f16` and `f128` support (#8860)

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Thu, 27 Jun 2024 00:13:24 +0000</pubDate>
        <dc:creator>beetrees &lt;b@beetr.ee&gt;</dc:creator>
    </item>
<item>
        <title>b3636ff6 - Introduce the `cranelift-bitset` crate; use it for stack maps in both Cranelift and Wasmtime (#8826)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#b3636ff6</link>
        <description>Introduce the `cranelift-bitset` crate; use it for stack maps in both Cranelift and Wasmtime (#8826)* Introduce the `cranelift-bitset` crateThe eventual goal is to deduplicate bitset types between Cranelift and Wasmtime,especially their use in stack maps.* Use the `cranelift-bitset` crate inside both Cranelift and WasmtimeMostly for stack maps, also for a variety of other random things where`cranelift_codegen::bitset::BitSet` was previously used.* Fix stack maps unit test in cranelift-codegen* Uncomment `no_std` declaration* Fix `CompountBitSet::reserve` method* Fix `CompoundBitSet::insert` method* Keep track of the max in a `CompoundBitSet`Makes a bunch of other stuff easier, and will be needed for replacing`cranelift_entity::EntitySet`&apos;s bitset with this thing anyways.* Add missing parens* Fix a bug around insert and reserve* Implement `with_capacity` in terms of `new` and `reserve`* Rename `reserve` to `ensure_capacity`

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Tue, 18 Jun 2024 15:44:38 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>9ffc9e67 - Cranelift: Remove resumable traps (#8809)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#9ffc9e67</link>
        <description>Cranelift: Remove resumable traps (#8809)These were originally a SpiderMonkey-ism and have been unused eversince. It was introduced for GC integration, where the runtime could dosomething to make Cranelift code hit a trap and pause for a GC and then resumeexecution once GC completed. But it is unclear that, as implemented, this isactually a useful mechanism for doing that (compared to, say, loading from someWell Known page and the GC protecting that page and catching signals tointerrupt the mutator, or simply branching and doing a libcall). And if someonehas that particular use case in the future (Wasmtime and its GC integrationdoesn&apos;t need exactly this) then we can design something for what is actuallyneeded at that time, instead of carrying this cruft forward forever.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Fri, 14 Jun 2024 19:26:11 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>67adf149 - Update nightly used in CI and fix warnings (#8416)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs#67adf149</link>
        <description>Update nightly used in CI and fix warnings (#8416)Fixes some warnings that nightly Rust has started emitting.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/instructions.rs</description>
        <pubDate>Fri, 19 Apr 2024 20:16:47 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
</channel>
</rss>
