Stream: git-wasmtime

Topic: wasmtime / PR #3569 aarch64: Migrate `imul` to ISLE


view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2021 at 00:06):

alexcrichton opened PR #3569 from isle-2-imul to main:

This commit migrates the imul clif instruction lowering for AArch64 to
ISLE. This is a relatively complicated instruction with lots of special
cases due to the simd proposal for wasm. Like x64, however, the special
casing lends itself to ISLE quite well and the lowerings here in theory
are pretty straightforward.

The main gotcha of this commit is that this encounters a unique
situation which hasn't been encountered yet with other lowerings, namely
the Umlal32 instruction used in the implementation of i64x2.mul is
unique in the VecRRRLongOp class of instructions in that it both reads
and writes the destination register (use_mod instead of simply
use_def). This meant that I needed to add another helper in ISLe for
creating a vec_rrrr_long instruction (despite this enum variant not
actually existing) which implicitly moves the first operand into the
destination before issuing the actual VecRRRLong instruction.

<!--

Please ensure that the following steps are all taken care of before submitting
the PR.

Please ensure all communication adheres to the code of conduct.
-->

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2021 at 00:21):

fitzgen submitted PR review.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2021 at 01:00):

fitzgen merged PR #3569.


Last updated: Nov 22 2024 at 17:03 UTC