[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 083/117] target/arm: Implement NOT (prediates) alias
From: |
Peter Maydell |
Subject: |
[PULL 083/117] target/arm: Implement NOT (prediates) alias |
Date: |
Mon, 30 May 2022 17:06:34 +0100 |
From: Richard Henderson <richard.henderson@linaro.org>
This alias is defined on EOR (prediates). While the
same operation could be performed with NAND or NOR,
only bother with the official alias.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-81-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
target/arm/translate-sve.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c
index f33bc9d480b..b6b5980e2db 100644
--- a/target/arm/translate-sve.c
+++ b/target/arm/translate-sve.c
@@ -1381,6 +1381,11 @@ static bool trans_EOR_pppp(DisasContext *s, arg_rprr_s
*a)
.fno = gen_helper_sve_eor_pppp,
.prefer_i64 = TCG_TARGET_REG_BITS == 64,
};
+
+ /* Alias NOT (predicate) is EOR Pd.B, Pg/Z, Pn.B, Pg.B */
+ if (!a->s && a->pg == a->rm) {
+ return gen_gvec_fn_ppp(s, tcg_gen_gvec_andc, a->rd, a->pg, a->rn);
+ }
return do_pppp_flags(s, a, &op);
}
--
2.25.1
- [PULL 053/117] target/arm: Use TRANS_FEAT for do_adr, (continued)
- [PULL 053/117] target/arm: Use TRANS_FEAT for do_adr, Peter Maydell, 2022/05/30
- [PULL 055/117] target/arm: Use TRANS_FEAT for RDFFR, WRFFR, Peter Maydell, 2022/05/30
- [PULL 057/117] target/arm: Use TRANS_FEAT for do_EXT, Peter Maydell, 2022/05/30
- [PULL 038/117] target/arm: Use TRANS_FEAT for RAX1, Peter Maydell, 2022/05/30
- [PULL 044/117] target/arm: Introduce gen_gvec_fn_arg_zzi, Peter Maydell, 2022/05/30
- [PULL 048/117] target/arm: Introduce do_shift_zpzi, Peter Maydell, 2022/05/30
- [PULL 043/117] target/arm: Hoist sve access check through do_sel_z, Peter Maydell, 2022/05/30
- [PULL 050/117] target/arm: Use TRANS_FEAT for do_zpzzz_ool, Peter Maydell, 2022/05/30
- [PULL 059/117] target/arm: Use TRANS_FEAT for do_perm_pred2, Peter Maydell, 2022/05/30
- [PULL 063/117] target/arm: Use TRANS_FEAT for do_clast_vector, Peter Maydell, 2022/05/30
- [PULL 083/117] target/arm: Implement NOT (prediates) alias,
Peter Maydell <=
- [PULL 049/117] target/arm: Use TRANS_FEAT for do_shift_zpzi, Peter Maydell, 2022/05/30
- [PULL 042/117] target/arm: Use TRANS_FEAT for do_zz_dbm, Peter Maydell, 2022/05/30
- [PULL 045/117] target/arm: Use TRANS_FEAT for do_sve2_fn2i, Peter Maydell, 2022/05/30
- [PULL 054/117] target/arm: Use TRANS_FEAT for do_predset, Peter Maydell, 2022/05/30
- [PULL 056/117] target/arm: Use TRANS_FEAT for do_pfirst_pnext, Peter Maydell, 2022/05/30
- [PULL 068/117] target/arm: Use TRANS_FEAT for SPLICE, Peter Maydell, 2022/05/30
- [PULL 062/117] target/arm: Use TRANS_FEAT for do_zip, do_zip_q, Peter Maydell, 2022/05/30
- [PULL 067/117] target/arm: Use TRANS_FEAT for do_last_general, Peter Maydell, 2022/05/30
- [PULL 069/117] target/arm: Use TRANS_FEAT for do_ppzz_flags, Peter Maydell, 2022/05/30
- [PULL 077/117] target/arm: Use TRANS_FEAT for ADD_zzi, Peter Maydell, 2022/05/30