alexcrichton opened PR #10839 from alexcrichton:x64-new-xmm-cmove to bytecodealliance:main:
In #4317 this instruction was updated to handle 128-bit vectors in addition to the previous handling of 32/64-bit floats. Originally the pseudo-instruction used
movs{s,d}to achieve its task and when adding 128-bit support I mistakenly switched both f32/f64 paths to usingmovsdinstead of conditionally usingmovssforf32. In retrospect though it's probably best to use a full register move here instead of just a singular mov becausemovssandmovsdpreserve the upper bits of the register, needlessly creating a data dependency with the previous value in the register.This commit updates this helper to using
Inst::gen_movewhich already internally does this optimization of usingmovaps, a documented zero-latency instruction, for all xmm-style register movements.<!--
Please make sure you include the following information:
If this work has been discussed elsewhere, please include a link to that
conversation. If it was discussed in an issue, just mention "issue #...".Explain why this change is needed. If the details are in an issue already,
this can be brief.Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.htmlPlease ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->
alexcrichton requested cfallin for a review on PR #10839.
alexcrichton requested wasmtime-compiler-reviewers for a review on PR #10839.
alexcrichton requested dicej for a review on PR #10839.
alexcrichton requested wasmtime-core-reviewers for a review on PR #10839.
cfallin submitted PR review.
cfallin merged PR #10839.
Last updated: Dec 06 2025 at 06:05 UTC