vulc41n requested abrown for a review on PR #9114.
vulc41n requested wasmtime-compiler-reviewers for a review on PR #9114.
vulc41n opened PR #9114 from vulc41n:winch-aarch64-extend-wrap to bytecodealliance:main:
Hey :wave:
This PR implements
extend,wrap,popcnt,promote&demoteinstructions for winch targeting aarch64.#8321
<!--
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
-->
vulc41n requested alexcrichton for a review on PR #9114.
vulc41n requested wasmtime-core-reviewers for a review on PR #9114.
vulc41n updated PR #9114.
vulc41n updated PR #9114.
saulecabrera commented on PR #9114:
I can help reviewing this one.
saulecabrera requested saulecabrera for a review on PR #9114.
saulecabrera submitted PR review.
saulecabrera created PR review comment:
To reduce register pressure, could we use the scratch float register here?
saulecabrera created PR review comment:
In the case of
aarch64I believe that thefallbacktest is redundant i.e., since we are not generating an alternative sequence of instructions like in x64.
saulecabrera created PR review comment:
If I'm not wrong, Wasm only defined
{i32, i64}_popcntso I believe we only need to handle theS32 | S64case and handle all the other operand sizes withunreachable!()instead ofunimplemented, which also means that we can probably drop theaddp_rrrimplementation.
saulecabrera created PR review comment:
Could we add some methods to the
ExtendKindimplementation instead? Something like:impl ExtendKind { fn signed(&self) -> bool { ... } fn from_bits(&self) -> u8 { ... } fn to_bits(&self) -> u8 { ... } }
saulecabrera edited PR review comment.
vulc41n submitted PR review.
vulc41n created PR review comment:
You're right, I used
lower.isleas a reference but CLIF is different from WASM.handle all the other operand sizes with
unreachable!()instead ofunimplementedI just removed the match, please tell me if you think an assertion is needed
vulc41n updated PR #9114.
saulecabrera submitted PR review:
One minor nit and this should be good to go.
saulecabrera submitted PR review:
One minor nit and this should be good to go.
saulecabrera created PR review comment:
The scratch register is manually tracked i.e.,
free_regis a no-op in this case, so we can remove this call.
vulc41n updated PR #9114.
vulc41n updated PR #9114.
saulecabrera submitted PR review:
Thanks!
saulecabrera merged PR #9114.
Last updated: Dec 06 2025 at 06:05 UTC