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:
@@ -3383,8 +3383,8 @@ fn test_aarch64_binemit() {
|
||||
));
|
||||
|
||||
insns.push((
|
||||
Inst::VecRRR {
|
||||
alu_op: VecALUOp::Bsl,
|
||||
Inst::VecRRRMod {
|
||||
alu_op: VecALUModOp::Bsl,
|
||||
rd: writable_vreg(8),
|
||||
rn: vreg(9),
|
||||
rm: vreg(1),
|
||||
@@ -4055,8 +4055,8 @@ fn test_aarch64_binemit() {
|
||||
));
|
||||
|
||||
insns.push((
|
||||
Inst::VecRRR {
|
||||
alu_op: VecALUOp::Fmla,
|
||||
Inst::VecRRRMod {
|
||||
alu_op: VecALUModOp::Fmla,
|
||||
rd: writable_vreg(2),
|
||||
rn: vreg(0),
|
||||
rm: vreg(5),
|
||||
@@ -4067,8 +4067,8 @@ fn test_aarch64_binemit() {
|
||||
));
|
||||
|
||||
insns.push((
|
||||
Inst::VecRRR {
|
||||
alu_op: VecALUOp::Fmla,
|
||||
Inst::VecRRRMod {
|
||||
alu_op: VecALUModOp::Fmla,
|
||||
rd: writable_vreg(2),
|
||||
rn: vreg(0),
|
||||
rm: vreg(5),
|
||||
@@ -4079,8 +4079,8 @@ fn test_aarch64_binemit() {
|
||||
));
|
||||
|
||||
insns.push((
|
||||
Inst::VecRRR {
|
||||
alu_op: VecALUOp::Fmla,
|
||||
Inst::VecRRRMod {
|
||||
alu_op: VecALUModOp::Fmla,
|
||||
rd: writable_vreg(2),
|
||||
rn: vreg(0),
|
||||
rm: vreg(5),
|
||||
|
||||
Reference in New Issue
Block a user