<?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 formats.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><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/meta/src/shared/formats.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/meta/src/shared/formats.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>8a23cc74 - Cranelift: Make `ir::{Constant,Immediate}` considered entities (#11207)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.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/meta/src/shared/formats.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>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/meta/src/shared/formats.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/meta/src/shared/formats.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>41eca60b - cranelift: Add `f16const` and `f128const` instructions (#8893)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#41eca60b</link>
        <description>cranelift: Add `f16const` and `f128const` instructions (#8893)* cranelift: Add `f16const` and `f128const` instructions* cranelift: Add constant propagation for `f16` and `f128`

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Wed, 17 Jul 2024 16:39:47 +0000</pubDate>
        <dc:creator>beetrees &lt;b@beetr.ee&gt;</dc:creator>
    </item>
<item>
        <title>c4478334 - cranelift: Remove support for WebAssembly tables (#8124)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#c4478334</link>
        <description>cranelift: Remove support for WebAssembly tables (#8124)Wasmtime no longer needs any of this infrastructure and neither shouldanybody else.This diff is nearly identical to @bjorn3&apos;s version of the same change,except I didn&apos;t remove Uimm64, which has started being used in otherplaces. I forgot bjorn3 had already tackled this part until after I wasalready done, but it&apos;s reassuring that we both made the same changes.https://github.com/bjorn3/wasmtime/commit/fb82ccb3948e949641a6d9581aa84472f68f97b8Fixes #5532

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Thu, 14 Mar 2024 15:40:25 +0000</pubDate>
        <dc:creator>Jamey Sharp &lt;jsharp@fastly.com&gt;</dc:creator>
    </item>
<item>
        <title>d99783fc - Move default blocks into jump tables (#5756)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#d99783fc</link>
        <description>Move default blocks into jump tables (#5756)Move the default block off of the br_table instrution, and into the JumpTable that it references.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Fri, 10 Feb 2023 16:53:30 +0000</pubDate>
        <dc:creator>Trevor Elliott &lt;telliott@fastly.com&gt;</dc:creator>
    </item>
<item>
        <title>a5698ced - cranelift: Remove brz and brnz (#5630)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#a5698ced</link>
        <description>cranelift: Remove brz and brnz (#5630)Remove the brz and brnz instructions, as their behavior is now redundant with brif.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Mon, 30 Jan 2023 20:34:56 +0000</pubDate>
        <dc:creator>Trevor Elliott &lt;telliott@fastly.com&gt;</dc:creator>
    </item>
<item>
        <title>b58a197d - cranelift: Add a conditional branch instruction with two targets (#5446)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#b58a197d</link>
        <description>cranelift: Add a conditional branch instruction with two targets (#5446)Add a conditional branch instruction with two targets: brif. This instruction will eventually replace brz and brnz, as it encompasses the behavior of both.This PR also changes the InstructionData layout for instruction formats that hold BlockCall values, taking the same approach we use for Value arguments. This allows branch_destination to return a slice to the BlockCall values held in the instruction, rather than requiring that we pattern match on InstructionData to fetch the then/else blocks.Function generation for fuzzing has been updated to generate uses of brif, and I&apos;ve run the cranelift-fuzzgen target locally for hours without triggering any new failures.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Tue, 24 Jan 2023 22:37:16 +0000</pubDate>
        <dc:creator>Trevor Elliott &lt;telliott@fastly.com&gt;</dc:creator>
    </item>
<item>
        <title>1e6c13d8 - cranelift: Rework block instructions to use BlockCall (#5464)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#1e6c13d8</link>
        <description>cranelift: Rework block instructions to use BlockCall (#5464)Add a new type BlockCall that represents the pair of a block name with arguments to be passed to it. (The mnemonic here is that it looks a bit like a function call.) Rework the implementation of jump, brz, and brnz to use BlockCall instead of storing the block arguments as varargs in the instruction&apos;s ValueList.To ensure that we&apos;re processing block arguments from BlockCall values in instructions, three new functions have been introduced on DataFlowGraph that both sets of arguments:inst_values - returns an iterator that traverses values in the instruction and block argumentsmap_inst_values - applies a function to each value in the instruction and block argumentsoverwrite_inst_values - overwrite all values in an instruction and block arguments with values from the iteratorCo-authored-by: Jamey Sharp &lt;jamey@minilop.net&gt;

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Wed, 18 Jan 2023 00:31:15 +0000</pubDate>
        <dc:creator>Trevor Elliott &lt;telliott@fastly.com&gt;</dc:creator>
    </item>
<item>
        <title>c0b587ac - Remove heaps from core Cranelift, push them into `cranelift-wasm` (#5386)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#c0b587ac</link>
        <description>Remove heaps from core Cranelift, push them into `cranelift-wasm` (#5386)* cranelift-wasm: translate Wasm loads into lower-level CLIF operationsRather than using `heap_{load,store,addr}`.* cranelift: Remove the `heap_{addr,load,store}` instructionsThese are now legalized in the `cranelift-wasm` frontend.* cranelift: Remove the `ir::Heap` entity from CLIF* Port basic memory operation tests to .wat filetests* Remove test for verifying CLIF heaps* Remove `heap_addr` from replace_branching_instructions_and_cfg_predecessors.clif test* Remove `heap_addr` from readonly.clif test* Remove `heap_addr` from `table_addr.clif` test* Remove `heap_addr` from the simd-fvpromote_low.clif test* Remove `heap_addr` from simd-fvdemote.clif test* Remove `heap_addr` from the load-op-store.clif test* Remove the CLIF heap runtest* Remove `heap_addr` from the global_value.clif test* Remove `heap_addr` from fpromote.clif runtests* Remove `heap_addr` from fdemote.clif runtests* Remove `heap_addr` from memory.clif parser test* Remove `heap_addr` from reject_load_readonly.clif test* Remove `heap_addr` from reject_load_notrap.clif test* Remove `heap_addr` from load_readonly_notrap.clif test* Remove `static-heap-without-guard-pages.clif` testWill be subsumed when we port `make-heap-load-store-tests.sh` to generating`.wat` tests.* Remove `static-heap-with-guard-pages.clif` testWill be subsumed when we port `make-heap-load-store-tests.sh` over to `.wat`tests.* Remove more heap testsThese will be subsumed by porting `make-heap-load-store-tests.sh` over to `.wat`tests.* Remove `heap_addr` from `simple-alias.clif` test* Remove `heap_addr` from partial-redundancy.clif test* Remove `heap_addr` from multiple-blocks.clif test* Remove `heap_addr` from fence.clif test* Remove `heap_addr` from extends.clif test* Remove runtests that rely on heapsHeaps are not a thing in CLIF or the interpreter anymore* Add generated load/store `.wat` tests* Enable memory-related wasm features in `.wat` tests* Remove CLIF heap from fcmp-mem-bug.clif test* Add a mode for compiling `.wat` all the way to assembly in filetests* Also generate WAT to assembly tests in `make-load-store-tests.sh`* cargo fmt* Reinstate `f{de,pro}mote.clif` tests without the heap bits* Remove undefined doc link* Remove outdated SVG and dot file from docs* Add docs about `None` returns for base address computation helpers* Factor out `env.heap_access_spectre_mitigation()` to a local* Expand docs for `FuncEnvironment::heaps` trait method* Restore f{de,pro}mote+load clif runtests with stack memory

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Thu, 15 Dec 2022 00:26:45 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d0d3245a - Cranelift: Add `heap_load` and `heap_store` instructions (#5300)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#d0d3245a</link>
        <description>Cranelift: Add `heap_load` and `heap_store` instructions (#5300)* Cranelift: Define `heap_load` and `heap_store` instructions* Cranelift: Implement interpreter support for `heap_load` and `heap_store`* Cranelift: Add a suite runtests for `heap_{load,store}`There are so many knobs we can twist for heaps and I wanted to exhaustively testall of them, so I wrote a script to generate the tests. I&apos;ve checked in thescript in case we want to make any changes in the future, but I don&apos;t think itis worth adding this to CI to check that scripts are up to date or anything likethat.* Review feedback

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Mon, 21 Nov 2022 23:00:39 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>fc62d4ad - Cranelift: Make `heap_addr` return calculated `base + index + offset` (#5231)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#fc62d4ad</link>
        <description>Cranelift: Make `heap_addr` return calculated `base + index + offset` (#5231)* Cranelift: Make `heap_addr` return calculated `base + index + offset`Rather than return just the `base + index`.(Note: I&apos;ve chosen to use the nomenclature &quot;index&quot; for the dynamic operand and&quot;offset&quot; for the static immediate.)This move the addition of the `offset` into `heap_addr`, instead of leaving itfor the subsequent memory operation, so that we can Spectre-guard the fulladdress, and not allow speculative execution to read the first 4GiB of memory.Before this commit, we were effectively doing    load(spectre_guard(base + index) + offset)Now we are effectively doing    load(spectre_guard(base + index + offset))Finally, this also corrects `heap_addr`&apos;s documented semantics to say that itreturns an address that will trap on access if `index + offset + access_size` isout of bounds for the given heap, rather than saying that the `heap_addr` itselfwill trap. This matches the implemented behavior for static memories, and afterhttps://github.com/bytecodealliance/wasmtime/pull/5190 lands (which is blockedon this commit) will also match the implemented behavior for dynamic memories.* Update heap_addr docs* Factor out `offset + size` to a helper

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Wed, 09 Nov 2022 19:53:51 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>aeceea28 - Remove trapif and trapff (#5162)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#aeceea28</link>
        <description>Remove trapif and trapff (#5162)This branch removes the trapif and trapff instructions, in favor of using an explicit comparison and trapnz. This moves us closer to removing iflags and fflags, but introduces the need to implement instructions like iadd_cout in the x64 and aarch64 backends.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Thu, 03 Nov 2022 16:25:11 +0000</pubDate>
        <dc:creator>Trevor Elliott &lt;telliott@fastly.com&gt;</dc:creator>
    </item>
<item>
        <title>02620441 - Add uadd_overflow_trap (#5123)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#02620441</link>
        <description>Add uadd_overflow_trap (#5123)Add a new instruction uadd_overflow_trap, which is a fused version of iadd_ifcout and trapif. Adding this instruction removes a dependency on the iflags type, and would allow us to move closer to removing it entirely.The instruction is defined for the i32 and i64 types only, and is currently only used in the legalization of heap_addr.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Thu, 27 Oct 2022 16:43:15 +0000</pubDate>
        <dc:creator>Trevor Elliott &lt;telliott@fastly.com&gt;</dc:creator>
    </item>
<item>
        <title>ec12415b - cranelift: Remove redundant branch and select instructions (#5097)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#ec12415b</link>
        <description>cranelift: Remove redundant branch and select instructions (#5097)As discussed in the 2022/10/19 meeting, this PR removes many of the branch and select instructions that used iflags, in favor if using brz/brnz and select in their place. Additionally, it reworks selectif_spectre_guard to take an i8 input instead of an iflags input.For reference, the removed instructions are: br_icmp, brif, brff, trueif, trueff, and selectif.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Mon, 24 Oct 2022 23:14:35 +0000</pubDate>
        <dc:creator>Trevor Elliott &lt;telliott@fastly.com&gt;</dc:creator>
    </item>
<item>
        <title>32a7593c - cranelift: Remove booleans (#5031)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#32a7593c</link>
        <description>cranelift: Remove booleans (#5031)Remove the boolean types from cranelift, and the associated instructions breduce, bextend, bconst, and bint. Standardize on using 1/0 for the return value from instructions that produce scalar boolean results, and -1/0 for boolean vector elements.Fixes #3205Co-authored-by: Afonso Bordado &lt;afonso360@users.noreply.github.com&gt;Co-authored-by: Ulrich Weigand &lt;ulrich.weigand@de.ibm.com&gt;Co-authored-by: Chris Fallin &lt;chris@cfallin.org&gt;

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Mon, 17 Oct 2022 23:00:27 +0000</pubDate>
        <dc:creator>Trevor Elliott &lt;telliott@fastly.com&gt;</dc:creator>
    </item>
<item>
        <title>9c43749d - [RFC] Dynamic Vector Support (#4200)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#9c43749d</link>
        <description>[RFC] Dynamic Vector Support (#4200)Introduce a new concept in the IR that allows a producer to createdynamic vector types. An IR function can now contain global value(s)that represent a dynamic scaling factor, for a given fixed-widthvector type. A dynamic type is then created by &apos;multiplying&apos; thecorresponding global value with a fixed-width type. These new typescan be used just like the existing types and the type system has aset of hard-coded dynamic types, such as I32X4XN, which the userdefined types map onto. The dynamic types are also used explicitlyto create dynamic stack slots, which have no set size like theirexisting counterparts. New IR instructions are added to access thesenew stack entities.Currently, during codegen, the dynamic scaling factor has to belowered to a constant so the dynamic slots do eventually have acompile-time known size, as do spill slots.The current lowering for aarch64 just targets Neon, using a dynamicscale of 1.Copyright (c) 2022, Arm Limited.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Thu, 07 Jul 2022 19:54:39 +0000</pubDate>
        <dc:creator>Sam Parker &lt;sam.parker@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>bd6fe11c - cranelift: remove `load_complex` and `store_complex` (#3976)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#bd6fe11c</link>
        <description>cranelift: remove `load_complex` and `store_complex` (#3976)This change removes all variants of `load*_complex` and `store*_complex`from Cranelift; this is a breaking change to the instructions exposed byCLIF. The complete list of instructions removed is: `load_complex`,`store_complex`, `uload8_complex`, `sload8_complex`, `istore8_complex`,`sload8_complex`, `uload16_complex`, `sload16_complex`,`istore16_complex`, `uload32_complex`, `sload32_complex`,`istore32_complex`, `uload8x8_complex`, `sload8x8_complex`,`sload16x4_complex`, `uload16x4_complex`, `uload32x2_complex`,`sload32x2_complex`.The rationale for this removal is that the Cranelift backend now has theability to pattern-match multiple upstream additions in order tocalculate the address to access. Previously, this was not possible sothe `*_complex` instructions were needed. Over time, these instructionshave fallen out of use in this repository, making the additionaloverhead of maintaining them a chore.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Thu, 31 Mar 2022 17:05:10 +0000</pubDate>
        <dc:creator>Andrew Brown &lt;andrew.brown@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>2fbd57e9 - Remove imm_with_name</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#2fbd57e9</link>
        <description>Remove imm_with_nameIt is only used once to rename an imm field to mask

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Sun, 31 Oct 2021 17:48:07 +0000</pubDate>
        <dc:creator>bjorn3 &lt;bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>5b24e117 - Remove instructions used by old br_table legalization</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs#5b24e117</link>
        <description>Remove instructions used by old br_table legalization

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/meta/src/shared/formats.rs</description>
        <pubDate>Tue, 12 Oct 2021 12:18:52 +0000</pubDate>
        <dc:creator>bjorn3 &lt;bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
</channel>
</rss>
