mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
target/loongarch: Implement LSX fpu arith instructions
This patch includes: - VF{ADD/SUB/MUL/DIV}.{S/D}; - VF{MADD/MSUB/NMADD/NMSUB}.{S/D}; - VF{MAX/MIN}.{S/D}; - VF{MAXA/MINA}.{S/D}; - VFLOGB.{S/D}; - VFCLASS.{S/D}; - VF{SQRT/RECIP/RSQRT}.{S/D}. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Song Gao <gaosong@loongson.cn> Message-Id: <20230504122810.4094787-34-gaosong@loongson.cn>
This commit is contained in:
parent
ac95a0b975
commit
aca67472d2
8 changed files with 377 additions and 1 deletions
|
@ -807,6 +807,11 @@ static void output_vv(DisasContext *ctx, arg_vv *a, const char *mnemonic)
|
|||
output(ctx, mnemonic, "v%d, v%d", a->vd, a->vj);
|
||||
}
|
||||
|
||||
static void output_vvvv(DisasContext *ctx, arg_vvvv *a, const char *mnemonic)
|
||||
{
|
||||
output(ctx, mnemonic, "v%d, v%d, v%d, v%d", a->vd, a->vj, a->vk, a->va);
|
||||
}
|
||||
|
||||
INSN_LSX(vadd_b, vvv)
|
||||
INSN_LSX(vadd_h, vvv)
|
||||
INSN_LSX(vadd_w, vvv)
|
||||
|
@ -1302,3 +1307,44 @@ INSN_LSX(vfrstp_b, vvv)
|
|||
INSN_LSX(vfrstp_h, vvv)
|
||||
INSN_LSX(vfrstpi_b, vv_i)
|
||||
INSN_LSX(vfrstpi_h, vv_i)
|
||||
|
||||
INSN_LSX(vfadd_s, vvv)
|
||||
INSN_LSX(vfadd_d, vvv)
|
||||
INSN_LSX(vfsub_s, vvv)
|
||||
INSN_LSX(vfsub_d, vvv)
|
||||
INSN_LSX(vfmul_s, vvv)
|
||||
INSN_LSX(vfmul_d, vvv)
|
||||
INSN_LSX(vfdiv_s, vvv)
|
||||
INSN_LSX(vfdiv_d, vvv)
|
||||
|
||||
INSN_LSX(vfmadd_s, vvvv)
|
||||
INSN_LSX(vfmadd_d, vvvv)
|
||||
INSN_LSX(vfmsub_s, vvvv)
|
||||
INSN_LSX(vfmsub_d, vvvv)
|
||||
INSN_LSX(vfnmadd_s, vvvv)
|
||||
INSN_LSX(vfnmadd_d, vvvv)
|
||||
INSN_LSX(vfnmsub_s, vvvv)
|
||||
INSN_LSX(vfnmsub_d, vvvv)
|
||||
|
||||
INSN_LSX(vfmax_s, vvv)
|
||||
INSN_LSX(vfmax_d, vvv)
|
||||
INSN_LSX(vfmin_s, vvv)
|
||||
INSN_LSX(vfmin_d, vvv)
|
||||
|
||||
INSN_LSX(vfmaxa_s, vvv)
|
||||
INSN_LSX(vfmaxa_d, vvv)
|
||||
INSN_LSX(vfmina_s, vvv)
|
||||
INSN_LSX(vfmina_d, vvv)
|
||||
|
||||
INSN_LSX(vflogb_s, vv)
|
||||
INSN_LSX(vflogb_d, vv)
|
||||
|
||||
INSN_LSX(vfclass_s, vv)
|
||||
INSN_LSX(vfclass_d, vv)
|
||||
|
||||
INSN_LSX(vfsqrt_s, vv)
|
||||
INSN_LSX(vfsqrt_d, vv)
|
||||
INSN_LSX(vfrecip_s, vv)
|
||||
INSN_LSX(vfrecip_d, vv)
|
||||
INSN_LSX(vfrsqrt_s, vv)
|
||||
INSN_LSX(vfrsqrt_d, vv)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue