]> xenbits.xensource.com Git - qemu-xen.git/log
qemu-xen.git
2 years agotarget/arm: Use TRANS_FEAT for FLOGB
Richard Henderson [Fri, 27 May 2022 18:18:49 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for FLOGB

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-97-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_frint_mode
Richard Henderson [Fri, 27 May 2022 18:18:48 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_frint_mode

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-96-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Move null function and sve check into do_frint_mode
Richard Henderson [Fri, 27 May 2022 18:18:47 +0000 (11:18 -0700)]
target/arm: Move null function and sve check into do_frint_mode

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-95-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Rename do_zpz_ptr to gen_gvec_ool_fpst_arg_zpz
Richard Henderson [Fri, 27 May 2022 18:18:46 +0000 (11:18 -0700)]
target/arm: Rename do_zpz_ptr to gen_gvec_ool_fpst_arg_zpz

Rename the function to match other expansion function and
move to be adjacent.  Split out gen_gvec_fpst_zzp as a
helper while we're at it.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-94-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Expand frint_fns for MO_8
Richard Henderson [Fri, 27 May 2022 18:18:45 +0000 (11:18 -0700)]
target/arm: Expand frint_fns for MO_8

Simplify indexing of this array.  This will allow folding
of the illegal esz == 0 into the normal fn == NULL check.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-93-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for FRECPE, FRSQRTE
Richard Henderson [Fri, 27 May 2022 18:18:44 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for FRECPE, FRSQRTE

Rename do_zz_fp to gen_gvec_fpst_arg_zz, and move up.
Split out gen_gvec_fpst_zz as a helper while we're at it.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-92-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_reduce
Richard Henderson [Fri, 27 May 2022 18:18:43 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_reduce

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-91-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Move null function and sve check into do_reduce
Richard Henderson [Fri, 27 May 2022 18:18:42 +0000 (11:18 -0700)]
target/arm: Move null function and sve check into do_reduce

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-90-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for FTMAD
Richard Henderson [Fri, 27 May 2022 18:18:41 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for FTMAD

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-89-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for FMUL_zzx
Richard Henderson [Fri, 27 May 2022 18:18:40 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for FMUL_zzx

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-88-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for DO_FP3
Richard Henderson [Fri, 27 May 2022 18:18:39 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for DO_FP3

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-87-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Rename do_zzz_fp to gen_gvec_ool_fpst_arg_zzz
Richard Henderson [Fri, 27 May 2022 18:18:38 +0000 (11:18 -0700)]
target/arm: Rename do_zzz_fp to gen_gvec_ool_fpst_arg_zzz

Rename the function to match gen_gvec_ool_arg_zzz,
and move to be adjacent.  Split out gen_gvec_fpst_zzz
as a helper while we're at it.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-86-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for BFMLA
Richard Henderson [Fri, 27 May 2022 18:18:37 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for BFMLA

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-85-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for FMLA
Richard Henderson [Fri, 27 May 2022 18:18:36 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for FMLA

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-84-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for MOVPRFX
Richard Henderson [Fri, 27 May 2022 18:18:35 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for MOVPRFX

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-83-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for SEL_zpzz
Richard Henderson [Fri, 27 May 2022 18:18:34 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for SEL_zpzz

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-82-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Implement NOT (prediates) alias
Richard Henderson [Fri, 27 May 2022 18:18:33 +0000 (11:18 -0700)]
target/arm: Implement NOT (prediates) alias

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>
2 years agotarget/arm: Move sve check into gen_gvec_fn_ppp
Richard Henderson [Fri, 27 May 2022 18:18:32 +0000 (11:18 -0700)]
target/arm: Move sve check into gen_gvec_fn_ppp

Combined with the check already present in gen_mov_p,
we can simplify some special cases in trans_AND_pppp
and trans_BIC_pppp.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-80-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for FMMLA
Richard Henderson [Fri, 27 May 2022 18:18:31 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for FMMLA

Being able to specify the feature predicate in TRANS_FEAT
makes it easier to split trans_FMMLA by element size,
which also happens to simplify the decode.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-79-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Introduce gen_gvec_{ptr,fpst}_zzzz
Richard Henderson [Fri, 27 May 2022 18:18:30 +0000 (11:18 -0700)]
target/arm: Introduce gen_gvec_{ptr,fpst}_zzzz

Use these for the several varieties of floating-point
multiply-add instructions.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-78-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_zzi_ool
Richard Henderson [Fri, 27 May 2022 18:18:29 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_zzi_ool

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-77-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_zzi_sat
Richard Henderson [Fri, 27 May 2022 18:18:28 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_zzi_sat

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-76-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for ADD_zzi
Richard Henderson [Fri, 27 May 2022 18:18:27 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for ADD_zzi

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-75-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Reject copy w/ shifted byte early
Richard Henderson [Fri, 27 May 2022 18:18:26 +0000 (11:18 -0700)]
target/arm: Reject copy w/ shifted byte early

Remove the unparsed extractions in trans_CPY_{m,z}_i which are intended
to reject an 8-bit shift of an 8-bit constant for 8-bit element.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-74-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Reject add/sub w/ shifted byte early
Richard Henderson [Fri, 27 May 2022 18:18:25 +0000 (11:18 -0700)]
target/arm: Reject add/sub w/ shifted byte early

Remove the unparsed extractions in trans_ADD_zzi, trans_SUBR_zzi,
and do_zzi_sat which are intended to reject an 8-bit shift of an
8-bit constant for 8-bit element.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-73-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Reject dup_i w/ shifted byte early
Richard Henderson [Fri, 27 May 2022 18:18:24 +0000 (11:18 -0700)]
target/arm: Reject dup_i w/ shifted byte early

Remove the unparsed extraction in trans_DUP_i,
which is intended to reject an 8-bit shift of
an 8-bit constant for 8-bit element.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-72-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for MUL_zzi
Richard Henderson [Fri, 27 May 2022 18:18:23 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for MUL_zzi

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-71-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_brk2, do_brk3
Richard Henderson [Fri, 27 May 2022 18:18:22 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_brk2, do_brk3

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-70-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_ppzi_flags
Richard Henderson [Fri, 27 May 2022 18:18:21 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_ppzi_flags

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-69-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_sve2_ppzz_flags
Richard Henderson [Fri, 27 May 2022 18:18:20 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_sve2_ppzz_flags

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-68-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_ppzz_flags
Richard Henderson [Fri, 27 May 2022 18:18:19 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_ppzz_flags

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-67-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for SPLICE
Richard Henderson [Fri, 27 May 2022 18:18:18 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for SPLICE

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-66-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_last_general
Richard Henderson [Fri, 27 May 2022 18:18:17 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_last_general

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-65-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_last_fp
Richard Henderson [Fri, 27 May 2022 18:18:16 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_last_fp

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-64-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_clast_general
Richard Henderson [Fri, 27 May 2022 18:18:15 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_clast_general

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-63-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_clast_fp
Richard Henderson [Fri, 27 May 2022 18:18:14 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_clast_fp

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-62-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_clast_vector
Richard Henderson [Fri, 27 May 2022 18:18:13 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_clast_vector

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-61-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_zip, do_zip_q
Richard Henderson [Fri, 27 May 2022 18:18:12 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_zip, do_zip_q

Convert SVE translation functions using do_zip*
to use TRANS_FEAT and gen_gvec_ool_arg_zzz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-60-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use gen_gvec_ool_arg_zzz for do_zip, do_zip_q
Richard Henderson [Fri, 27 May 2022 18:18:11 +0000 (11:18 -0700)]
target/arm: Use gen_gvec_ool_arg_zzz for do_zip, do_zip_q

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-59-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Move sve zip high_ofs into simd_data
Richard Henderson [Fri, 27 May 2022 18:18:10 +0000 (11:18 -0700)]
target/arm: Move sve zip high_ofs into simd_data

This is in line with how we treat uzp, and will
eliminate the special case code during translation.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-58-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_perm_pred2
Richard Henderson [Fri, 27 May 2022 18:18:09 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_perm_pred2

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-57-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_perm_pred3
Richard Henderson [Fri, 27 May 2022 18:18:08 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_perm_pred3

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-56-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_EXT
Richard Henderson [Fri, 27 May 2022 18:18:07 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_EXT

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-55-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_pfirst_pnext
Richard Henderson [Fri, 27 May 2022 18:18:06 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_pfirst_pnext

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-54-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for RDFFR, WRFFR
Richard Henderson [Fri, 27 May 2022 18:18:05 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for RDFFR, WRFFR

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-53-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_predset
Richard Henderson [Fri, 27 May 2022 18:18:04 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_predset

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-52-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_adr
Richard Henderson [Fri, 27 May 2022 18:18:03 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_adr

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-51-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_index
Richard Henderson [Fri, 27 May 2022 18:18:02 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_index

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-50-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Move sve check into do_index
Richard Henderson [Fri, 27 May 2022 18:18:01 +0000 (11:18 -0700)]
target/arm: Move sve check into do_index

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-49-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_zpzzz_ool
Richard Henderson [Fri, 27 May 2022 18:18:00 +0000 (11:18 -0700)]
target/arm: Use TRANS_FEAT for do_zpzzz_ool

Remove the DO_ZPZZZ macro, as it had just the two uses.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-48-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_shift_zpzi
Richard Henderson [Fri, 27 May 2022 18:17:59 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_shift_zpzi

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-47-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Introduce do_shift_zpzi
Richard Henderson [Fri, 27 May 2022 18:17:58 +0000 (11:17 -0700)]
target/arm: Introduce do_shift_zpzi

Share code between the various shifts using arg_rpri_esz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-46-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_shift_imm
Richard Henderson [Fri, 27 May 2022 18:17:57 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_shift_imm

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-45-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_vpz_ool
Richard Henderson [Fri, 27 May 2022 18:17:56 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_vpz_ool

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-44-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_sve2_fn2i
Richard Henderson [Fri, 27 May 2022 18:17:55 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_sve2_fn2i

Convert SVE translation functions using do_sve2_fn2i
to use TRANS_FEAT and gen_gvec_fn_arg_zzi.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-43-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Introduce gen_gvec_fn_arg_zzi
Richard Henderson [Fri, 27 May 2022 18:17:54 +0000 (11:17 -0700)]
target/arm: Introduce gen_gvec_fn_arg_zzi

We have two places that perform this particular operation.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-42-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Hoist sve access check through do_sel_z
Richard Henderson [Fri, 27 May 2022 18:17:53 +0000 (11:17 -0700)]
target/arm: Hoist sve access check through do_sel_z

The check is already done in gen_gvec_ool_zzzp,
which is called by do_sel_z; remove from callers.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-41-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_zz_dbm
Richard Henderson [Fri, 27 May 2022 18:17:52 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_zz_dbm

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-40-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Introduce gen_gvec_fn_zzi
Richard Henderson [Fri, 27 May 2022 18:17:51 +0000 (11:17 -0700)]
target/arm: Introduce gen_gvec_fn_zzi

We have two places that perform this particular operation.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-39-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_sve2_zzzz_fn
Richard Henderson [Fri, 27 May 2022 18:17:50 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_sve2_zzzz_fn

Convert SVE translation functions using do_sve2_zzzz_fn
to use TRANS_FEAT and gen_gvec_fn_arg_zzzz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-38-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Introduce gen_gvec_fn_arg_zzzz
Richard Henderson [Fri, 27 May 2022 18:17:49 +0000 (11:17 -0700)]
target/arm: Introduce gen_gvec_fn_arg_zzzz

Merge gen_gvec_fn_zzzz with the sve access check and the
dereference of arg_rrrr_esz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-37-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for RAX1
Richard Henderson [Fri, 27 May 2022 18:17:48 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for RAX1

The decode for RAX1 sets esz to MO_8, because that's what
we use by default for "no esz present".  We changed that
to MO_64 during translation because it is more logical for
the operation.  However, the esz argument to gen_gvec_rax1
is unused and forces MO_64 within that function, so there
is no need to do it here as well.

Simplify to use gen_gvec_fn_arg_zzz and TRANS_FEAT.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-36-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_sve2_fn_zzz
Richard Henderson [Fri, 27 May 2022 18:17:47 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_sve2_fn_zzz

Convert SVE translation functions using do_sve2_fn_zzz
to use TRANS_FEAT and gen_gvec_fn_arg_zzz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-35-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for gen_gvec_fn_arg_zzz
Richard Henderson [Fri, 27 May 2022 18:17:46 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for gen_gvec_fn_arg_zzz

Convert SVE translation functions directly using
gen_gvec_fn_arg_zzz to TRANS_FEAT.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-34-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: More use of gen_gvec_fn_arg_zzz
Richard Henderson [Fri, 27 May 2022 18:17:45 +0000 (11:17 -0700)]
target/arm: More use of gen_gvec_fn_arg_zzz

Two uses of gen_gvec_fn_zzz can pass on arg_rrr_esz instead.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-33-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Rename do_zzz_fn to gen_gvec_fn_arg_zzz
Richard Henderson [Fri, 27 May 2022 18:17:44 +0000 (11:17 -0700)]
target/arm: Rename do_zzz_fn to gen_gvec_fn_arg_zzz

Rename the function to match gen_gvec_fn_zzz,
and move to be adjacent.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-32-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Move null function and sve check into gen_gvec_fn_zzz
Richard Henderson [Fri, 27 May 2022 18:17:43 +0000 (11:17 -0700)]
target/arm: Move null function and sve check into gen_gvec_fn_zzz

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-31-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Merge gen_gvec_fn_zz into do_mov_z
Richard Henderson [Fri, 27 May 2022 18:17:42 +0000 (11:17 -0700)]
target/arm: Merge gen_gvec_fn_zz into do_mov_z

There is only one caller for gen_gvec_fn_zz; inline it.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-30-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_sve2_zpzz_ool
Richard Henderson [Fri, 27 May 2022 18:17:41 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_sve2_zpzz_ool

Convert SVE translation functions using do_sve2_zpzz_ool
to use TRANS_FEAT and gen_gvec_ool_arg_zpzz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-29-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpzz
Richard Henderson [Fri, 27 May 2022 18:17:40 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpzz

Convert SVE translation functions directly using
gen_gvec_ool_arg_zpzz to TRANS_FEAT.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-28-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Introduce gen_gvec_ool_arg_zpzz
Richard Henderson [Fri, 27 May 2022 18:17:39 +0000 (11:17 -0700)]
target/arm: Introduce gen_gvec_ool_arg_zpzz

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>
Message-id: 20220527181907.189259-27-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Move null function and sve check into gen_gvec_ool_zzzp
Richard Henderson [Fri, 27 May 2022 18:17:38 +0000 (11:17 -0700)]
target/arm: Move null function and sve check into gen_gvec_ool_zzzp

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-26-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpzi
Richard Henderson [Fri, 27 May 2022 18:17:37 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpzi

Convert some SVE translation functions using
gen_gvec_ool_arg_zpzi to TRANS_FEAT.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-25-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Rename do_zpzi_ool to gen_gvec_ool_arg_zpzi
Richard Henderson [Fri, 27 May 2022 18:17:36 +0000 (11:17 -0700)]
target/arm: Rename do_zpzi_ool to gen_gvec_ool_arg_zpzi

Rename the function to match gen_gvec_ool_arg_zpz,
and move to be adjacent.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-24-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_sve2_zpz_data
Richard Henderson [Fri, 27 May 2022 18:17:35 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_sve2_zpz_data

Convert SVE translation functions using do_sve2_zpz_data
to use TRANS_FEAT and gen_gvec_ool_arg_zpz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-23-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpz
Richard Henderson [Fri, 27 May 2022 18:17:34 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpz

Convert SVE translation functions directly using
gen_gvec_ool_arg_zpz to TRANS_FEAT.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-22-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Introduce gen_gvec_ool_arg_zpz
Richard Henderson [Fri, 27 May 2022 18:17:33 +0000 (11:17 -0700)]
target/arm: Introduce gen_gvec_ool_arg_zpz

Use gen_gvec_ool_arg_zpz instead of gen_gvec_ool_zzp
when the arguments come from arg_rpr_esz.
Replaces do_zpz_ool.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-21-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Move null function and sve check into gen_gvec_ool_zzp
Richard Henderson [Fri, 27 May 2022 18:17:32 +0000 (11:17 -0700)]
target/arm: Move null function and sve check into gen_gvec_ool_zzp

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-20-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for USDOT_zzzz
Richard Henderson [Fri, 27 May 2022 18:17:31 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for USDOT_zzzz

This is the last direct user of tcg_gen_gvec_4_ool.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-19-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_sve2_zzw_data
Richard Henderson [Fri, 27 May 2022 18:17:30 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_sve2_zzw_data

Convert SVE translation functions using do_sve2_zzw_data
to use TRANS_FEAT and gen_gvec_ool_arg_zzz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-18-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_sve2_zzzz_data
Richard Henderson [Fri, 27 May 2022 18:17:29 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_sve2_zzzz_data

Convert SVE translation functions using do_sve2_zzzz_data
to use TRANS_FEAT and gen_gvec_ool_{zzzz,zzxz}.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-17-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_sve2_zzz_data
Richard Henderson [Fri, 27 May 2022 18:17:28 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_sve2_zzz_data

Convert SVE translation functions using do_sve2_zzz_data
to use TRANS_FEAT and gen_gvec_ool_zzz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-16-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zzxz
Richard Henderson [Fri, 27 May 2022 18:17:27 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zzxz

Convert SVE translation functions directly using
gen_gvec_ool_arg_zzxz to TRANS_FEAT.  Also include
BFDOT_zzxz, which was using gen_gvec_ool_zzzz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-15-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Rename do_zzxz_ool to gen_gvec_ool_arg_zzxz
Richard Henderson [Fri, 27 May 2022 18:17:26 +0000 (11:17 -0700)]
target/arm: Rename do_zzxz_ool to gen_gvec_ool_arg_zzxz

Rename the function to match gen_gvec_ool_arg_zzzz,
and move to be adjacent.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-14-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zzzz
Richard Henderson [Fri, 27 May 2022 18:17:25 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zzzz

Convert SVE translation functions directly using
gen_gvec_ool_arg_zzzz to TRANS_FEAT.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-13-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_sve2_zzzz_ool
Richard Henderson [Fri, 27 May 2022 18:17:24 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_sve2_zzzz_ool

Convert SVE translation functions using do_sve2_zzzz_ool
to use TRANS_FEAT and gen_gvec_ool_arg_zzzz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-12-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Introduce gen_gvec_ool_arg_zzzz
Richard Henderson [Fri, 27 May 2022 18:17:23 +0000 (11:17 -0700)]
target/arm: Introduce gen_gvec_ool_arg_zzzz

Use gen_gvec_ool_arg_zzzz instead of gen_gvec_ool_zzzz
when the arguments come from arg_rrrr_esz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-11-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for gen_gvec_ool_zzzz
Richard Henderson [Fri, 27 May 2022 18:17:22 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for gen_gvec_ool_zzzz

Convert SVE translation functions directly using
gen_gvec_ool_zzzz to TRANS_FEAT.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-10-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Move null function and sve check into gen_gvec_ool_zzzz
Richard Henderson [Fri, 27 May 2022 18:17:21 +0000 (11:17 -0700)]
target/arm: Move null function and sve check into gen_gvec_ool_zzzz

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-9-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for do_sve2_zzz_ool
Richard Henderson [Fri, 27 May 2022 18:17:20 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for do_sve2_zzz_ool

Convert SVE translation functions using do_sve2_zzz_ool
to use TRANS_FEAT and gen_gvec_ool_arg_zzz.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-8-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zzz
Richard Henderson [Fri, 27 May 2022 18:17:19 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zzz

Convert SVE translation functions using
gen_gvec_ool_arg_zzz to TRANS_FEAT.

Remove trivial wrappers do_aese, do_sm4.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-7-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Introduce gen_gvec_ool_arg_zzz
Richard Henderson [Fri, 27 May 2022 18:17:18 +0000 (11:17 -0700)]
target/arm: Introduce gen_gvec_ool_arg_zzz

Use gen_gvec_ool_arg_zzz instead of gen_gvec_ool_zzz
when the arguments come from arg_rrr_esz.
Replaces do_zzw_ool and do_zzz_data_ool.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-6-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Move null function and sve check into gen_gvec_ool_zzz
Richard Henderson [Fri, 27 May 2022 18:17:17 +0000 (11:17 -0700)]
target/arm: Move null function and sve check into gen_gvec_ool_zzz

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-5-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Use TRANS_FEAT for gen_gvec_ool_zz
Richard Henderson [Fri, 27 May 2022 18:17:16 +0000 (11:17 -0700)]
target/arm: Use TRANS_FEAT for gen_gvec_ool_zz

Convert SVE translation functions using gen_gvec_ool_zz to TRANS_FEAT.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-4-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Move null function and sve check into gen_gvec_ool_zz
Richard Henderson [Fri, 27 May 2022 18:17:15 +0000 (11:17 -0700)]
target/arm: Move null function and sve check into gen_gvec_ool_zz

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-3-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Introduce TRANS, TRANS_FEAT
Richard Henderson [Fri, 27 May 2022 18:17:14 +0000 (11:17 -0700)]
target/arm: Introduce TRANS, TRANS_FEAT

Steal the idea for these leaf function expanders from PowerPC.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220527181907.189259-2-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agohw/sd/allwinner-sdhost: report FIFO water level as 1 when data ready
Icenowy Zheng [Fri, 20 May 2022 12:42:00 +0000 (20:42 +0800)]
hw/sd/allwinner-sdhost: report FIFO water level as 1 when data ready

U-Boot queries the FIFO water level to reduce checking status register
when doing PIO SD card operation.

Report a FIFO water level of 1 when data is ready, to prevent the code
from trying to read 0 words from the FIFO each time.

Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Message-id: 20220520124200.2112699-1-uwu@icenowy.me
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm/hvf: Include missing "cpregs.h"
Philippe Mathieu-Daudé [Wed, 25 May 2022 16:19:26 +0000 (18:19 +0200)]
target/arm/hvf: Include missing "cpregs.h"

Fix when building HVF on macOS Aarch64:

  target/arm/hvf/hvf.c:586:15: error: unknown type name 'ARMCPRegInfo'; did you mean 'ARMCPUInfo'?
          const ARMCPRegInfo *ri;
                ^~~~~~~~~~~~
                ARMCPUInfo
  target/arm/cpu-qom.h:38:3: note: 'ARMCPUInfo' declared here
  } ARMCPUInfo;
    ^
  target/arm/hvf/hvf.c:589:14: error: implicit declaration of function 'get_arm_cp_reginfo' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
          ri = get_arm_cp_reginfo(arm_cpu->cp_regs, key);
               ^
  target/arm/hvf/hvf.c:589:12: warning: incompatible integer to pointer conversion assigning to 'const ARMCPUInfo *' (aka 'const struct ARMCPUInfo *') from 'int' [-Wint-conversion]
          ri = get_arm_cp_reginfo(arm_cpu->cp_regs, key);
             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  target/arm/hvf/hvf.c:591:26: error: no member named 'type' in 'struct ARMCPUInfo'
              assert(!(ri->type & ARM_CP_NO_RAW));
                       ~~  ^
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/assert.h:99:25: note: expanded from macro 'assert'
      (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __ASSERT_FILE_NAME, __LINE__, #e) : (void)0)
                          ^
  target/arm/hvf/hvf.c:591:33: error: use of undeclared identifier 'ARM_CP_NO_RAW'
              assert(!(ri->type & ARM_CP_NO_RAW));
                                  ^
  1 warning and 4 errors generated.

Fixes: cf7c6d1004 ("target/arm: Split out cpregs.h")
Reported-by: Duncan Bayne <duncan@bayne.id.au>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220525161926.34233-1-philmd@fungible.com
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1029
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agodocs/system/arm: Add FEAT_HCX to list of emulated features
Peter Maydell [Mon, 30 May 2022 09:26:52 +0000 (10:26 +0100)]
docs/system/arm: Add FEAT_HCX to list of emulated features

In commit 5814d587fe861fe9 we added support for emulating
FEAT_HCX (Support for the HCRX_EL2 register). However we
forgot to add it to the list in emulated.rst. Correct the
omission.

Fixes: 5814d587fe861fe9 ("target/arm: Enable FEAT_HCX for -cpu max")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220520084320.424166-1-peter.maydell@linaro.org

2 years agoMerge tag 'misc-pull-request' of gitlab.com:marcandre.lureau/qemu into staging
Richard Henderson [Sun, 29 May 2022 23:34:56 +0000 (16:34 -0700)]
Merge tag 'misc-pull-request' of gitlab.com:marcandre.lureau/qemu into staging

Misc cleanups

Mostly qemu-ga related cleanups.

# -----BEGIN PGP SIGNATURE-----
#
# iQJQBAABCAA6FiEEh6m9kz+HxgbSdvYt2ujhCXWWnOUFAmKT+IccHG1hcmNhbmRy
# ZS5sdXJlYXVAcmVkaGF0LmNvbQAKCRDa6OEJdZac5SGgD/97YXkEQHHQNCiKwFub
# c3RpunfM2ww/492fwBqRYt/QZgnl1esR3gNkMLcEtR8dtWoGja98XNcTBSGcbZGj
# ydGlMZ5kfe/+7mJd5xu45egfEbWICXySstohWU6MzpddBQ1tTgq0iTsU738CsPY7
# kreQgnbYjvfPux0/xhLbYmuLZgBeLX3ser4tzaDA5ExvHjdMSkzjV6qQI5j2BZbZ
# 7jCEfOJJ++Rht71A+FN98HGF9WG6LhV0e6AUnc52XhhldnnhJ3hSU6vcrrvHfYFk
# 31awe1R2agWb4RMfhV2Nfn1uwsc3E+2cNPYbTvm3v/wX00Zc0gE4Z2e1/nXYU8OZ
# +kjJeiVBCgt8DNfJDYnqRWnrYSyhMmc/UIysl0SKLVVOymPDotqHjkEanDNwPUsK
# sgGNkZz2KsBkW9+PoIXh9nxowT5gG/v2oBQuLZQ+2iHgrfNVTKUweO8vHDv+A5lj
# 2hEjx7IhUTNlclSHjggj2Uig7cfSgPVw27ephij0pi5pclsS8wLDs3XlVX+GSyW9
# P+2DWcsi7sBx1Gt6VcwWO07McS+NrqwwhR7rT0ioNhmS1TE0mt0YWhkCg5iabVFo
# yzweA0urN8AF0Js5IKZdNk0/z83nr8Qu8dRmGjciaYo7abBetmIdqdzuv1mIkV2H
# Sqi0mv7yPf7uYHk0U1lb2RNtJQ==
# =L0lG
# -----END PGP SIGNATURE-----
# gpg: Signature made Sun 29 May 2022 03:49:43 PM PDT
# gpg:                using RSA key 87A9BD933F87C606D276F62DDAE8E10975969CE5
# gpg:                issuer "marcandre.lureau@redhat.com"
# gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>" [full]
# gpg:                 aka "Marc-André Lureau <marcandre.lureau@gmail.com>" [full]

* tag 'misc-pull-request' of gitlab.com:marcandre.lureau/qemu:
  test/qga: use g_auto wherever sensible
  qga/wixl: replace QEMU_GA_MSI_MINGW_BIN_PATH with glib bindir
  qga/wixl: simplify some pre-processing
  qga/wixl: require Mingw_bin
  qga/wixl: prefer variables over environment
  test/qga: use G_TEST_DIR to locate os-release test file
  qga: make build_fs_mount_list() return a bool
  qga: replace qemu_open_old() with qga_open_cloexec()
  qga: throw an Error in ga_channel_open()
  qga: use qga_open_cloexec() for safe_open_or_create()
  qga: add qga_open_cloexec() helper
  qga: flatten safe_open_or_create()
  tests: make libqmp buildable for win32
  util/win32: simplify qemu_get_local_state_dir()
  include: move qemu_*_exec_dir() to cutils

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>