<?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 features.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>63330f11 - cranelift-assembler-x64: no_std support (#12235)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/assembler-x64/src/features.rs#63330f11</link>
        <description>cranelift-assembler-x64: no_std support (#12235)* cranelift-assembler-x64: no_std support* cargo fmt* Update cranelift/assembler-x64/src/xmm.rsCo-authored-by: bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;* Update cranelift/assembler-x64/src/imm.rsCo-authored-by: bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;* Update cranelift/assembler-x64/src/api.rsCo-authored-by: bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;* Reorder import of alloc* #![no_std]* revert main.rs* cargo fmt* remove core feature* Fix CI---------Co-authored-by: bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;

            List of files:
            /wasmtime-44.0.1/cranelift/assembler-x64/src/features.rs</description>
        <pubDate>Mon, 05 Jan 2026 15:50:37 +0000</pubDate>
        <dc:creator>SSD &lt;96286755+the-ssd@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>66b4bf32 - x64: handle ISA features more completely (#11272)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/assembler-x64/src/features.rs#66b4bf32</link>
        <description>x64: handle ISA features more completely (#11272)* asm: generate boolean terms of CPU featuresAs discussed [here], we will soon need the ability to express morecomplex combinations of CPU features. These are best expressed asboolean terms: e.g., `(32-bit OR 64-bit) AND ...`, `(32-bit OR 64-bit)AND ((AVX512VL AND AVX512F) OR AVX10.1)`. This change modifies thegenerated code to have a `Inst::is_available` method which contains aRust-ified version of the instruction&apos;s boolean term. To do this, we nowpass in a `Features` trait, which the instruction can query to see ifits desired feature set is available.[here]: https://bytecodealliance.zulipchat.com/#narrow/channel/217117-cranelift/topic/boolean.20terms.20for.20x64.20features* x64: wire up `Inst::is_available` in CraneliftThis change makes us of the assembler&apos;s new generated`Inst::is_available` methods to check an instruction&apos;s feature set in amore succinct (and likely quicker) way. Unfortunately, this does notallow us to print the missing ISA requirements on failure--something toaddress later.* Rename `Features` to `AvailableFeatures`* Remove unused `InstructionSet`* asm: fix all feature definitionsThis is a mechanical transformation converting all instructiondefinitions. Now, instructions should have a correct boolean termdescribe the features required: e.g., `(_64b | compat) &amp; avx`.* x64: replace `use_*` with `has_*` when checking ISA featuresIn Cranelift, the `has_*` flags of `isa::x64::settings::Flags` indicatethat the CPU _has_ some capability; the `use_*` flags indicate thatCranelift _should emit_ instructions using those capabilities. Further,the `use_*` flags may turned on by the presence of more than one `has_*`flags; e.g., when `has_avx` and `has_avx2` are available, `use_avx2` isenabled.Now that Cranelift&apos;s new x64 assembler understands boolean terms, we nolonger need the `use_*` flags for checking if an instruction can beemitted: instead, we should use the `has_*` flags and rely on the logicencoded in `Inst::is_available`.* asm: materialize `Features` via `Inst::features`For better error messages (and just for general use of CPU features, seediscussion [here]), this change adds `Inst::features`--a way toexplicitly examine the boolean term for an instruction. This functionreturns a `&amp;&apos;static Features` that contains the `AND` and `OR` branchesdefining when an instruction is available. This is all generated intosomething that looks like:```rustpub fn features(&amp;self) -&gt; &amp;&apos;static Features {    const F1: &amp;&apos;static Features = &amp;Features::Feature(Feature::_64b);    const F2: &amp;&apos;static Features = &amp;Features::Feature(Feature::compat);    const F0: &amp;&apos;static Features = &amp;Features::Or(F1, F2);    F0}```This change makes use of `for_each_feature` more: we build up the`AvailableFeatures` trait and the `Feature` enum from it. This should bea bit more direct than searching through the generated code (?).[here]: https://github.com/bytecodealliance/wasmtime/pull/11272#discussion_r2214465871

            List of files:
            /wasmtime-44.0.1/cranelift/assembler-x64/src/features.rs</description>
        <pubDate>Wed, 06 Aug 2025 14:32:36 +0000</pubDate>
        <dc:creator>Andrew Brown &lt;andrew.brown@intel.com&gt;</dc:creator>
    </item>
</channel>
</rss>
