alexcrichton opened PR #6467 from alexcrichton:x64-misc-less-sse41
to bytecodealliance:main
:
This commit updates some lowerings using SSE4.1 instructions in miscellaneous locations to compatible versions not using these instructions. This primarily worked by extracting some rules to helpers and delegating to the helpers instead of specific instructions.
One large-ish instruction updated here is the
unarrow
instruction which lowers topackusdw
and doesn't seem to have any "easy" lowering so I took a look at LLVM and tried to simplify it for ISLE.<!--
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 abrown for a review on PR #6467.
alexcrichton requested wasmtime-compiler-reviewers for a review on PR #6467.
abrown submitted PR review:
LGTM! Thanks for doing all of this work.
abrown submitted PR review:
LGTM! Thanks for doing all of this work.
abrown created PR review comment:
Not sure I completely understand: this seems to be saying that we expect
a
to already be in a register. So I assume all the lowering rules already do this and this is just an extra check that this is the case?
alexcrichton created PR review comment:
Ah so before it was
a: Value
but I called this helper from another location which only had a register so I changed it toa: RegMem
. This meant that anything coerced into memory had to be explicitly lifted from memory (the last rule here) so the base rules like making calls only worked with registers.
alexcrichton merged PR #6467.
Last updated: Dec 23 2024 at 12:05 UTC