mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
target/riscv: vector floating-point compare instructions
Signed-off-by: LIU Zhiwei <zhiwei_liu@c-sky.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20200701152549.1218-40-zhiwei_liu@c-sky.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
1d426b81f7
commit
2a68e9e568
4 changed files with 258 additions and 0 deletions
|
@ -2146,3 +2146,38 @@ GEN_OPFVV_TRANS(vfsgnjx_vv, opfvv_check)
|
|||
GEN_OPFVF_TRANS(vfsgnj_vf, opfvf_check)
|
||||
GEN_OPFVF_TRANS(vfsgnjn_vf, opfvf_check)
|
||||
GEN_OPFVF_TRANS(vfsgnjx_vf, opfvf_check)
|
||||
|
||||
/* Vector Floating-Point Compare Instructions */
|
||||
static bool opfvv_cmp_check(DisasContext *s, arg_rmrr *a)
|
||||
{
|
||||
return (vext_check_isa_ill(s) &&
|
||||
vext_check_reg(s, a->rs2, false) &&
|
||||
vext_check_reg(s, a->rs1, false) &&
|
||||
(s->sew != 0) &&
|
||||
((vext_check_overlap_group(a->rd, 1, a->rs1, 1 << s->lmul) &&
|
||||
vext_check_overlap_group(a->rd, 1, a->rs2, 1 << s->lmul)) ||
|
||||
(s->lmul == 0)));
|
||||
}
|
||||
|
||||
GEN_OPFVV_TRANS(vmfeq_vv, opfvv_cmp_check)
|
||||
GEN_OPFVV_TRANS(vmfne_vv, opfvv_cmp_check)
|
||||
GEN_OPFVV_TRANS(vmflt_vv, opfvv_cmp_check)
|
||||
GEN_OPFVV_TRANS(vmfle_vv, opfvv_cmp_check)
|
||||
GEN_OPFVV_TRANS(vmford_vv, opfvv_cmp_check)
|
||||
|
||||
static bool opfvf_cmp_check(DisasContext *s, arg_rmrr *a)
|
||||
{
|
||||
return (vext_check_isa_ill(s) &&
|
||||
vext_check_reg(s, a->rs2, false) &&
|
||||
(s->sew != 0) &&
|
||||
(vext_check_overlap_group(a->rd, 1, a->rs2, 1 << s->lmul) ||
|
||||
(s->lmul == 0)));
|
||||
}
|
||||
|
||||
GEN_OPFVF_TRANS(vmfeq_vf, opfvf_cmp_check)
|
||||
GEN_OPFVF_TRANS(vmfne_vf, opfvf_cmp_check)
|
||||
GEN_OPFVF_TRANS(vmflt_vf, opfvf_cmp_check)
|
||||
GEN_OPFVF_TRANS(vmfle_vf, opfvf_cmp_check)
|
||||
GEN_OPFVF_TRANS(vmfgt_vf, opfvf_cmp_check)
|
||||
GEN_OPFVF_TRANS(vmfge_vf, opfvf_cmp_check)
|
||||
GEN_OPFVF_TRANS(vmford_vf, opfvf_cmp_check)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue