Split Fmla and Bsl out into new VecRRRMod op (#4638)
Separates the following opcodes for AArch64 into a separate `VecALUModOp` enum, which is emitted via the `VecRRRMod` instruction. This separates vector ALU instructions which modify a register from instructions which write to a new register: - `Bsl` - `Fmla` Addresses [a discussion](https://github.com/bytecodealliance/wasmtime/pull/4608#discussion_r937975581) in #4608. Copyright (c) 2022 Arm Limited
This commit is contained in:
@@ -752,6 +752,16 @@ impl VectorSize {
|
||||
|
||||
(q, size)
|
||||
}
|
||||
|
||||
/// Return the encoding bit that is used by some floating-point SIMD
|
||||
/// instructions for a particular operand size.
|
||||
pub fn enc_float_size(&self) -> u32 {
|
||||
match self.lane_size() {
|
||||
ScalarSize::Size32 => 0b0,
|
||||
ScalarSize::Size64 => 0b1,
|
||||
size => panic!("Unsupported floating-point size for vector op: {:?}", size),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn dynamic_to_fixed(ty: Type) -> Type {
|
||||
|
||||
Reference in New Issue
Block a user