[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 026/114] target/arm: Introduce gen_gvec_ool_arg_zpzz
From: |
Richard Henderson |
Subject: |
[PATCH 026/114] target/arm: Introduce gen_gvec_ool_arg_zpzz |
Date: |
Fri, 27 May 2022 11:17:39 -0700 |
Use gen_gvec_ool_arg_zpzz instead of gen_gvec_ool_zzzp
when the arguments come from arg_rprr_esz.
Replaces do_zpzz_ool.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/arm/translate-sve.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c
index fea7164d72..d63099c5b7 100644
--- a/target/arm/translate-sve.c
+++ b/target/arm/translate-sve.c
@@ -252,6 +252,12 @@ static bool gen_gvec_ool_zzzp(DisasContext *s,
gen_helper_gvec_4 *fn,
return true;
}
+static bool gen_gvec_ool_arg_zpzz(DisasContext *s, gen_helper_gvec_4 *fn,
+ arg_rprr_esz *a, int data)
+{
+ return gen_gvec_ool_zzzp(s, fn, a->rd, a->rn, a->rm, a->pg, data);
+}
+
/* Invoke a vector expander on two Zregs. */
static void gen_gvec_fn_zz(DisasContext *s, GVecGen2Fn *gvec_fn,
int esz, int rd, int rn)
@@ -737,11 +743,6 @@ static bool trans_UQSUB_zzz(DisasContext *s, arg_rrr_esz
*a)
*** SVE Integer Arithmetic - Binary Predicated Group
*/
-static bool do_zpzz_ool(DisasContext *s, arg_rprr_esz *a, gen_helper_gvec_4
*fn)
-{
- return gen_gvec_ool_zzzp(s, fn, a->rd, a->rn, a->rm, a->pg, 0);
-}
-
/* Select active elememnts from Zn and inactive elements from Zm,
* storing the result in Zd.
*/
@@ -761,7 +762,7 @@ static bool trans_##NAME##_zpzz(DisasContext *s,
arg_rprr_esz *a) \
gen_helper_sve_##name##_zpzz_b, gen_helper_sve_##name##_zpzz_h, \
gen_helper_sve_##name##_zpzz_s, gen_helper_sve_##name##_zpzz_d, \
}; \
- return do_zpzz_ool(s, a, fns[a->esz]); \
+ return gen_gvec_ool_arg_zpzz(s, fns[a->esz], a, 0); \
}
DO_ZPZZ(AND, and)
@@ -792,7 +793,7 @@ static bool trans_SDIV_zpzz(DisasContext *s, arg_rprr_esz
*a)
static gen_helper_gvec_4 * const fns[4] = {
NULL, NULL, gen_helper_sve_sdiv_zpzz_s, gen_helper_sve_sdiv_zpzz_d
};
- return do_zpzz_ool(s, a, fns[a->esz]);
+ return gen_gvec_ool_arg_zpzz(s, fns[a->esz], a, 0);
}
static bool trans_UDIV_zpzz(DisasContext *s, arg_rprr_esz *a)
@@ -800,7 +801,7 @@ static bool trans_UDIV_zpzz(DisasContext *s, arg_rprr_esz
*a)
static gen_helper_gvec_4 * const fns[4] = {
NULL, NULL, gen_helper_sve_udiv_zpzz_s, gen_helper_sve_udiv_zpzz_d
};
- return do_zpzz_ool(s, a, fns[a->esz]);
+ return gen_gvec_ool_arg_zpzz(s, fns[a->esz], a, 0);
}
static bool trans_SEL_zpzz(DisasContext *s, arg_rprr_esz *a)
@@ -1076,7 +1077,7 @@ static bool trans_##NAME##_zpzw(DisasContext *s,
arg_rprr_esz *a) \
if (a->esz < 0 || a->esz >= 3) { \
return false; \
} \
- return do_zpzz_ool(s, a, fns[a->esz]); \
+ return gen_gvec_ool_arg_zpzz(s, fns[a->esz], a, 0); \
}
DO_ZPZW(ASR, asr)
@@ -6489,7 +6490,7 @@ static bool do_sve2_zpzz_ool(DisasContext *s,
arg_rprr_esz *a,
if (!dc_isar_feature(aa64_sve2, s)) {
return false;
}
- return do_zpzz_ool(s, a, fn);
+ return gen_gvec_ool_arg_zpzz(s, fn, a, 0);
}
static bool trans_SADALP_zpzz(DisasContext *s, arg_rprr_esz *a)
--
2.34.1
- [PATCH 018/114] target/arm: Use TRANS_FEAT for USDOT_zzzz, (continued)
- [PATCH 018/114] target/arm: Use TRANS_FEAT for USDOT_zzzz, Richard Henderson, 2022/05/27
- [PATCH 017/114] target/arm: Use TRANS_FEAT for do_sve2_zzw_data, Richard Henderson, 2022/05/27
- [PATCH 020/114] target/arm: Introduce gen_gvec_ool_arg_zpz, Richard Henderson, 2022/05/27
- [PATCH 021/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpz, Richard Henderson, 2022/05/27
- [PATCH 019/114] target/arm: Move null function and sve check into gen_gvec_ool_zzp, Richard Henderson, 2022/05/27
- [PATCH 022/114] target/arm: Use TRANS_FEAT for do_sve2_zpz_data, Richard Henderson, 2022/05/27
- [PATCH 014/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zzxz, Richard Henderson, 2022/05/27
- [PATCH 025/114] target/arm: Move null function and sve check into gen_gvec_ool_zzzp, Richard Henderson, 2022/05/27
- [PATCH 024/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpzi, Richard Henderson, 2022/05/27
- [PATCH 027/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpzz, Richard Henderson, 2022/05/27
- [PATCH 026/114] target/arm: Introduce gen_gvec_ool_arg_zpzz,
Richard Henderson <=
- [PATCH 030/114] target/arm: Move null function and sve check into gen_gvec_fn_zzz, Richard Henderson, 2022/05/27
- [PATCH 031/114] target/arm: Rename do_zzz_fn to gen_gvec_fn_arg_zzz, Richard Henderson, 2022/05/27
- [PATCH 029/114] target/arm: Merge gen_gvec_fn_zz into do_mov_z, Richard Henderson, 2022/05/27
- [PATCH 028/114] target/arm: Use TRANS_FEAT for do_sve2_zpzz_ool, Richard Henderson, 2022/05/27
- [PATCH 023/114] target/arm: Rename do_zpzi_ool to gen_gvec_ool_arg_zpzi, Richard Henderson, 2022/05/27
- [PATCH 034/114] target/arm: Use TRANS_FEAT for do_sve2_fn_zzz, Richard Henderson, 2022/05/27
- [PATCH 035/114] target/arm: Use TRANS_FEAT for RAX1, Richard Henderson, 2022/05/27
- [PATCH 032/114] target/arm: More use of gen_gvec_fn_arg_zzz, Richard Henderson, 2022/05/27
- [PATCH 033/114] target/arm: Use TRANS_FEAT for gen_gvec_fn_arg_zzz, Richard Henderson, 2022/05/27
- [PATCH 036/114] target/arm: Introduce gen_gvec_fn_arg_zzzz, Richard Henderson, 2022/05/27