target/riscv: rvv: Add CHECK arg to GEN_OPFVF_WIDEN_TRANS
Signed-off-by: Anton Blanchard <antonb@tenstorrent.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Max Chou <max.chou@sifive.com>
Signed-off-by: Max Chou <max.chou@sifive.com>
Message-ID: <20250408103938.3623486-3-max.chou@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Cc: qemu-stable@nongnu.org
(cherry picked from commit b0450a101d)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
336fed6bb8
commit
027ea4a2f5
1 changed files with 9 additions and 9 deletions
|
|
@ -2403,10 +2403,10 @@ static bool opfvf_widen_check(DisasContext *s, arg_rmrr *a)
|
|||
}
|
||||
|
||||
/* OPFVF with WIDEN */
|
||||
#define GEN_OPFVF_WIDEN_TRANS(NAME) \
|
||||
#define GEN_OPFVF_WIDEN_TRANS(NAME, CHECK) \
|
||||
static bool trans_##NAME(DisasContext *s, arg_rmrr *a) \
|
||||
{ \
|
||||
if (opfvf_widen_check(s, a)) { \
|
||||
if (CHECK(s, a)) { \
|
||||
uint32_t data = 0; \
|
||||
static gen_helper_opfvf *const fns[2] = { \
|
||||
gen_helper_##NAME##_h, gen_helper_##NAME##_w, \
|
||||
|
|
@ -2422,8 +2422,8 @@ static bool trans_##NAME(DisasContext *s, arg_rmrr *a) \
|
|||
return false; \
|
||||
}
|
||||
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwadd_vf)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwsub_vf)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwadd_vf, opfvf_widen_check)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwsub_vf, opfvf_widen_check)
|
||||
|
||||
static bool opfwv_widen_check(DisasContext *s, arg_rmrr *a)
|
||||
{
|
||||
|
|
@ -2505,7 +2505,7 @@ GEN_OPFVF_TRANS(vfrdiv_vf, opfvf_check)
|
|||
|
||||
/* Vector Widening Floating-Point Multiply */
|
||||
GEN_OPFVV_WIDEN_TRANS(vfwmul_vv, opfvv_widen_check)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwmul_vf)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwmul_vf, opfvf_widen_check)
|
||||
|
||||
/* Vector Single-Width Floating-Point Fused Multiply-Add Instructions */
|
||||
GEN_OPFVV_TRANS(vfmacc_vv, opfvv_check)
|
||||
|
|
@ -2530,10 +2530,10 @@ GEN_OPFVV_WIDEN_TRANS(vfwmacc_vv, opfvv_widen_check)
|
|||
GEN_OPFVV_WIDEN_TRANS(vfwnmacc_vv, opfvv_widen_check)
|
||||
GEN_OPFVV_WIDEN_TRANS(vfwmsac_vv, opfvv_widen_check)
|
||||
GEN_OPFVV_WIDEN_TRANS(vfwnmsac_vv, opfvv_widen_check)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwmacc_vf)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwnmacc_vf)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwmsac_vf)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwnmsac_vf)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwmacc_vf, opfvf_widen_check)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwnmacc_vf, opfvf_widen_check)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwmsac_vf, opfvf_widen_check)
|
||||
GEN_OPFVF_WIDEN_TRANS(vfwnmsac_vf, opfvf_widen_check)
|
||||
|
||||
/* Vector Floating-Point Square-Root Instruction */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue