Add LASX instructions support.

-----BEGIN PGP SIGNATURE-----
 
 iLMEAAEIAB0WIQS4/x2g0v3LLaCcbCxAov/yOSY+3wUCZQqV7wAKCRBAov/yOSY+
 35GTA/9rXGbr9pIUnlGstUnWzIJb0vs6f4kt9DaKRPF1zyxaF/59sgl3gqCNAjBA
 eAKfm5W4B8ABJ+PYR3ZVAg9AcAP9AOEi+qV6DgRwvYPPK3WbGqIpJL7i+7gNMMUs
 gppv+IfJEkri8YLXXa7GWffuGOebqdqyD6Pl1B2eiKS4KYSRGw==
 =fNr2
 -----END PGP SIGNATURE-----

Merge tag 'pull-loongarch-20230920' of https://gitlab.com/gaosong/qemu into staging

Add LASX instructions support.

# -----BEGIN PGP SIGNATURE-----
#
# iLMEAAEIAB0WIQS4/x2g0v3LLaCcbCxAov/yOSY+3wUCZQqV7wAKCRBAov/yOSY+
# 35GTA/9rXGbr9pIUnlGstUnWzIJb0vs6f4kt9DaKRPF1zyxaF/59sgl3gqCNAjBA
# eAKfm5W4B8ABJ+PYR3ZVAg9AcAP9AOEi+qV6DgRwvYPPK3WbGqIpJL7i+7gNMMUs
# gppv+IfJEkri8YLXXa7GWffuGOebqdqyD6Pl1B2eiKS4KYSRGw==
# =fNr2
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 20 Sep 2023 02:49:19 EDT
# gpg:                using RSA key B8FF1DA0D2FDCB2DA09C6C2C40A2FFF239263EDF
# gpg: Good signature from "Song Gao <m17746591750@163.com>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: B8FF 1DA0 D2FD CB2D A09C  6C2C 40A2 FFF2 3926 3EDF

* tag 'pull-loongarch-20230920' of https://gitlab.com/gaosong/qemu: (57 commits)
  target/loongarch: CPUCFG support LASX
  target/loongarch: Move simply DO_XX marcos togther
  target/loongarch: Implement xvld xvst
  target/loongarch: Implement xvshuf xvperm{i} xvshuf4i
  target/loongarch: Implement xvpack xvpick xvilv{l/h}
  target/loongarch: Implement xvreplve xvinsve0 xvpickve
  target/loongarch: Implement xvinsgr2vr xvpickve2gr
  target/loongarch: Implement xvbitsel xvset
  target/loongarch: Implement xvfcmp
  target/loongarch: Implement xvseq xvsle xvslt
  target/loongarch: Implement LASX fpu fcvt instructions
  target/loongarch: Implement LASX fpu arith instructions
  target/loongarch: Implement xvfrstp
  target/loongarch: Implement xvbitclr xvbitset xvbitrev
  target/loongarch: Implement xvpcnt
  target/loongarch: Implement xvclo xvclz
  target/loongarch: Implement xvssrlrn xvssrarn
  target/loongarch: Implement xvssrln xvssran
  target/loongarch: Implement xvsrlrn xvsrarn
  target/loongarch: Implement xvsrln xvsran
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2023-09-20 13:56:18 -04:00
commit 55394dcbec
16 changed files with 7350 additions and 4051 deletions

View File

@ -12,6 +12,7 @@
#include "linux-user/trace.h"
#include "target/loongarch/internals.h"
#include "target/loongarch/vec.h"
/* FP context was used */
#define SC_USED_FP (1 << 0)

View File

@ -19,6 +19,7 @@
#include "cpu-csr.h"
#include "sysemu/reset.h"
#include "tcg/tcg.h"
#include "vec.h"
const char * const regnames[32] = {
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
@ -54,6 +55,7 @@ static const char * const excp_names[] = {
[EXCCODE_DBP] = "Debug breakpoint",
[EXCCODE_BCE] = "Bound Check Exception",
[EXCCODE_SXD] = "128 bit vector instructions Disable exception",
[EXCCODE_ASXD] = "256 bit vector instructions Disable exception",
};
const char *loongarch_exception_name(int32_t exception)
@ -189,6 +191,7 @@ static void loongarch_cpu_do_interrupt(CPUState *cs)
case EXCCODE_FPD:
case EXCCODE_FPE:
case EXCCODE_SXD:
case EXCCODE_ASXD:
env->CSR_BADV = env->pc;
QEMU_FALLTHROUGH;
case EXCCODE_BCE:
@ -390,6 +393,7 @@ static void loongarch_la464_initfn(Object *obj)
data = FIELD_DP32(data, CPUCFG2, FP_DP, 1);
data = FIELD_DP32(data, CPUCFG2, FP_VER, 1);
data = FIELD_DP32(data, CPUCFG2, LSX, 1),
data = FIELD_DP32(data, CPUCFG2, LASX, 1),
data = FIELD_DP32(data, CPUCFG2, LLFTP, 1);
data = FIELD_DP32(data, CPUCFG2, LLFTP_VER, 1);
data = FIELD_DP32(data, CPUCFG2, LSPW, 1);

View File

@ -251,18 +251,20 @@ FIELD(TLB_MISC, ASID, 1, 10)
FIELD(TLB_MISC, VPPN, 13, 35)
FIELD(TLB_MISC, PS, 48, 6)
#define LSX_LEN (128)
#define LSX_LEN (128)
#define LASX_LEN (256)
typedef union VReg {
int8_t B[LSX_LEN / 8];
int16_t H[LSX_LEN / 16];
int32_t W[LSX_LEN / 32];
int64_t D[LSX_LEN / 64];
uint8_t UB[LSX_LEN / 8];
uint16_t UH[LSX_LEN / 16];
uint32_t UW[LSX_LEN / 32];
uint64_t UD[LSX_LEN / 64];
Int128 Q[LSX_LEN / 128];
}VReg;
int8_t B[LASX_LEN / 8];
int16_t H[LASX_LEN / 16];
int32_t W[LASX_LEN / 32];
int64_t D[LASX_LEN / 64];
uint8_t UB[LASX_LEN / 8];
uint16_t UH[LASX_LEN / 16];
uint32_t UW[LASX_LEN / 32];
uint64_t UD[LASX_LEN / 64];
Int128 Q[LASX_LEN / 128];
} VReg;
typedef union fpr_t fpr_t;
union fpr_t {
@ -460,6 +462,7 @@ static inline void set_pc(CPULoongArchState *env, uint64_t value)
#define HW_FLAGS_CRMD_PG R_CSR_CRMD_PG_MASK /* 0x10 */
#define HW_FLAGS_EUEN_FPE 0x04
#define HW_FLAGS_EUEN_SXE 0x08
#define HW_FLAGS_EUEN_ASXE 0x10
#define HW_FLAGS_VA32 0x20
static inline void cpu_get_tb_cpu_state(CPULoongArchState *env, vaddr *pc,
@ -470,6 +473,7 @@ static inline void cpu_get_tb_cpu_state(CPULoongArchState *env, vaddr *pc,
*flags = env->CSR_CRMD & (R_CSR_CRMD_PLV_MASK | R_CSR_CRMD_PG_MASK);
*flags |= FIELD_EX64(env->CSR_EUEN, CSR_EUEN, FPE) * HW_FLAGS_EUEN_FPE;
*flags |= FIELD_EX64(env->CSR_EUEN, CSR_EUEN, SXE) * HW_FLAGS_EUEN_SXE;
*flags |= FIELD_EX64(env->CSR_EUEN, CSR_EUEN, ASXE) * HW_FLAGS_EUEN_ASXE;
*flags |= is_va32(env) * HW_FLAGS_VA32;
}

View File

@ -1695,3 +1695,927 @@ INSN_LSX(vstelm_d, vr_ii)
INSN_LSX(vstelm_w, vr_ii)
INSN_LSX(vstelm_h, vr_ii)
INSN_LSX(vstelm_b, vr_ii)
#define INSN_LASX(insn, type) \
static bool trans_##insn(DisasContext *ctx, arg_##type * a) \
{ \
output_##type ## _x(ctx, a, #insn); \
return true; \
}
static void output_cv_x(DisasContext *ctx, arg_cv *a, const char *mnemonic)
{
output(ctx, mnemonic, "fcc%d, x%d", a->cd, a->vj);
}
static void output_v_i_x(DisasContext *ctx, arg_v_i *a, const char *mnemonic)
{
output(ctx, mnemonic, "x%d, 0x%x", a->vd, a->imm);
}
static void output_vvvv_x(DisasContext *ctx, arg_vvvv *a, const char *mnemonic)
{
output(ctx, mnemonic, "x%d, x%d, x%d, x%d", a->vd, a->vj, a->vk, a->va);
}
static void output_vvv_x(DisasContext *ctx, arg_vvv * a, const char *mnemonic)
{
output(ctx, mnemonic, "x%d, x%d, x%d", a->vd, a->vj, a->vk);
}
static void output_vr_x(DisasContext *ctx, arg_vr *a, const char *mnemonic)
{
output(ctx, mnemonic, "x%d, r%d", a->vd, a->rj);
}
static void output_vv_i_x(DisasContext *ctx, arg_vv_i *a, const char *mnemonic)
{
output(ctx, mnemonic, "x%d, x%d, 0x%x", a->vd, a->vj, a->imm);
}
static void output_vv_x(DisasContext *ctx, arg_vv *a, const char *mnemonic)
{
output(ctx, mnemonic, "x%d, x%d", a->vd, a->vj);
}
static void output_vr_i_x(DisasContext *ctx, arg_vr_i *a, const char *mnemonic)
{
output(ctx, mnemonic, "x%d, r%d, 0x%x", a->vd, a->rj, a->imm);
}
static void output_rv_i_x(DisasContext *ctx, arg_rv_i *a, const char *mnemonic)
{
output(ctx, mnemonic, "r%d, x%d, 0x%x", a->rd, a->vj, a->imm);
}
static void output_vvr_x(DisasContext *ctx, arg_vvr *a, const char *mnemonic)
{
output(ctx, mnemonic, "x%d, x%d, r%d", a->vd, a->vj, a->rk);
}
static void output_vrr_x(DisasContext *ctx, arg_vrr *a, const char *mnemonic)
{
output(ctx, mnemonic, "x%d, r%d, r%d", a->vd, a->rj, a->rk);
}
static void output_vr_ii_x(DisasContext *ctx, arg_vr_ii *a, const char *mnemonic)
{
output(ctx, mnemonic, "x%d, r%d, 0x%x, 0x%x", a->vd, a->rj, a->imm, a->imm2);
}
INSN_LASX(xvadd_b, vvv)
INSN_LASX(xvadd_h, vvv)
INSN_LASX(xvadd_w, vvv)
INSN_LASX(xvadd_d, vvv)
INSN_LASX(xvadd_q, vvv)
INSN_LASX(xvsub_b, vvv)
INSN_LASX(xvsub_h, vvv)
INSN_LASX(xvsub_w, vvv)
INSN_LASX(xvsub_d, vvv)
INSN_LASX(xvsub_q, vvv)
INSN_LASX(xvaddi_bu, vv_i)
INSN_LASX(xvaddi_hu, vv_i)
INSN_LASX(xvaddi_wu, vv_i)
INSN_LASX(xvaddi_du, vv_i)
INSN_LASX(xvsubi_bu, vv_i)
INSN_LASX(xvsubi_hu, vv_i)
INSN_LASX(xvsubi_wu, vv_i)
INSN_LASX(xvsubi_du, vv_i)
INSN_LASX(xvneg_b, vv)
INSN_LASX(xvneg_h, vv)
INSN_LASX(xvneg_w, vv)
INSN_LASX(xvneg_d, vv)
INSN_LASX(xvsadd_b, vvv)
INSN_LASX(xvsadd_h, vvv)
INSN_LASX(xvsadd_w, vvv)
INSN_LASX(xvsadd_d, vvv)
INSN_LASX(xvsadd_bu, vvv)
INSN_LASX(xvsadd_hu, vvv)
INSN_LASX(xvsadd_wu, vvv)
INSN_LASX(xvsadd_du, vvv)
INSN_LASX(xvssub_b, vvv)
INSN_LASX(xvssub_h, vvv)
INSN_LASX(xvssub_w, vvv)
INSN_LASX(xvssub_d, vvv)
INSN_LASX(xvssub_bu, vvv)
INSN_LASX(xvssub_hu, vvv)
INSN_LASX(xvssub_wu, vvv)
INSN_LASX(xvssub_du, vvv)
INSN_LASX(xvhaddw_h_b, vvv)
INSN_LASX(xvhaddw_w_h, vvv)
INSN_LASX(xvhaddw_d_w, vvv)
INSN_LASX(xvhaddw_q_d, vvv)
INSN_LASX(xvhaddw_hu_bu, vvv)
INSN_LASX(xvhaddw_wu_hu, vvv)
INSN_LASX(xvhaddw_du_wu, vvv)
INSN_LASX(xvhaddw_qu_du, vvv)
INSN_LASX(xvhsubw_h_b, vvv)
INSN_LASX(xvhsubw_w_h, vvv)
INSN_LASX(xvhsubw_d_w, vvv)
INSN_LASX(xvhsubw_q_d, vvv)
INSN_LASX(xvhsubw_hu_bu, vvv)
INSN_LASX(xvhsubw_wu_hu, vvv)
INSN_LASX(xvhsubw_du_wu, vvv)
INSN_LASX(xvhsubw_qu_du, vvv)
INSN_LASX(xvaddwev_h_b, vvv)
INSN_LASX(xvaddwev_w_h, vvv)
INSN_LASX(xvaddwev_d_w, vvv)
INSN_LASX(xvaddwev_q_d, vvv)
INSN_LASX(xvaddwod_h_b, vvv)
INSN_LASX(xvaddwod_w_h, vvv)
INSN_LASX(xvaddwod_d_w, vvv)
INSN_LASX(xvaddwod_q_d, vvv)
INSN_LASX(xvsubwev_h_b, vvv)
INSN_LASX(xvsubwev_w_h, vvv)
INSN_LASX(xvsubwev_d_w, vvv)
INSN_LASX(xvsubwev_q_d, vvv)
INSN_LASX(xvsubwod_h_b, vvv)
INSN_LASX(xvsubwod_w_h, vvv)
INSN_LASX(xvsubwod_d_w, vvv)
INSN_LASX(xvsubwod_q_d, vvv)
INSN_LASX(xvaddwev_h_bu, vvv)
INSN_LASX(xvaddwev_w_hu, vvv)
INSN_LASX(xvaddwev_d_wu, vvv)
INSN_LASX(xvaddwev_q_du, vvv)
INSN_LASX(xvaddwod_h_bu, vvv)
INSN_LASX(xvaddwod_w_hu, vvv)
INSN_LASX(xvaddwod_d_wu, vvv)
INSN_LASX(xvaddwod_q_du, vvv)
INSN_LASX(xvsubwev_h_bu, vvv)
INSN_LASX(xvsubwev_w_hu, vvv)
INSN_LASX(xvsubwev_d_wu, vvv)
INSN_LASX(xvsubwev_q_du, vvv)
INSN_LASX(xvsubwod_h_bu, vvv)
INSN_LASX(xvsubwod_w_hu, vvv)
INSN_LASX(xvsubwod_d_wu, vvv)
INSN_LASX(xvsubwod_q_du, vvv)
INSN_LASX(xvaddwev_h_bu_b, vvv)
INSN_LASX(xvaddwev_w_hu_h, vvv)
INSN_LASX(xvaddwev_d_wu_w, vvv)
INSN_LASX(xvaddwev_q_du_d, vvv)
INSN_LASX(xvaddwod_h_bu_b, vvv)
INSN_LASX(xvaddwod_w_hu_h, vvv)
INSN_LASX(xvaddwod_d_wu_w, vvv)
INSN_LASX(xvaddwod_q_du_d, vvv)
INSN_LASX(xvavg_b, vvv)
INSN_LASX(xvavg_h, vvv)
INSN_LASX(xvavg_w, vvv)
INSN_LASX(xvavg_d, vvv)
INSN_LASX(xvavg_bu, vvv)
INSN_LASX(xvavg_hu, vvv)
INSN_LASX(xvavg_wu, vvv)
INSN_LASX(xvavg_du, vvv)
INSN_LASX(xvavgr_b, vvv)
INSN_LASX(xvavgr_h, vvv)
INSN_LASX(xvavgr_w, vvv)
INSN_LASX(xvavgr_d, vvv)
INSN_LASX(xvavgr_bu, vvv)
INSN_LASX(xvavgr_hu, vvv)
INSN_LASX(xvavgr_wu, vvv)
INSN_LASX(xvavgr_du, vvv)
INSN_LASX(xvabsd_b, vvv)
INSN_LASX(xvabsd_h, vvv)
INSN_LASX(xvabsd_w, vvv)
INSN_LASX(xvabsd_d, vvv)
INSN_LASX(xvabsd_bu, vvv)
INSN_LASX(xvabsd_hu, vvv)
INSN_LASX(xvabsd_wu, vvv)
INSN_LASX(xvabsd_du, vvv)
INSN_LASX(xvadda_b, vvv)
INSN_LASX(xvadda_h, vvv)
INSN_LASX(xvadda_w, vvv)
INSN_LASX(xvadda_d, vvv)
INSN_LASX(xvmax_b, vvv)
INSN_LASX(xvmax_h, vvv)
INSN_LASX(xvmax_w, vvv)
INSN_LASX(xvmax_d, vvv)
INSN_LASX(xvmin_b, vvv)
INSN_LASX(xvmin_h, vvv)
INSN_LASX(xvmin_w, vvv)
INSN_LASX(xvmin_d, vvv)
INSN_LASX(xvmax_bu, vvv)
INSN_LASX(xvmax_hu, vvv)
INSN_LASX(xvmax_wu, vvv)
INSN_LASX(xvmax_du, vvv)
INSN_LASX(xvmin_bu, vvv)
INSN_LASX(xvmin_hu, vvv)
INSN_LASX(xvmin_wu, vvv)
INSN_LASX(xvmin_du, vvv)
INSN_LASX(xvmaxi_b, vv_i)
INSN_LASX(xvmaxi_h, vv_i)
INSN_LASX(xvmaxi_w, vv_i)
INSN_LASX(xvmaxi_d, vv_i)
INSN_LASX(xvmini_b, vv_i)
INSN_LASX(xvmini_h, vv_i)
INSN_LASX(xvmini_w, vv_i)
INSN_LASX(xvmini_d, vv_i)
INSN_LASX(xvmaxi_bu, vv_i)
INSN_LASX(xvmaxi_hu, vv_i)
INSN_LASX(xvmaxi_wu, vv_i)
INSN_LASX(xvmaxi_du, vv_i)
INSN_LASX(xvmini_bu, vv_i)
INSN_LASX(xvmini_hu, vv_i)
INSN_LASX(xvmini_wu, vv_i)
INSN_LASX(xvmini_du, vv_i)
INSN_LASX(xvmul_b, vvv)
INSN_LASX(xvmul_h, vvv)
INSN_LASX(xvmul_w, vvv)
INSN_LASX(xvmul_d, vvv)
INSN_LASX(xvmuh_b, vvv)
INSN_LASX(xvmuh_h, vvv)
INSN_LASX(xvmuh_w, vvv)
INSN_LASX(xvmuh_d, vvv)
INSN_LASX(xvmuh_bu, vvv)
INSN_LASX(xvmuh_hu, vvv)
INSN_LASX(xvmuh_wu, vvv)
INSN_LASX(xvmuh_du, vvv)
INSN_LASX(xvmulwev_h_b, vvv)
INSN_LASX(xvmulwev_w_h, vvv)
INSN_LASX(xvmulwev_d_w, vvv)
INSN_LASX(xvmulwev_q_d, vvv)
INSN_LASX(xvmulwod_h_b, vvv)
INSN_LASX(xvmulwod_w_h, vvv)
INSN_LASX(xvmulwod_d_w, vvv)
INSN_LASX(xvmulwod_q_d, vvv)
INSN_LASX(xvmulwev_h_bu, vvv)
INSN_LASX(xvmulwev_w_hu, vvv)
INSN_LASX(xvmulwev_d_wu, vvv)
INSN_LASX(xvmulwev_q_du, vvv)
INSN_LASX(xvmulwod_h_bu, vvv)
INSN_LASX(xvmulwod_w_hu, vvv)
INSN_LASX(xvmulwod_d_wu, vvv)
INSN_LASX(xvmulwod_q_du, vvv)
INSN_LASX(xvmulwev_h_bu_b, vvv)
INSN_LASX(xvmulwev_w_hu_h, vvv)
INSN_LASX(xvmulwev_d_wu_w, vvv)
INSN_LASX(xvmulwev_q_du_d, vvv)
INSN_LASX(xvmulwod_h_bu_b, vvv)
INSN_LASX(xvmulwod_w_hu_h, vvv)
INSN_LASX(xvmulwod_d_wu_w, vvv)
INSN_LASX(xvmulwod_q_du_d, vvv)
INSN_LASX(xvmadd_b, vvv)
INSN_LASX(xvmadd_h, vvv)
INSN_LASX(xvmadd_w, vvv)
INSN_LASX(xvmadd_d, vvv)
INSN_LASX(xvmsub_b, vvv)
INSN_LASX(xvmsub_h, vvv)
INSN_LASX(xvmsub_w, vvv)
INSN_LASX(xvmsub_d, vvv)
INSN_LASX(xvmaddwev_h_b, vvv)
INSN_LASX(xvmaddwev_w_h, vvv)
INSN_LASX(xvmaddwev_d_w, vvv)
INSN_LASX(xvmaddwev_q_d, vvv)
INSN_LASX(xvmaddwod_h_b, vvv)
INSN_LASX(xvmaddwod_w_h, vvv)
INSN_LASX(xvmaddwod_d_w, vvv)
INSN_LASX(xvmaddwod_q_d, vvv)
INSN_LASX(xvmaddwev_h_bu, vvv)
INSN_LASX(xvmaddwev_w_hu, vvv)
INSN_LASX(xvmaddwev_d_wu, vvv)
INSN_LASX(xvmaddwev_q_du, vvv)
INSN_LASX(xvmaddwod_h_bu, vvv)
INSN_LASX(xvmaddwod_w_hu, vvv)
INSN_LASX(xvmaddwod_d_wu, vvv)
INSN_LASX(xvmaddwod_q_du, vvv)
INSN_LASX(xvmaddwev_h_bu_b, vvv)
INSN_LASX(xvmaddwev_w_hu_h, vvv)
INSN_LASX(xvmaddwev_d_wu_w, vvv)
INSN_LASX(xvmaddwev_q_du_d, vvv)
INSN_LASX(xvmaddwod_h_bu_b, vvv)
INSN_LASX(xvmaddwod_w_hu_h, vvv)
INSN_LASX(xvmaddwod_d_wu_w, vvv)
INSN_LASX(xvmaddwod_q_du_d, vvv)
INSN_LASX(xvdiv_b, vvv)
INSN_LASX(xvdiv_h, vvv)
INSN_LASX(xvdiv_w, vvv)
INSN_LASX(xvdiv_d, vvv)
INSN_LASX(xvdiv_bu, vvv)
INSN_LASX(xvdiv_hu, vvv)
INSN_LASX(xvdiv_wu, vvv)
INSN_LASX(xvdiv_du, vvv)
INSN_LASX(xvmod_b, vvv)
INSN_LASX(xvmod_h, vvv)
INSN_LASX(xvmod_w, vvv)
INSN_LASX(xvmod_d, vvv)
INSN_LASX(xvmod_bu, vvv)
INSN_LASX(xvmod_hu, vvv)
INSN_LASX(xvmod_wu, vvv)
INSN_LASX(xvmod_du, vvv)
INSN_LASX(xvsat_b, vv_i)
INSN_LASX(xvsat_h, vv_i)
INSN_LASX(xvsat_w, vv_i)
INSN_LASX(xvsat_d, vv_i)
INSN_LASX(xvsat_bu, vv_i)
INSN_LASX(xvsat_hu, vv_i)
INSN_LASX(xvsat_wu, vv_i)
INSN_LASX(xvsat_du, vv_i)
INSN_LASX(xvexth_h_b, vv)
INSN_LASX(xvexth_w_h, vv)
INSN_LASX(xvexth_d_w, vv)
INSN_LASX(xvexth_q_d, vv)
INSN_LASX(xvexth_hu_bu, vv)
INSN_LASX(xvexth_wu_hu, vv)
INSN_LASX(xvexth_du_wu, vv)
INSN_LASX(xvexth_qu_du, vv)
INSN_LASX(vext2xv_h_b, vv)
INSN_LASX(vext2xv_w_b, vv)
INSN_LASX(vext2xv_d_b, vv)
INSN_LASX(vext2xv_w_h, vv)
INSN_LASX(vext2xv_d_h, vv)
INSN_LASX(vext2xv_d_w, vv)
INSN_LASX(vext2xv_hu_bu, vv)
INSN_LASX(vext2xv_wu_bu, vv)
INSN_LASX(vext2xv_du_bu, vv)
INSN_LASX(vext2xv_wu_hu, vv)
INSN_LASX(vext2xv_du_hu, vv)
INSN_LASX(vext2xv_du_wu, vv)
INSN_LASX(xvsigncov_b, vvv)
INSN_LASX(xvsigncov_h, vvv)
INSN_LASX(xvsigncov_w, vvv)
INSN_LASX(xvsigncov_d, vvv)
INSN_LASX(xvmskltz_b, vv)
INSN_LASX(xvmskltz_h, vv)
INSN_LASX(xvmskltz_w, vv)
INSN_LASX(xvmskltz_d, vv)
INSN_LASX(xvmskgez_b, vv)
INSN_LASX(xvmsknz_b, vv)
INSN_LASX(xvldi, v_i)
INSN_LASX(xvand_v, vvv)
INSN_LASX(xvor_v, vvv)
INSN_LASX(xvxor_v, vvv)
INSN_LASX(xvnor_v, vvv)
INSN_LASX(xvandn_v, vvv)
INSN_LASX(xvorn_v, vvv)
INSN_LASX(xvandi_b, vv_i)
INSN_LASX(xvori_b, vv_i)
INSN_LASX(xvxori_b, vv_i)
INSN_LASX(xvnori_b, vv_i)
INSN_LASX(xvsll_b, vvv)
INSN_LASX(xvsll_h, vvv)
INSN_LASX(xvsll_w, vvv)
INSN_LASX(xvsll_d, vvv)
INSN_LASX(xvslli_b, vv_i)
INSN_LASX(xvslli_h, vv_i)
INSN_LASX(xvslli_w, vv_i)
INSN_LASX(xvslli_d, vv_i)
INSN_LASX(xvsrl_b, vvv)
INSN_LASX(xvsrl_h, vvv)
INSN_LASX(xvsrl_w, vvv)
INSN_LASX(xvsrl_d, vvv)
INSN_LASX(xvsrli_b, vv_i)
INSN_LASX(xvsrli_h, vv_i)
INSN_LASX(xvsrli_w, vv_i)
INSN_LASX(xvsrli_d, vv_i)
INSN_LASX(xvsra_b, vvv)
INSN_LASX(xvsra_h, vvv)
INSN_LASX(xvsra_w, vvv)
INSN_LASX(xvsra_d, vvv)
INSN_LASX(xvsrai_b, vv_i)
INSN_LASX(xvsrai_h, vv_i)
INSN_LASX(xvsrai_w, vv_i)
INSN_LASX(xvsrai_d, vv_i)
INSN_LASX(xvrotr_b, vvv)
INSN_LASX(xvrotr_h, vvv)
INSN_LASX(xvrotr_w, vvv)
INSN_LASX(xvrotr_d, vvv)
INSN_LASX(xvrotri_b, vv_i)
INSN_LASX(xvrotri_h, vv_i)
INSN_LASX(xvrotri_w, vv_i)
INSN_LASX(xvrotri_d, vv_i)
INSN_LASX(xvsllwil_h_b, vv_i)
INSN_LASX(xvsllwil_w_h, vv_i)
INSN_LASX(xvsllwil_d_w, vv_i)
INSN_LASX(xvextl_q_d, vv)
INSN_LASX(xvsllwil_hu_bu, vv_i)
INSN_LASX(xvsllwil_wu_hu, vv_i)
INSN_LASX(xvsllwil_du_wu, vv_i)
INSN_LASX(xvextl_qu_du, vv)
INSN_LASX(xvsrlr_b, vvv)
INSN_LASX(xvsrlr_h, vvv)
INSN_LASX(xvsrlr_w, vvv)
INSN_LASX(xvsrlr_d, vvv)
INSN_LASX(xvsrlri_b, vv_i)
INSN_LASX(xvsrlri_h, vv_i)
INSN_LASX(xvsrlri_w, vv_i)
INSN_LASX(xvsrlri_d, vv_i)
INSN_LASX(xvsrar_b, vvv)
INSN_LASX(xvsrar_h, vvv)
INSN_LASX(xvsrar_w, vvv)
INSN_LASX(xvsrar_d, vvv)
INSN_LASX(xvsrari_b, vv_i)
INSN_LASX(xvsrari_h, vv_i)
INSN_LASX(xvsrari_w, vv_i)
INSN_LASX(xvsrari_d, vv_i)
INSN_LASX(xvsrln_b_h, vvv)
INSN_LASX(xvsrln_h_w, vvv)
INSN_LASX(xvsrln_w_d, vvv)
INSN_LASX(xvsran_b_h, vvv)
INSN_LASX(xvsran_h_w, vvv)
INSN_LASX(xvsran_w_d, vvv)
INSN_LASX(xvsrlni_b_h, vv_i)
INSN_LASX(xvsrlni_h_w, vv_i)
INSN_LASX(xvsrlni_w_d, vv_i)
INSN_LASX(xvsrlni_d_q, vv_i)
INSN_LASX(xvsrani_b_h, vv_i)
INSN_LASX(xvsrani_h_w, vv_i)
INSN_LASX(xvsrani_w_d, vv_i)
INSN_LASX(xvsrani_d_q, vv_i)
INSN_LASX(xvsrlrn_b_h, vvv)
INSN_LASX(xvsrlrn_h_w, vvv)
INSN_LASX(xvsrlrn_w_d, vvv)
INSN_LASX(xvsrarn_b_h, vvv)
INSN_LASX(xvsrarn_h_w, vvv)
INSN_LASX(xvsrarn_w_d, vvv)
INSN_LASX(xvsrlrni_b_h, vv_i)
INSN_LASX(xvsrlrni_h_w, vv_i)
INSN_LASX(xvsrlrni_w_d, vv_i)
INSN_LASX(xvsrlrni_d_q, vv_i)
INSN_LASX(xvsrarni_b_h, vv_i)
INSN_LASX(xvsrarni_h_w, vv_i)
INSN_LASX(xvsrarni_w_d, vv_i)
INSN_LASX(xvsrarni_d_q, vv_i)
INSN_LASX(xvssrln_b_h, vvv)
INSN_LASX(xvssrln_h_w, vvv)
INSN_LASX(xvssrln_w_d, vvv)
INSN_LASX(xvssran_b_h, vvv)
INSN_LASX(xvssran_h_w, vvv)
INSN_LASX(xvssran_w_d, vvv)
INSN_LASX(xvssrln_bu_h, vvv)
INSN_LASX(xvssrln_hu_w, vvv)
INSN_LASX(xvssrln_wu_d, vvv)
INSN_LASX(xvssran_bu_h, vvv)
INSN_LASX(xvssran_hu_w, vvv)
INSN_LASX(xvssran_wu_d, vvv)
INSN_LASX(xvssrlni_b_h, vv_i)
INSN_LASX(xvssrlni_h_w, vv_i)
INSN_LASX(xvssrlni_w_d, vv_i)
INSN_LASX(xvssrlni_d_q, vv_i)
INSN_LASX(xvssrani_b_h, vv_i)
INSN_LASX(xvssrani_h_w, vv_i)
INSN_LASX(xvssrani_w_d, vv_i)
INSN_LASX(xvssrani_d_q, vv_i)
INSN_LASX(xvssrlni_bu_h, vv_i)
INSN_LASX(xvssrlni_hu_w, vv_i)
INSN_LASX(xvssrlni_wu_d, vv_i)
INSN_LASX(xvssrlni_du_q, vv_i)
INSN_LASX(xvssrani_bu_h, vv_i)
INSN_LASX(xvssrani_hu_w, vv_i)
INSN_LASX(xvssrani_wu_d, vv_i)
INSN_LASX(xvssrani_du_q, vv_i)
INSN_LASX(xvssrlrn_b_h, vvv)
INSN_LASX(xvssrlrn_h_w, vvv)
INSN_LASX(xvssrlrn_w_d, vvv)
INSN_LASX(xvssrarn_b_h, vvv)
INSN_LASX(xvssrarn_h_w, vvv)
INSN_LASX(xvssrarn_w_d, vvv)
INSN_LASX(xvssrlrn_bu_h, vvv)
INSN_LASX(xvssrlrn_hu_w, vvv)
INSN_LASX(xvssrlrn_wu_d, vvv)
INSN_LASX(xvssrarn_bu_h, vvv)
INSN_LASX(xvssrarn_hu_w, vvv)
INSN_LASX(xvssrarn_wu_d, vvv)
INSN_LASX(xvssrlrni_b_h, vv_i)
INSN_LASX(xvssrlrni_h_w, vv_i)
INSN_LASX(xvssrlrni_w_d, vv_i)
INSN_LASX(xvssrlrni_d_q, vv_i)
INSN_LASX(xvssrlrni_bu_h, vv_i)
INSN_LASX(xvssrlrni_hu_w, vv_i)
INSN_LASX(xvssrlrni_wu_d, vv_i)
INSN_LASX(xvssrlrni_du_q, vv_i)
INSN_LASX(xvssrarni_b_h, vv_i)
INSN_LASX(xvssrarni_h_w, vv_i)
INSN_LASX(xvssrarni_w_d, vv_i)
INSN_LASX(xvssrarni_d_q, vv_i)
INSN_LASX(xvssrarni_bu_h, vv_i)
INSN_LASX(xvssrarni_hu_w, vv_i)
INSN_LASX(xvssrarni_wu_d, vv_i)
INSN_LASX(xvssrarni_du_q, vv_i)
INSN_LASX(xvclo_b, vv)
INSN_LASX(xvclo_h, vv)
INSN_LASX(xvclo_w, vv)
INSN_LASX(xvclo_d, vv)
INSN_LASX(xvclz_b, vv)
INSN_LASX(xvclz_h, vv)
INSN_LASX(xvclz_w, vv)
INSN_LASX(xvclz_d, vv)
INSN_LASX(xvpcnt_b, vv)
INSN_LASX(xvpcnt_h, vv)
INSN_LASX(xvpcnt_w, vv)
INSN_LASX(xvpcnt_d, vv)
INSN_LASX(xvbitclr_b, vvv)
INSN_LASX(xvbitclr_h, vvv)
INSN_LASX(xvbitclr_w, vvv)
INSN_LASX(xvbitclr_d, vvv)
INSN_LASX(xvbitclri_b, vv_i)
INSN_LASX(xvbitclri_h, vv_i)
INSN_LASX(xvbitclri_w, vv_i)
INSN_LASX(xvbitclri_d, vv_i)
INSN_LASX(xvbitset_b, vvv)
INSN_LASX(xvbitset_h, vvv)
INSN_LASX(xvbitset_w, vvv)
INSN_LASX(xvbitset_d, vvv)
INSN_LASX(xvbitseti_b, vv_i)
INSN_LASX(xvbitseti_h, vv_i)
INSN_LASX(xvbitseti_w, vv_i)
INSN_LASX(xvbitseti_d, vv_i)
INSN_LASX(xvbitrev_b, vvv)
INSN_LASX(xvbitrev_h, vvv)
INSN_LASX(xvbitrev_w, vvv)
INSN_LASX(xvbitrev_d, vvv)
INSN_LASX(xvbitrevi_b, vv_i)
INSN_LASX(xvbitrevi_h, vv_i)
INSN_LASX(xvbitrevi_w, vv_i)
INSN_LASX(xvbitrevi_d, vv_i)
INSN_LASX(xvfrstp_b, vvv)
INSN_LASX(xvfrstp_h, vvv)
INSN_LASX(xvfrstpi_b, vv_i)
INSN_LASX(xvfrstpi_h, vv_i)
INSN_LASX(xvfadd_s, vvv)
INSN_LASX(xvfadd_d, vvv)
INSN_LASX(xvfsub_s, vvv)
INSN_LASX(xvfsub_d, vvv)
INSN_LASX(xvfmul_s, vvv)
INSN_LASX(xvfmul_d, vvv)
INSN_LASX(xvfdiv_s, vvv)
INSN_LASX(xvfdiv_d, vvv)
INSN_LASX(xvfmadd_s, vvvv)
INSN_LASX(xvfmadd_d, vvvv)
INSN_LASX(xvfmsub_s, vvvv)
INSN_LASX(xvfmsub_d, vvvv)
INSN_LASX(xvfnmadd_s, vvvv)
INSN_LASX(xvfnmadd_d, vvvv)
INSN_LASX(xvfnmsub_s, vvvv)
INSN_LASX(xvfnmsub_d, vvvv)
INSN_LASX(xvfmax_s, vvv)
INSN_LASX(xvfmax_d, vvv)
INSN_LASX(xvfmin_s, vvv)
INSN_LASX(xvfmin_d, vvv)
INSN_LASX(xvfmaxa_s, vvv)
INSN_LASX(xvfmaxa_d, vvv)
INSN_LASX(xvfmina_s, vvv)
INSN_LASX(xvfmina_d, vvv)
INSN_LASX(xvflogb_s, vv)
INSN_LASX(xvflogb_d, vv)
INSN_LASX(xvfclass_s, vv)
INSN_LASX(xvfclass_d, vv)
INSN_LASX(xvfsqrt_s, vv)
INSN_LASX(xvfsqrt_d, vv)
INSN_LASX(xvfrecip_s, vv)
INSN_LASX(xvfrecip_d, vv)
INSN_LASX(xvfrsqrt_s, vv)
INSN_LASX(xvfrsqrt_d, vv)
INSN_LASX(xvfcvtl_s_h, vv)
INSN_LASX(xvfcvth_s_h, vv)
INSN_LASX(xvfcvtl_d_s, vv)
INSN_LASX(xvfcvth_d_s, vv)
INSN_LASX(xvfcvt_h_s, vvv)
INSN_LASX(xvfcvt_s_d, vvv)
INSN_LASX(xvfrint_s, vv)
INSN_LASX(xvfrint_d, vv)
INSN_LASX(xvfrintrm_s, vv)
INSN_LASX(xvfrintrm_d, vv)
INSN_LASX(xvfrintrp_s, vv)
INSN_LASX(xvfrintrp_d, vv)
INSN_LASX(xvfrintrz_s, vv)
INSN_LASX(xvfrintrz_d, vv)
INSN_LASX(xvfrintrne_s, vv)
INSN_LASX(xvfrintrne_d, vv)
INSN_LASX(xvftint_w_s, vv)
INSN_LASX(xvftint_l_d, vv)
INSN_LASX(xvftintrm_w_s, vv)
INSN_LASX(xvftintrm_l_d, vv)
INSN_LASX(xvftintrp_w_s, vv)
INSN_LASX(xvftintrp_l_d, vv)
INSN_LASX(xvftintrz_w_s, vv)
INSN_LASX(xvftintrz_l_d, vv)
INSN_LASX(xvftintrne_w_s, vv)
INSN_LASX(xvftintrne_l_d, vv)
INSN_LASX(xvftint_wu_s, vv)
INSN_LASX(xvftint_lu_d, vv)
INSN_LASX(xvftintrz_wu_s, vv)
INSN_LASX(xvftintrz_lu_d, vv)
INSN_LASX(xvftint_w_d, vvv)
INSN_LASX(xvftintrm_w_d, vvv)
INSN_LASX(xvftintrp_w_d, vvv)
INSN_LASX(xvftintrz_w_d, vvv)
INSN_LASX(xvftintrne_w_d, vvv)
INSN_LASX(xvftintl_l_s, vv)
INSN_LASX(xvftinth_l_s, vv)
INSN_LASX(xvftintrml_l_s, vv)
INSN_LASX(xvftintrmh_l_s, vv)
INSN_LASX(xvftintrpl_l_s, vv)
INSN_LASX(xvftintrph_l_s, vv)
INSN_LASX(xvftintrzl_l_s, vv)
INSN_LASX(xvftintrzh_l_s, vv)
INSN_LASX(xvftintrnel_l_s, vv)
INSN_LASX(xvftintrneh_l_s, vv)
INSN_LASX(xvffint_s_w, vv)
INSN_LASX(xvffint_s_wu, vv)
INSN_LASX(xvffint_d_l, vv)
INSN_LASX(xvffint_d_lu, vv)
INSN_LASX(xvffintl_d_w, vv)
INSN_LASX(xvffinth_d_w, vv)
INSN_LASX(xvffint_s_l, vvv)
INSN_LASX(xvseq_b, vvv)
INSN_LASX(xvseq_h, vvv)
INSN_LASX(xvseq_w, vvv)
INSN_LASX(xvseq_d, vvv)
INSN_LASX(xvseqi_b, vv_i)
INSN_LASX(xvseqi_h, vv_i)
INSN_LASX(xvseqi_w, vv_i)
INSN_LASX(xvseqi_d, vv_i)
INSN_LASX(xvsle_b, vvv)
INSN_LASX(xvsle_h, vvv)
INSN_LASX(xvsle_w, vvv)
INSN_LASX(xvsle_d, vvv)
INSN_LASX(xvslei_b, vv_i)
INSN_LASX(xvslei_h, vv_i)
INSN_LASX(xvslei_w, vv_i)
INSN_LASX(xvslei_d, vv_i)
INSN_LASX(xvsle_bu, vvv)
INSN_LASX(xvsle_hu, vvv)
INSN_LASX(xvsle_wu, vvv)
INSN_LASX(xvsle_du, vvv)
INSN_LASX(xvslei_bu, vv_i)
INSN_LASX(xvslei_hu, vv_i)
INSN_LASX(xvslei_wu, vv_i)
INSN_LASX(xvslei_du, vv_i)
INSN_LASX(xvslt_b, vvv)
INSN_LASX(xvslt_h, vvv)
INSN_LASX(xvslt_w, vvv)
INSN_LASX(xvslt_d, vvv)
INSN_LASX(xvslti_b, vv_i)
INSN_LASX(xvslti_h, vv_i)
INSN_LASX(xvslti_w, vv_i)
INSN_LASX(xvslti_d, vv_i)
INSN_LASX(xvslt_bu, vvv)
INSN_LASX(xvslt_hu, vvv)
INSN_LASX(xvslt_wu, vvv)
INSN_LASX(xvslt_du, vvv)
INSN_LASX(xvslti_bu, vv_i)
INSN_LASX(xvslti_hu, vv_i)
INSN_LASX(xvslti_wu, vv_i)
INSN_LASX(xvslti_du, vv_i)
#define output_xvfcmp(C, PREFIX, SUFFIX) \
{ \
(C)->info->fprintf_func((C)->info->stream, "%08x %s%s\tx%d, x%d, x%d", \
(C)->insn, PREFIX, SUFFIX, a->vd, \
a->vj, a->vk); \
}
static bool output_xxx_fcond(DisasContext *ctx, arg_vvv_fcond * a,
const char *suffix)
{
bool ret = true;
switch (a->fcond) {
case 0x0:
output_xvfcmp(ctx, "xvfcmp_caf_", suffix);
break;
case 0x1:
output_xvfcmp(ctx, "xvfcmp_saf_", suffix);
break;
case 0x2:
output_xvfcmp(ctx, "xvfcmp_clt_", suffix);
break;
case 0x3:
output_xvfcmp(ctx, "xvfcmp_slt_", suffix);
break;
case 0x4:
output_xvfcmp(ctx, "xvfcmp_ceq_", suffix);
break;
case 0x5:
output_xvfcmp(ctx, "xvfcmp_seq_", suffix);
break;
case 0x6:
output_xvfcmp(ctx, "xvfcmp_cle_", suffix);
break;
case 0x7:
output_xvfcmp(ctx, "xvfcmp_sle_", suffix);
break;
case 0x8:
output_xvfcmp(ctx, "xvfcmp_cun_", suffix);
break;
case 0x9:
output_xvfcmp(ctx, "xvfcmp_sun_", suffix);
break;
case 0xA:
output_xvfcmp(ctx, "xvfcmp_cult_", suffix);
break;
case 0xB:
output_xvfcmp(ctx, "xvfcmp_sult_", suffix);
break;
case 0xC:
output_xvfcmp(ctx, "xvfcmp_cueq_", suffix);
break;
case 0xD:
output_xvfcmp(ctx, "xvfcmp_sueq_", suffix);
break;
case 0xE:
output_xvfcmp(ctx, "xvfcmp_cule_", suffix);
break;
case 0xF:
output_xvfcmp(ctx, "xvfcmp_sule_", suffix);
break;
case 0x10:
output_xvfcmp(ctx, "xvfcmp_cne_", suffix);
break;
case 0x11:
output_xvfcmp(ctx, "xvfcmp_sne_", suffix);
break;
case 0x14:
output_xvfcmp(ctx, "xvfcmp_cor_", suffix);
break;
case 0x15:
output_xvfcmp(ctx, "xvfcmp_sor_", suffix);
break;
case 0x18:
output_xvfcmp(ctx, "xvfcmp_cune_", suffix);
break;
case 0x19:
output_xvfcmp(ctx, "xvfcmp_sune_", suffix);
break;
default:
ret = false;
}
return ret;
}
#define LASX_FCMP_INSN(suffix) \
static bool trans_xvfcmp_cond_##suffix(DisasContext *ctx, \
arg_vvv_fcond * a) \
{ \
return output_xxx_fcond(ctx, a, #suffix); \
}
LASX_FCMP_INSN(s)
LASX_FCMP_INSN(d)
INSN_LASX(xvbitsel_v, vvvv)
INSN_LASX(xvbitseli_b, vv_i)
INSN_LASX(xvseteqz_v, cv)
INSN_LASX(xvsetnez_v, cv)
INSN_LASX(xvsetanyeqz_b, cv)
INSN_LASX(xvsetanyeqz_h, cv)
INSN_LASX(xvsetanyeqz_w, cv)
INSN_LASX(xvsetanyeqz_d, cv)
INSN_LASX(xvsetallnez_b, cv)
INSN_LASX(xvsetallnez_h, cv)
INSN_LASX(xvsetallnez_w, cv)
INSN_LASX(xvsetallnez_d, cv)
INSN_LASX(xvinsgr2vr_w, vr_i)
INSN_LASX(xvinsgr2vr_d, vr_i)
INSN_LASX(xvpickve2gr_w, rv_i)
INSN_LASX(xvpickve2gr_d, rv_i)
INSN_LASX(xvpickve2gr_wu, rv_i)
INSN_LASX(xvpickve2gr_du, rv_i)
INSN_LASX(xvreplgr2vr_b, vr)
INSN_LASX(xvreplgr2vr_h, vr)
INSN_LASX(xvreplgr2vr_w, vr)
INSN_LASX(xvreplgr2vr_d, vr)
INSN_LASX(xvreplve_b, vvr)
INSN_LASX(xvreplve_h, vvr)
INSN_LASX(xvreplve_w, vvr)
INSN_LASX(xvreplve_d, vvr)
INSN_LASX(xvrepl128vei_b, vv_i)
INSN_LASX(xvrepl128vei_h, vv_i)
INSN_LASX(xvrepl128vei_w, vv_i)
INSN_LASX(xvrepl128vei_d, vv_i)
INSN_LASX(xvreplve0_b, vv)
INSN_LASX(xvreplve0_h, vv)
INSN_LASX(xvreplve0_w, vv)
INSN_LASX(xvreplve0_d, vv)
INSN_LASX(xvreplve0_q, vv)
INSN_LASX(xvinsve0_w, vv_i)
INSN_LASX(xvinsve0_d, vv_i)
INSN_LASX(xvpickve_w, vv_i)
INSN_LASX(xvpickve_d, vv_i)
INSN_LASX(xvbsll_v, vv_i)
INSN_LASX(xvbsrl_v, vv_i)
INSN_LASX(xvpackev_b, vvv)
INSN_LASX(xvpackev_h, vvv)
INSN_LASX(xvpackev_w, vvv)
INSN_LASX(xvpackev_d, vvv)
INSN_LASX(xvpackod_b, vvv)
INSN_LASX(xvpackod_h, vvv)
INSN_LASX(xvpackod_w, vvv)
INSN_LASX(xvpackod_d, vvv)
INSN_LASX(xvpickev_b, vvv)
INSN_LASX(xvpickev_h, vvv)
INSN_LASX(xvpickev_w, vvv)
INSN_LASX(xvpickev_d, vvv)
INSN_LASX(xvpickod_b, vvv)
INSN_LASX(xvpickod_h, vvv)
INSN_LASX(xvpickod_w, vvv)
INSN_LASX(xvpickod_d, vvv)
INSN_LASX(xvilvl_b, vvv)
INSN_LASX(xvilvl_h, vvv)
INSN_LASX(xvilvl_w, vvv)
INSN_LASX(xvilvl_d, vvv)
INSN_LASX(xvilvh_b, vvv)
INSN_LASX(xvilvh_h, vvv)
INSN_LASX(xvilvh_w, vvv)
INSN_LASX(xvilvh_d, vvv)
INSN_LASX(xvshuf_b, vvvv)
INSN_LASX(xvshuf_h, vvv)
INSN_LASX(xvshuf_w, vvv)
INSN_LASX(xvshuf_d, vvv)
INSN_LASX(xvperm_w, vvv)
INSN_LASX(xvshuf4i_b, vv_i)
INSN_LASX(xvshuf4i_h, vv_i)
INSN_LASX(xvshuf4i_w, vv_i)
INSN_LASX(xvshuf4i_d, vv_i)
INSN_LASX(xvpermi_w, vv_i)
INSN_LASX(xvpermi_d, vv_i)
INSN_LASX(xvpermi_q, vv_i)
INSN_LASX(xvextrins_d, vv_i)
INSN_LASX(xvextrins_w, vv_i)
INSN_LASX(xvextrins_h, vv_i)
INSN_LASX(xvextrins_b, vv_i)
INSN_LASX(xvld, vr_i)
INSN_LASX(xvst, vr_i)
INSN_LASX(xvldx, vrr)
INSN_LASX(xvstx, vrr)
INSN_LASX(xvldrepl_d, vr_i)
INSN_LASX(xvldrepl_w, vr_i)
INSN_LASX(xvldrepl_h, vr_i)
INSN_LASX(xvldrepl_b, vr_i)
INSN_LASX(xvstelm_d, vr_ii)
INSN_LASX(xvstelm_w, vr_ii)
INSN_LASX(xvstelm_h, vr_ii)
INSN_LASX(xvstelm_b, vr_ii)

View File

@ -11,6 +11,7 @@
#include "internals.h"
#include "exec/gdbstub.h"
#include "gdbstub/helpers.h"
#include "vec.h"
uint64_t read_fcc(CPULoongArchState *env)
{

View File

@ -133,22 +133,22 @@ DEF_HELPER_1(idle, void, env)
#endif
/* LoongArch LSX */
DEF_HELPER_4(vhaddw_h_b, void, env, i32, i32, i32)
DEF_HELPER_4(vhaddw_w_h, void, env, i32, i32, i32)
DEF_HELPER_4(vhaddw_d_w, void, env, i32, i32, i32)
DEF_HELPER_4(vhaddw_q_d, void, env, i32, i32, i32)
DEF_HELPER_4(vhaddw_hu_bu, void, env, i32, i32, i32)
DEF_HELPER_4(vhaddw_wu_hu, void, env, i32, i32, i32)
DEF_HELPER_4(vhaddw_du_wu, void, env, i32, i32, i32)
DEF_HELPER_4(vhaddw_qu_du, void, env, i32, i32, i32)
DEF_HELPER_4(vhsubw_h_b, void, env, i32, i32, i32)
DEF_HELPER_4(vhsubw_w_h, void, env, i32, i32, i32)
DEF_HELPER_4(vhsubw_d_w, void, env, i32, i32, i32)
DEF_HELPER_4(vhsubw_q_d, void, env, i32, i32, i32)
DEF_HELPER_4(vhsubw_hu_bu, void, env, i32, i32, i32)
DEF_HELPER_4(vhsubw_wu_hu, void, env, i32, i32, i32)
DEF_HELPER_4(vhsubw_du_wu, void, env, i32, i32, i32)
DEF_HELPER_4(vhsubw_qu_du, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vhaddw_h_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhaddw_w_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhaddw_d_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhaddw_q_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhaddw_hu_bu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhaddw_wu_hu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhaddw_du_wu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhaddw_qu_du, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhsubw_h_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhsubw_w_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhsubw_d_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhsubw_q_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhsubw_hu_bu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhsubw_wu_hu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhsubw_du_wu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vhsubw_qu_du, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vaddwev_h_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vaddwev_w_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
@ -305,22 +305,22 @@ DEF_HELPER_FLAGS_4(vmaddwod_h_bu_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vmaddwod_w_hu_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vmaddwod_d_wu_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_4(vdiv_b, void, env, i32, i32, i32)
DEF_HELPER_4(vdiv_h, void, env, i32, i32, i32)
DEF_HELPER_4(vdiv_w, void, env, i32, i32, i32)
DEF_HELPER_4(vdiv_d, void, env, i32, i32, i32)
DEF_HELPER_4(vdiv_bu, void, env, i32, i32, i32)
DEF_HELPER_4(vdiv_hu, void, env, i32, i32, i32)
DEF_HELPER_4(vdiv_wu, void, env, i32, i32, i32)
DEF_HELPER_4(vdiv_du, void, env, i32, i32, i32)
DEF_HELPER_4(vmod_b, void, env, i32, i32, i32)
DEF_HELPER_4(vmod_h, void, env, i32, i32, i32)
DEF_HELPER_4(vmod_w, void, env, i32, i32, i32)
DEF_HELPER_4(vmod_d, void, env, i32, i32, i32)
DEF_HELPER_4(vmod_bu, void, env, i32, i32, i32)
DEF_HELPER_4(vmod_hu, void, env, i32, i32, i32)
DEF_HELPER_4(vmod_wu, void, env, i32, i32, i32)
DEF_HELPER_4(vmod_du, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vdiv_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vdiv_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vdiv_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vdiv_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vdiv_bu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vdiv_hu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vdiv_wu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vdiv_du, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vmod_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vmod_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vmod_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vmod_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vmod_bu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vmod_hu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vmod_wu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vmod_du, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsat_b, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsat_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
@ -331,161 +331,174 @@ DEF_HELPER_FLAGS_4(vsat_hu, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsat_wu, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsat_du, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_3(vexth_h_b, void, env, i32, i32)
DEF_HELPER_3(vexth_w_h, void, env, i32, i32)
DEF_HELPER_3(vexth_d_w, void, env, i32, i32)
DEF_HELPER_3(vexth_q_d, void, env, i32, i32)
DEF_HELPER_3(vexth_hu_bu, void, env, i32, i32)
DEF_HELPER_3(vexth_wu_hu, void, env, i32, i32)
DEF_HELPER_3(vexth_du_wu, void, env, i32, i32)
DEF_HELPER_3(vexth_qu_du, void, env, i32, i32)
DEF_HELPER_FLAGS_3(vexth_h_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vexth_w_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vexth_d_w, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vexth_q_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vexth_hu_bu, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vexth_wu_hu, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vexth_du_wu, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vexth_qu_du, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_h_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_w_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_d_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_w_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_d_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_d_w, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_hu_bu, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_wu_bu, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_du_bu, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_wu_hu, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_du_hu, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vext2xv_du_wu, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsigncov_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsigncov_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsigncov_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsigncov_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_3(vmskltz_b, void, env, i32, i32)
DEF_HELPER_3(vmskltz_h, void, env, i32, i32)
DEF_HELPER_3(vmskltz_w, void, env, i32, i32)
DEF_HELPER_3(vmskltz_d, void, env, i32, i32)
DEF_HELPER_3(vmskgez_b, void, env, i32, i32)
DEF_HELPER_3(vmsknz_b, void, env, i32,i32)
DEF_HELPER_FLAGS_3(vmskltz_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vmskltz_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vmskltz_w, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vmskltz_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vmskgez_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vmsknz_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vnori_b, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_4(vsllwil_h_b, void, env, i32, i32, i32)
DEF_HELPER_4(vsllwil_w_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsllwil_d_w, void, env, i32, i32, i32)
DEF_HELPER_3(vextl_q_d, void, env, i32, i32)
DEF_HELPER_4(vsllwil_hu_bu, void, env, i32, i32, i32)
DEF_HELPER_4(vsllwil_wu_hu, void, env, i32, i32, i32)
DEF_HELPER_4(vsllwil_du_wu, void, env, i32, i32, i32)
DEF_HELPER_3(vextl_qu_du, void, env, i32, i32)
DEF_HELPER_FLAGS_4(vsllwil_h_b, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsllwil_w_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsllwil_d_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_3(vextl_q_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsllwil_hu_bu, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsllwil_wu_hu, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsllwil_du_wu, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_3(vextl_qu_du, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_4(vsrlr_b, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlr_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlr_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlr_d, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlri_b, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlri_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlri_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlri_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vsrlr_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrlr_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrlr_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrlr_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrlri_b, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrlri_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrlri_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrlri_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_4(vsrar_b, void, env, i32, i32, i32)
DEF_HELPER_4(vsrar_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsrar_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsrar_d, void, env, i32, i32, i32)
DEF_HELPER_4(vsrari_b, void, env, i32, i32, i32)
DEF_HELPER_4(vsrari_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsrari_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsrari_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vsrar_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrar_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrar_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrar_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrari_b, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrari_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrari_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrari_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_4(vsrln_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsrln_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsrln_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vsran_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsran_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsran_w_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vsrln_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrln_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrln_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsran_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsran_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsran_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_4(vsrlni_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlni_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlni_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlni_d_q, void, env, i32, i32, i32)
DEF_HELPER_4(vsrani_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsrani_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsrani_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vsrani_d_q, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vsrlni_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrlni_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrlni_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrlni_d_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrani_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrani_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrani_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrani_d_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_4(vsrlrn_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlrn_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlrn_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vsrarn_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsrarn_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsrarn_w_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vsrlrn_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrlrn_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrlrn_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrarn_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrarn_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vsrarn_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_4(vsrlrni_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlrni_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlrni_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vsrlrni_d_q, void, env, i32, i32, i32)
DEF_HELPER_4(vsrarni_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsrarni_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsrarni_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vsrarni_d_q, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vsrlrni_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrlrni_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrlrni_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrlrni_d_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrarni_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrarni_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrarni_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vsrarni_d_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_4(vssrln_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrln_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrln_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssran_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssran_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssran_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrln_bu_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrln_hu_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrln_wu_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssran_bu_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssran_hu_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssran_wu_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vssrln_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrln_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrln_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssran_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssran_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssran_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrln_bu_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrln_hu_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrln_wu_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssran_bu_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssran_hu_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssran_wu_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_4(vssrlni_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlni_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlni_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlni_d_q, void, env, i32, i32, i32)
DEF_HELPER_4(vssrani_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrani_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrani_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrani_d_q, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlni_bu_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlni_hu_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlni_wu_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlni_du_q, void, env, i32, i32, i32)
DEF_HELPER_4(vssrani_bu_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrani_hu_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrani_wu_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrani_du_q, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vssrlni_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlni_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlni_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlni_d_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrani_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrani_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrani_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrani_d_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlni_bu_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlni_hu_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlni_wu_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlni_du_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrani_bu_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrani_hu_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrani_wu_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrani_du_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_4(vssrlrn_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrn_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrn_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarn_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarn_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarn_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrn_bu_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrn_hu_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrn_wu_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarn_bu_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarn_hu_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarn_wu_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vssrlrn_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrlrn_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrlrn_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrarn_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrarn_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrarn_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrlrn_bu_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrlrn_hu_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrlrn_wu_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrarn_bu_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrarn_hu_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vssrarn_wu_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_4(vssrlrni_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrni_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrni_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrni_d_q, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarni_b_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarni_h_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarni_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarni_d_q, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrni_bu_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrni_hu_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrni_wu_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrlrni_du_q, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarni_bu_h, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarni_hu_w, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarni_wu_d, void, env, i32, i32, i32)
DEF_HELPER_4(vssrarni_du_q, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vssrlrni_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlrni_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlrni_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlrni_d_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrarni_b_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrarni_h_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrarni_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrarni_d_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlrni_bu_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlrni_hu_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlrni_wu_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrlrni_du_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrarni_bu_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrarni_hu_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrarni_wu_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vssrarni_du_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_3(vclo_b, void, env, i32, i32)
DEF_HELPER_3(vclo_h, void, env, i32, i32)
DEF_HELPER_3(vclo_w, void, env, i32, i32)
DEF_HELPER_3(vclo_d, void, env, i32, i32)
DEF_HELPER_3(vclz_b, void, env, i32, i32)
DEF_HELPER_3(vclz_h, void, env, i32, i32)
DEF_HELPER_3(vclz_w, void, env, i32, i32)
DEF_HELPER_3(vclz_d, void, env, i32, i32)
DEF_HELPER_FLAGS_3(vclo_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vclo_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vclo_w, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vclo_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vclz_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vclz_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vclz_w, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vclz_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_3(vpcnt_b, void, env, i32, i32)
DEF_HELPER_3(vpcnt_h, void, env, i32, i32)
DEF_HELPER_3(vpcnt_w, void, env, i32, i32)
DEF_HELPER_3(vpcnt_d, void, env, i32, i32)
DEF_HELPER_FLAGS_3(vpcnt_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vpcnt_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vpcnt_w, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_3(vpcnt_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vbitclr_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vbitclr_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
@ -514,107 +527,107 @@ DEF_HELPER_FLAGS_4(vbitrevi_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vbitrevi_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vbitrevi_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_4(vfrstp_b, void, env, i32, i32, i32)
DEF_HELPER_4(vfrstp_h, void, env, i32, i32, i32)
DEF_HELPER_4(vfrstpi_b, void, env, i32, i32, i32)
DEF_HELPER_4(vfrstpi_h, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vfrstp_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vfrstp_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vfrstpi_b, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vfrstpi_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_4(vfadd_s, void, env, i32, i32, i32)
DEF_HELPER_4(vfadd_d, void, env, i32, i32, i32)
DEF_HELPER_4(vfsub_s, void, env, i32, i32, i32)
DEF_HELPER_4(vfsub_d, void, env, i32, i32, i32)
DEF_HELPER_4(vfmul_s, void, env, i32, i32, i32)
DEF_HELPER_4(vfmul_d, void, env, i32, i32, i32)
DEF_HELPER_4(vfdiv_s, void, env, i32, i32, i32)
DEF_HELPER_4(vfdiv_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_5(vfadd_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfadd_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfsub_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfsub_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfmul_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfmul_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfdiv_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfdiv_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_5(vfmadd_s, void, env, i32, i32, i32, i32)
DEF_HELPER_5(vfmadd_d, void, env, i32, i32, i32, i32)
DEF_HELPER_5(vfmsub_s, void, env, i32, i32, i32, i32)
DEF_HELPER_5(vfmsub_d, void, env, i32, i32, i32, i32)
DEF_HELPER_5(vfnmadd_s, void, env, i32, i32, i32, i32)
DEF_HELPER_5(vfnmadd_d, void, env, i32, i32, i32, i32)
DEF_HELPER_5(vfnmsub_s, void, env, i32, i32, i32, i32)
DEF_HELPER_5(vfnmsub_d, void, env, i32, i32, i32, i32)
DEF_HELPER_FLAGS_6(vfmadd_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_6(vfmadd_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_6(vfmsub_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_6(vfmsub_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_6(vfnmadd_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_6(vfnmadd_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_6(vfnmsub_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_6(vfnmsub_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, env, i32)
DEF_HELPER_4(vfmax_s, void, env, i32, i32, i32)
DEF_HELPER_4(vfmax_d, void, env, i32, i32, i32)
DEF_HELPER_4(vfmin_s, void, env, i32, i32, i32)
DEF_HELPER_4(vfmin_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_5(vfmax_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfmax_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfmin_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfmin_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_4(vfmaxa_s, void, env, i32, i32, i32)
DEF_HELPER_4(vfmaxa_d, void, env, i32, i32, i32)
DEF_HELPER_4(vfmina_s, void, env, i32, i32, i32)
DEF_HELPER_4(vfmina_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_5(vfmaxa_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfmaxa_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfmina_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfmina_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_3(vflogb_s, void, env, i32, i32)
DEF_HELPER_3(vflogb_d, void, env, i32, i32)
DEF_HELPER_FLAGS_4(vflogb_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vflogb_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_3(vfclass_s, void, env, i32, i32)
DEF_HELPER_3(vfclass_d, void, env, i32, i32)
DEF_HELPER_FLAGS_4(vfclass_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfclass_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_3(vfsqrt_s, void, env, i32, i32)
DEF_HELPER_3(vfsqrt_d, void, env, i32, i32)
DEF_HELPER_3(vfrecip_s, void, env, i32, i32)
DEF_HELPER_3(vfrecip_d, void, env, i32, i32)
DEF_HELPER_3(vfrsqrt_s, void, env, i32, i32)
DEF_HELPER_3(vfrsqrt_d, void, env, i32, i32)
DEF_HELPER_FLAGS_4(vfsqrt_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfsqrt_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrecip_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrecip_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrsqrt_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrsqrt_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_3(vfcvtl_s_h, void, env, i32, i32)
DEF_HELPER_3(vfcvth_s_h, void, env, i32, i32)
DEF_HELPER_3(vfcvtl_d_s, void, env, i32, i32)
DEF_HELPER_3(vfcvth_d_s, void, env, i32, i32)
DEF_HELPER_4(vfcvt_h_s, void, env, i32, i32, i32)
DEF_HELPER_4(vfcvt_s_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vfcvtl_s_h, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfcvth_s_h, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfcvtl_d_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfcvth_d_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfcvt_h_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vfcvt_s_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_3(vfrintrne_s, void, env, i32, i32)
DEF_HELPER_3(vfrintrne_d, void, env, i32, i32)
DEF_HELPER_3(vfrintrz_s, void, env, i32, i32)
DEF_HELPER_3(vfrintrz_d, void, env, i32, i32)
DEF_HELPER_3(vfrintrp_s, void, env, i32, i32)
DEF_HELPER_3(vfrintrp_d, void, env, i32, i32)
DEF_HELPER_3(vfrintrm_s, void, env, i32, i32)
DEF_HELPER_3(vfrintrm_d, void, env, i32, i32)
DEF_HELPER_3(vfrint_s, void, env, i32, i32)
DEF_HELPER_3(vfrint_d, void, env, i32, i32)
DEF_HELPER_FLAGS_4(vfrintrne_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrintrne_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrintrz_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrintrz_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrintrp_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrintrp_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrintrm_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrintrm_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrint_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vfrint_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_3(vftintrne_w_s, void, env, i32, i32)
DEF_HELPER_3(vftintrne_l_d, void, env, i32, i32)
DEF_HELPER_3(vftintrz_w_s, void, env, i32, i32)
DEF_HELPER_3(vftintrz_l_d, void, env, i32, i32)
DEF_HELPER_3(vftintrp_w_s, void, env, i32, i32)
DEF_HELPER_3(vftintrp_l_d, void, env, i32, i32)
DEF_HELPER_3(vftintrm_w_s, void, env, i32, i32)
DEF_HELPER_3(vftintrm_l_d, void, env, i32, i32)
DEF_HELPER_3(vftint_w_s, void, env, i32, i32)
DEF_HELPER_3(vftint_l_d, void, env, i32, i32)
DEF_HELPER_3(vftintrz_wu_s, void, env, i32, i32)
DEF_HELPER_3(vftintrz_lu_d, void, env, i32, i32)
DEF_HELPER_3(vftint_wu_s, void, env, i32, i32)
DEF_HELPER_3(vftint_lu_d, void, env, i32, i32)
DEF_HELPER_4(vftintrne_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vftintrz_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vftintrp_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vftintrm_w_d, void, env, i32, i32, i32)
DEF_HELPER_4(vftint_w_d, void, env, i32, i32, i32)
DEF_HELPER_3(vftintrnel_l_s, void, env, i32, i32)
DEF_HELPER_3(vftintrneh_l_s, void, env, i32, i32)
DEF_HELPER_3(vftintrzl_l_s, void, env, i32, i32)
DEF_HELPER_3(vftintrzh_l_s, void, env, i32, i32)
DEF_HELPER_3(vftintrpl_l_s, void, env, i32, i32)
DEF_HELPER_3(vftintrph_l_s, void, env, i32, i32)
DEF_HELPER_3(vftintrml_l_s, void, env, i32, i32)
DEF_HELPER_3(vftintrmh_l_s, void, env, i32, i32)
DEF_HELPER_3(vftintl_l_s, void, env, i32, i32)
DEF_HELPER_3(vftinth_l_s, void, env, i32, i32)
DEF_HELPER_FLAGS_4(vftintrne_w_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrne_l_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrz_w_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrz_l_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrp_w_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrp_l_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrm_w_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrm_l_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftint_w_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftint_l_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrz_wu_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrz_lu_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftint_wu_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftint_lu_d, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vftintrne_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vftintrz_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vftintrp_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vftintrm_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vftint_w_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrnel_l_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrneh_l_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrzl_l_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrzh_l_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrpl_l_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrph_l_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrml_l_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintrmh_l_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftintl_l_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vftinth_l_s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_3(vffint_s_w, void, env, i32, i32)
DEF_HELPER_3(vffint_d_l, void, env, i32, i32)
DEF_HELPER_3(vffint_s_wu, void, env, i32, i32)
DEF_HELPER_3(vffint_d_lu, void, env, i32, i32)
DEF_HELPER_3(vffintl_d_w, void, env, i32, i32)
DEF_HELPER_3(vffinth_d_w, void, env, i32, i32)
DEF_HELPER_4(vffint_s_l, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vffint_s_w, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vffint_d_l, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vffint_s_wu, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vffint_d_lu, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vffintl_d_w, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vffinth_d_w, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_5(vffint_s_l, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env, i32)
DEF_HELPER_FLAGS_4(vseqi_b, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vseqi_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
@ -639,61 +652,69 @@ DEF_HELPER_FLAGS_4(vslti_hu, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vslti_wu, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vslti_du, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_5(vfcmp_c_s, void, env, i32, i32, i32, i32)
DEF_HELPER_5(vfcmp_s_s, void, env, i32, i32, i32, i32)
DEF_HELPER_5(vfcmp_c_d, void, env, i32, i32, i32, i32)
DEF_HELPER_5(vfcmp_s_d, void, env, i32, i32, i32, i32)
DEF_HELPER_6(vfcmp_c_s, void, env, i32, i32, i32, i32, i32)
DEF_HELPER_6(vfcmp_s_s, void, env, i32, i32, i32, i32, i32)
DEF_HELPER_6(vfcmp_c_d, void, env, i32, i32, i32, i32, i32)
DEF_HELPER_6(vfcmp_s_d, void, env, i32, i32, i32, i32, i32)
DEF_HELPER_FLAGS_4(vbitseli_b, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_3(vsetanyeqz_b, void, env, i32, i32)
DEF_HELPER_3(vsetanyeqz_h, void, env, i32, i32)
DEF_HELPER_3(vsetanyeqz_w, void, env, i32, i32)
DEF_HELPER_3(vsetanyeqz_d, void, env, i32, i32)
DEF_HELPER_3(vsetallnez_b, void, env, i32, i32)
DEF_HELPER_3(vsetallnez_h, void, env, i32, i32)
DEF_HELPER_3(vsetallnez_w, void, env, i32, i32)
DEF_HELPER_3(vsetallnez_d, void, env, i32, i32)
DEF_HELPER_4(vsetanyeqz_b, void, env, i32, i32, i32)
DEF_HELPER_4(vsetanyeqz_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsetanyeqz_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsetanyeqz_d, void, env, i32, i32, i32)
DEF_HELPER_4(vsetallnez_b, void, env, i32, i32, i32)
DEF_HELPER_4(vsetallnez_h, void, env, i32, i32, i32)
DEF_HELPER_4(vsetallnez_w, void, env, i32, i32, i32)
DEF_HELPER_4(vsetallnez_d, void, env, i32, i32, i32)
DEF_HELPER_4(vpackev_b, void, env, i32, i32, i32)
DEF_HELPER_4(vpackev_h, void, env, i32, i32, i32)
DEF_HELPER_4(vpackev_w, void, env, i32, i32, i32)
DEF_HELPER_4(vpackev_d, void, env, i32, i32, i32)
DEF_HELPER_4(vpackod_b, void, env, i32, i32, i32)
DEF_HELPER_4(vpackod_h, void, env, i32, i32, i32)
DEF_HELPER_4(vpackod_w, void, env, i32, i32, i32)
DEF_HELPER_4(vpackod_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(xvinsve0_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(xvinsve0_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(xvpickve_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(xvpickve_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_4(vpickev_b, void, env, i32, i32, i32)
DEF_HELPER_4(vpickev_h, void, env, i32, i32, i32)
DEF_HELPER_4(vpickev_w, void, env, i32, i32, i32)
DEF_HELPER_4(vpickev_d, void, env, i32, i32, i32)
DEF_HELPER_4(vpickod_b, void, env, i32, i32, i32)
DEF_HELPER_4(vpickod_h, void, env, i32, i32, i32)
DEF_HELPER_4(vpickod_w, void, env, i32, i32, i32)
DEF_HELPER_4(vpickod_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vpackev_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpackev_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpackev_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpackev_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpackod_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpackod_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpackod_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpackod_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_4(vilvl_b, void, env, i32, i32, i32)
DEF_HELPER_4(vilvl_h, void, env, i32, i32, i32)
DEF_HELPER_4(vilvl_w, void, env, i32, i32, i32)
DEF_HELPER_4(vilvl_d, void, env, i32, i32, i32)
DEF_HELPER_4(vilvh_b, void, env, i32, i32, i32)
DEF_HELPER_4(vilvh_h, void, env, i32, i32, i32)
DEF_HELPER_4(vilvh_w, void, env, i32, i32, i32)
DEF_HELPER_4(vilvh_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vpickev_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpickev_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpickev_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpickev_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpickod_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpickod_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpickod_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpickod_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_5(vshuf_b, void, env, i32, i32, i32, i32)
DEF_HELPER_4(vshuf_h, void, env, i32, i32, i32)
DEF_HELPER_4(vshuf_w, void, env, i32, i32, i32)
DEF_HELPER_4(vshuf_d, void, env, i32, i32, i32)
DEF_HELPER_4(vshuf4i_b, void, env, i32, i32, i32)
DEF_HELPER_4(vshuf4i_h, void, env, i32, i32, i32)
DEF_HELPER_4(vshuf4i_w, void, env, i32, i32, i32)
DEF_HELPER_4(vshuf4i_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vilvl_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vilvl_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vilvl_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vilvl_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vilvh_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vilvh_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vilvh_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vilvh_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_4(vpermi_w, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_5(vshuf_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vshuf_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vshuf_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vshuf_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vshuf4i_b, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vshuf4i_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vshuf4i_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vshuf4i_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_4(vextrins_b, void, env, i32, i32, i32)
DEF_HELPER_4(vextrins_h, void, env, i32, i32, i32)
DEF_HELPER_4(vextrins_w, void, env, i32, i32, i32)
DEF_HELPER_4(vextrins_d, void, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(vperm_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
DEF_HELPER_FLAGS_4(vpermi_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vpermi_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vpermi_q, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vextrins_b, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vextrins_h, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vextrins_w, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)
DEF_HELPER_FLAGS_4(vextrins_d, TCG_CALL_NO_RWG, void, ptr, ptr, i64, i32)

View File

@ -550,6 +550,10 @@ dbcl 0000 00000010 10101 ............... @i15
@vr_i8i2 .... ........ imm2:2 ........ rj:5 vd:5 &vr_ii imm=%i8s2
@vr_i8i3 .... ....... imm2:3 ........ rj:5 vd:5 &vr_ii imm=%i8s1
@vr_i8i4 .... ...... imm2:4 imm:s8 rj:5 vd:5 &vr_ii
@vr_i8i2x .... ........ imm2:2 ........ rj:5 vd:5 &vr_ii imm=%i8s3
@vr_i8i3x .... ....... imm2:3 ........ rj:5 vd:5 &vr_ii imm=%i8s2
@vr_i8i4x .... ...... imm2:4 ........ rj:5 vd:5 &vr_ii imm=%i8s1
@vr_i8i5x .... ..... imm2:5 imm:s8 rj:5 vd:5 &vr_ii
@vrr .... ........ ..... rk:5 rj:5 vd:5 &vrr
@v_i13 .... ........ .. imm:13 vd:5 &v_i
@ -1296,3 +1300,781 @@ vstelm_d 0011 00010001 0 . ........ ..... ..... @vr_i8i1
vstelm_w 0011 00010010 .. ........ ..... ..... @vr_i8i2
vstelm_h 0011 0001010 ... ........ ..... ..... @vr_i8i3
vstelm_b 0011 000110 .... ........ ..... ..... @vr_i8i4
#
# LoongArch LASX instructions
#
xvadd_b 0111 01000000 10100 ..... ..... ..... @vvv
xvadd_h 0111 01000000 10101 ..... ..... ..... @vvv
xvadd_w 0111 01000000 10110 ..... ..... ..... @vvv
xvadd_d 0111 01000000 10111 ..... ..... ..... @vvv
xvadd_q 0111 01010010 11010 ..... ..... ..... @vvv
xvsub_b 0111 01000000 11000 ..... ..... ..... @vvv
xvsub_h 0111 01000000 11001 ..... ..... ..... @vvv
xvsub_w 0111 01000000 11010 ..... ..... ..... @vvv
xvsub_d 0111 01000000 11011 ..... ..... ..... @vvv
xvsub_q 0111 01010010 11011 ..... ..... ..... @vvv
xvaddi_bu 0111 01101000 10100 ..... ..... ..... @vv_ui5
xvaddi_hu 0111 01101000 10101 ..... ..... ..... @vv_ui5
xvaddi_wu 0111 01101000 10110 ..... ..... ..... @vv_ui5
xvaddi_du 0111 01101000 10111 ..... ..... ..... @vv_ui5
xvsubi_bu 0111 01101000 11000 ..... ..... ..... @vv_ui5
xvsubi_hu 0111 01101000 11001 ..... ..... ..... @vv_ui5
xvsubi_wu 0111 01101000 11010 ..... ..... ..... @vv_ui5
xvsubi_du 0111 01101000 11011 ..... ..... ..... @vv_ui5
xvneg_b 0111 01101001 11000 01100 ..... ..... @vv
xvneg_h 0111 01101001 11000 01101 ..... ..... @vv
xvneg_w 0111 01101001 11000 01110 ..... ..... @vv
xvneg_d 0111 01101001 11000 01111 ..... ..... @vv
xvsadd_b 0111 01000100 01100 ..... ..... ..... @vvv
xvsadd_h 0111 01000100 01101 ..... ..... ..... @vvv
xvsadd_w 0111 01000100 01110 ..... ..... ..... @vvv
xvsadd_d 0111 01000100 01111 ..... ..... ..... @vvv
xvsadd_bu 0111 01000100 10100 ..... ..... ..... @vvv
xvsadd_hu 0111 01000100 10101 ..... ..... ..... @vvv
xvsadd_wu 0111 01000100 10110 ..... ..... ..... @vvv
xvsadd_du 0111 01000100 10111 ..... ..... ..... @vvv
xvssub_b 0111 01000100 10000 ..... ..... ..... @vvv
xvssub_h 0111 01000100 10001 ..... ..... ..... @vvv
xvssub_w 0111 01000100 10010 ..... ..... ..... @vvv
xvssub_d 0111 01000100 10011 ..... ..... ..... @vvv
xvssub_bu 0111 01000100 11000 ..... ..... ..... @vvv
xvssub_hu 0111 01000100 11001 ..... ..... ..... @vvv
xvssub_wu 0111 01000100 11010 ..... ..... ..... @vvv
xvssub_du 0111 01000100 11011 ..... ..... ..... @vvv
xvhaddw_h_b 0111 01000101 01000 ..... ..... ..... @vvv
xvhaddw_w_h 0111 01000101 01001 ..... ..... ..... @vvv
xvhaddw_d_w 0111 01000101 01010 ..... ..... ..... @vvv
xvhaddw_q_d 0111 01000101 01011 ..... ..... ..... @vvv
xvhaddw_hu_bu 0111 01000101 10000 ..... ..... ..... @vvv
xvhaddw_wu_hu 0111 01000101 10001 ..... ..... ..... @vvv
xvhaddw_du_wu 0111 01000101 10010 ..... ..... ..... @vvv
xvhaddw_qu_du 0111 01000101 10011 ..... ..... ..... @vvv
xvhsubw_h_b 0111 01000101 01100 ..... ..... ..... @vvv
xvhsubw_w_h 0111 01000101 01101 ..... ..... ..... @vvv
xvhsubw_d_w 0111 01000101 01110 ..... ..... ..... @vvv
xvhsubw_q_d 0111 01000101 01111 ..... ..... ..... @vvv
xvhsubw_hu_bu 0111 01000101 10100 ..... ..... ..... @vvv
xvhsubw_wu_hu 0111 01000101 10101 ..... ..... ..... @vvv
xvhsubw_du_wu 0111 01000101 10110 ..... ..... ..... @vvv
xvhsubw_qu_du 0111 01000101 10111 ..... ..... ..... @vvv
xvaddwev_h_b 0111 01000001 11100 ..... ..... ..... @vvv
xvaddwev_w_h 0111 01000001 11101 ..... ..... ..... @vvv
xvaddwev_d_w 0111 01000001 11110 ..... ..... ..... @vvv
xvaddwev_q_d 0111 01000001 11111 ..... ..... ..... @vvv
xvaddwod_h_b 0111 01000010 00100 ..... ..... ..... @vvv
xvaddwod_w_h 0111 01000010 00101 ..... ..... ..... @vvv
xvaddwod_d_w 0111 01000010 00110 ..... ..... ..... @vvv
xvaddwod_q_d 0111 01000010 00111 ..... ..... ..... @vvv
xvsubwev_h_b 0111 01000010 00000 ..... ..... ..... @vvv
xvsubwev_w_h 0111 01000010 00001 ..... ..... ..... @vvv
xvsubwev_d_w 0111 01000010 00010 ..... ..... ..... @vvv
xvsubwev_q_d 0111 01000010 00011 ..... ..... ..... @vvv
xvsubwod_h_b 0111 01000010 01000 ..... ..... ..... @vvv
xvsubwod_w_h 0111 01000010 01001 ..... ..... ..... @vvv
xvsubwod_d_w 0111 01000010 01010 ..... ..... ..... @vvv
xvsubwod_q_d 0111 01000010 01011 ..... ..... ..... @vvv
xvaddwev_h_bu 0111 01000010 11100 ..... ..... ..... @vvv
xvaddwev_w_hu 0111 01000010 11101 ..... ..... ..... @vvv
xvaddwev_d_wu 0111 01000010 11110 ..... ..... ..... @vvv
xvaddwev_q_du 0111 01000010 11111 ..... ..... ..... @vvv
xvaddwod_h_bu 0111 01000011 00100 ..... ..... ..... @vvv
xvaddwod_w_hu 0111 01000011 00101 ..... ..... ..... @vvv
xvaddwod_d_wu 0111 01000011 00110 ..... ..... ..... @vvv
xvaddwod_q_du 0111 01000011 00111 ..... ..... ..... @vvv
xvsubwev_h_bu 0111 01000011 00000 ..... ..... ..... @vvv
xvsubwev_w_hu 0111 01000011 00001 ..... ..... ..... @vvv
xvsubwev_d_wu 0111 01000011 00010 ..... ..... ..... @vvv
xvsubwev_q_du 0111 01000011 00011 ..... ..... ..... @vvv
xvsubwod_h_bu 0111 01000011 01000 ..... ..... ..... @vvv
xvsubwod_w_hu 0111 01000011 01001 ..... ..... ..... @vvv
xvsubwod_d_wu 0111 01000011 01010 ..... ..... ..... @vvv
xvsubwod_q_du 0111 01000011 01011 ..... ..... ..... @vvv
xvaddwev_h_bu_b 0111 01000011 11100 ..... ..... ..... @vvv
xvaddwev_w_hu_h 0111 01000011 11101 ..... ..... ..... @vvv
xvaddwev_d_wu_w 0111 01000011 11110 ..... ..... ..... @vvv
xvaddwev_q_du_d 0111 01000011 11111 ..... ..... ..... @vvv
xvaddwod_h_bu_b 0111 01000100 00000 ..... ..... ..... @vvv
xvaddwod_w_hu_h 0111 01000100 00001 ..... ..... ..... @vvv
xvaddwod_d_wu_w 0111 01000100 00010 ..... ..... ..... @vvv
xvaddwod_q_du_d 0111 01000100 00011 ..... ..... ..... @vvv
xvavg_b 0111 01000110 01000 ..... ..... ..... @vvv
xvavg_h 0111 01000110 01001 ..... ..... ..... @vvv
xvavg_w 0111 01000110 01010 ..... ..... ..... @vvv
xvavg_d 0111 01000110 01011 ..... ..... ..... @vvv
xvavg_bu 0111 01000110 01100 ..... ..... ..... @vvv
xvavg_hu 0111 01000110 01101 ..... ..... ..... @vvv
xvavg_wu 0111 01000110 01110 ..... ..... ..... @vvv
xvavg_du 0111 01000110 01111 ..... ..... ..... @vvv
xvavgr_b 0111 01000110 10000 ..... ..... ..... @vvv
xvavgr_h 0111 01000110 10001 ..... ..... ..... @vvv
xvavgr_w 0111 01000110 10010 ..... ..... ..... @vvv
xvavgr_d 0111 01000110 10011 ..... ..... ..... @vvv
xvavgr_bu 0111 01000110 10100 ..... ..... ..... @vvv
xvavgr_hu 0111 01000110 10101 ..... ..... ..... @vvv
xvavgr_wu 0111 01000110 10110 ..... ..... ..... @vvv
xvavgr_du 0111 01000110 10111 ..... ..... ..... @vvv
xvabsd_b 0111 01000110 00000 ..... ..... ..... @vvv
xvabsd_h 0111 01000110 00001 ..... ..... ..... @vvv
xvabsd_w 0111 01000110 00010 ..... ..... ..... @vvv
xvabsd_d 0111 01000110 00011 ..... ..... ..... @vvv
xvabsd_bu 0111 01000110 00100 ..... ..... ..... @vvv
xvabsd_hu 0111 01000110 00101 ..... ..... ..... @vvv
xvabsd_wu 0111 01000110 00110 ..... ..... ..... @vvv
xvabsd_du 0111 01000110 00111 ..... ..... ..... @vvv
xvadda_b 0111 01000101 11000 ..... ..... ..... @vvv
xvadda_h 0111 01000101 11001 ..... ..... ..... @vvv
xvadda_w 0111 01000101 11010 ..... ..... ..... @vvv
xvadda_d 0111 01000101 11011 ..... ..... ..... @vvv
xvmax_b 0111 01000111 00000 ..... ..... ..... @vvv
xvmax_h 0111 01000111 00001 ..... ..... ..... @vvv
xvmax_w 0111 01000111 00010 ..... ..... ..... @vvv
xvmax_d 0111 01000111 00011 ..... ..... ..... @vvv
xvmax_bu 0111 01000111 01000 ..... ..... ..... @vvv
xvmax_hu 0111 01000111 01001 ..... ..... ..... @vvv
xvmax_wu 0111 01000111 01010 ..... ..... ..... @vvv
xvmax_du 0111 01000111 01011 ..... ..... ..... @vvv
xvmaxi_b 0111 01101001 00000 ..... ..... ..... @vv_i5
xvmaxi_h 0111 01101001 00001 ..... ..... ..... @vv_i5
xvmaxi_w 0111 01101001 00010 ..... ..... ..... @vv_i5
xvmaxi_d 0111 01101001 00011 ..... ..... ..... @vv_i5
xvmaxi_bu 0111 01101001 01000 ..... ..... ..... @vv_ui5
xvmaxi_hu 0111 01101001 01001 ..... ..... ..... @vv_ui5
xvmaxi_wu 0111 01101001 01010 ..... ..... ..... @vv_ui5
xvmaxi_du 0111 01101001 01011 ..... ..... ..... @vv_ui5
xvmin_b 0111 01000111 00100 ..... ..... ..... @vvv
xvmin_h 0111 01000111 00101 ..... ..... ..... @vvv
xvmin_w 0111 01000111 00110 ..... ..... ..... @vvv
xvmin_d 0111 01000111 00111 ..... ..... ..... @vvv
xvmin_bu 0111 01000111 01100 ..... ..... ..... @vvv
xvmin_hu 0111 01000111 01101 ..... ..... ..... @vvv
xvmin_wu 0111 01000111 01110 ..... ..... ..... @vvv
xvmin_du 0111 01000111 01111 ..... ..... ..... @vvv
xvmini_b 0111 01101001 00100 ..... ..... ..... @vv_i5
xvmini_h 0111 01101001 00101 ..... ..... ..... @vv_i5
xvmini_w 0111 01101001 00110 ..... ..... ..... @vv_i5
xvmini_d 0111 01101001 00111 ..... ..... ..... @vv_i5
xvmini_bu 0111 01101001 01100 ..... ..... ..... @vv_ui5
xvmini_hu 0111 01101001 01101 ..... ..... ..... @vv_ui5
xvmini_wu 0111 01101001 01110 ..... ..... ..... @vv_ui5
xvmini_du 0111 01101001 01111 ..... ..... ..... @vv_ui5
xvmul_b 0111 01001000 01000 ..... ..... ..... @vvv
xvmul_h 0111 01001000 01001 ..... ..... ..... @vvv
xvmul_w 0111 01001000 01010 ..... ..... ..... @vvv
xvmul_d 0111 01001000 01011 ..... ..... ..... @vvv
xvmuh_b 0111 01001000 01100 ..... ..... ..... @vvv
xvmuh_h 0111 01001000 01101 ..... ..... ..... @vvv
xvmuh_w 0111 01001000 01110 ..... ..... ..... @vvv
xvmuh_d 0111 01001000 01111 ..... ..... ..... @vvv
xvmuh_bu 0111 01001000 10000 ..... ..... ..... @vvv
xvmuh_hu 0111 01001000 10001 ..... ..... ..... @vvv
xvmuh_wu 0111 01001000 10010 ..... ..... ..... @vvv
xvmuh_du 0111 01001000 10011 ..... ..... ..... @vvv
xvmulwev_h_b 0111 01001001 00000 ..... ..... ..... @vvv
xvmulwev_w_h 0111 01001001 00001 ..... ..... ..... @vvv
xvmulwev_d_w 0111 01001001 00010 ..... ..... ..... @vvv
xvmulwev_q_d 0111 01001001 00011 ..... ..... ..... @vvv
xvmulwod_h_b 0111 01001001 00100 ..... ..... ..... @vvv
xvmulwod_w_h 0111 01001001 00101 ..... ..... ..... @vvv
xvmulwod_d_w 0111 01001001 00110 ..... ..... ..... @vvv
xvmulwod_q_d 0111 01001001 00111 ..... ..... ..... @vvv
xvmulwev_h_bu 0111 01001001 10000 ..... ..... ..... @vvv
xvmulwev_w_hu 0111 01001001 10001 ..... ..... ..... @vvv
xvmulwev_d_wu 0111 01001001 10010 ..... ..... ..... @vvv
xvmulwev_q_du 0111 01001001 10011 ..... ..... ..... @vvv
xvmulwod_h_bu 0111 01001001 10100 ..... ..... ..... @vvv
xvmulwod_w_hu 0111 01001001 10101 ..... ..... ..... @vvv
xvmulwod_d_wu 0111 01001001 10110 ..... ..... ..... @vvv
xvmulwod_q_du 0111 01001001 10111 ..... ..... ..... @vvv
xvmulwev_h_bu_b 0111 01001010 00000 ..... ..... ..... @vvv
xvmulwev_w_hu_h 0111 01001010 00001 ..... ..... ..... @vvv
xvmulwev_d_wu_w 0111 01001010 00010 ..... ..... ..... @vvv
xvmulwev_q_du_d 0111 01001010 00011 ..... ..... ..... @vvv
xvmulwod_h_bu_b 0111 01001010 00100 ..... ..... ..... @vvv
xvmulwod_w_hu_h 0111 01001010 00101 ..... ..... ..... @vvv
xvmulwod_d_wu_w 0111 01001010 00110 ..... ..... ..... @vvv
xvmulwod_q_du_d 0111 01001010 00111 ..... ..... ..... @vvv
xvmadd_b 0111 01001010 10000 ..... ..... ..... @vvv
xvmadd_h 0111 01001010 10001 ..... ..... ..... @vvv
xvmadd_w 0111 01001010 10010 ..... ..... ..... @vvv
xvmadd_d 0111 01001010 10011 ..... ..... ..... @vvv
xvmsub_b 0111 01001010 10100 ..... ..... ..... @vvv
xvmsub_h 0111 01001010 10101 ..... ..... ..... @vvv
xvmsub_w 0111 01001010 10110 ..... ..... ..... @vvv
xvmsub_d 0111 01001010 10111 ..... ..... ..... @vvv
xvmaddwev_h_b 0111 01001010 11000 ..... ..... ..... @vvv
xvmaddwev_w_h 0111 01001010 11001 ..... ..... ..... @vvv
xvmaddwev_d_w 0111 01001010 11010 ..... ..... ..... @vvv
xvmaddwev_q_d 0111 01001010 11011 ..... ..... ..... @vvv
xvmaddwod_h_b 0111 01001010 11100 ..... ..... ..... @vvv
xvmaddwod_w_h 0111 01001010 11101 ..... ..... ..... @vvv
xvmaddwod_d_w 0111 01001010 11110 ..... ..... ..... @vvv
xvmaddwod_q_d 0111 01001010 11111 ..... ..... ..... @vvv
xvmaddwev_h_bu 0111 01001011 01000 ..... ..... ..... @vvv
xvmaddwev_w_hu 0111 01001011 01001 ..... ..... ..... @vvv
xvmaddwev_d_wu 0111 01001011 01010 ..... ..... ..... @vvv
xvmaddwev_q_du 0111 01001011 01011 ..... ..... ..... @vvv
xvmaddwod_h_bu 0111 01001011 01100 ..... ..... ..... @vvv
xvmaddwod_w_hu 0111 01001011 01101 ..... ..... ..... @vvv
xvmaddwod_d_wu 0111 01001011 01110 ..... ..... ..... @vvv
xvmaddwod_q_du 0111 01001011 01111 ..... ..... ..... @vvv
xvmaddwev_h_bu_b 0111 01001011 11000 ..... ..... ..... @vvv
xvmaddwev_w_hu_h 0111 01001011 11001 ..... ..... ..... @vvv
xvmaddwev_d_wu_w 0111 01001011 11010 ..... ..... ..... @vvv
xvmaddwev_q_du_d 0111 01001011 11011 ..... ..... ..... @vvv
xvmaddwod_h_bu_b 0111 01001011 11100 ..... ..... ..... @vvv
xvmaddwod_w_hu_h 0111 01001011 11101 ..... ..... ..... @vvv
xvmaddwod_d_wu_w 0111 01001011 11110 ..... ..... ..... @vvv
xvmaddwod_q_du_d 0111 01001011 11111 ..... ..... ..... @vvv
xvdiv_b 0111 01001110 00000 ..... ..... ..... @vvv
xvdiv_h 0111 01001110 00001 ..... ..... ..... @vvv
xvdiv_w 0111 01001110 00010 ..... ..... ..... @vvv
xvdiv_d 0111 01001110 00011 ..... ..... ..... @vvv
xvmod_b 0111 01001110 00100 ..... ..... ..... @vvv
xvmod_h 0111 01001110 00101 ..... ..... ..... @vvv
xvmod_w 0111 01001110 00110 ..... ..... ..... @vvv
xvmod_d 0111 01001110 00111 ..... ..... ..... @vvv
xvdiv_bu 0111 01001110 01000 ..... ..... ..... @vvv
xvdiv_hu 0111 01001110 01001 ..... ..... ..... @vvv
xvdiv_wu 0111 01001110 01010 ..... ..... ..... @vvv
xvdiv_du 0111 01001110 01011 ..... ..... ..... @vvv
xvmod_bu 0111 01001110 01100 ..... ..... ..... @vvv
xvmod_hu 0111 01001110 01101 ..... ..... ..... @vvv
xvmod_wu 0111 01001110 01110 ..... ..... ..... @vvv
xvmod_du 0111 01001110 01111 ..... ..... ..... @vvv
xvsat_b 0111 01110010 01000 01 ... ..... ..... @vv_ui3
xvsat_h 0111 01110010 01000 1 .... ..... ..... @vv_ui4
xvsat_w 0111 01110010 01001 ..... ..... ..... @vv_ui5
xvsat_d 0111 01110010 0101 ...... ..... ..... @vv_ui6
xvsat_bu 0111 01110010 10000 01 ... ..... ..... @vv_ui3
xvsat_hu 0111 01110010 10000 1 .... ..... ..... @vv_ui4
xvsat_wu 0111 01110010 10001 ..... ..... ..... @vv_ui5
xvsat_du 0111 01110010 1001 ...... ..... ..... @vv_ui6
xvexth_h_b 0111 01101001 11101 11000 ..... ..... @vv
xvexth_w_h 0111 01101001 11101 11001 ..... ..... @vv
xvexth_d_w 0111 01101001 11101 11010 ..... ..... @vv
xvexth_q_d 0111 01101001 11101 11011 ..... ..... @vv
xvexth_hu_bu 0111 01101001 11101 11100 ..... ..... @vv
xvexth_wu_hu 0111 01101001 11101 11101 ..... ..... @vv
xvexth_du_wu 0111 01101001 11101 11110 ..... ..... @vv
xvexth_qu_du 0111 01101001 11101 11111 ..... ..... @vv
vext2xv_h_b 0111 01101001 11110 00100 ..... ..... @vv
vext2xv_w_b 0111 01101001 11110 00101 ..... ..... @vv
vext2xv_d_b 0111 01101001 11110 00110 ..... ..... @vv
vext2xv_w_h 0111 01101001 11110 00111 ..... ..... @vv
vext2xv_d_h 0111 01101001 11110 01000 ..... ..... @vv
vext2xv_d_w 0111 01101001 11110 01001 ..... ..... @vv
vext2xv_hu_bu 0111 01101001 11110 01010 ..... ..... @vv
vext2xv_wu_bu 0111 01101001 11110 01011 ..... ..... @vv
vext2xv_du_bu 0111 01101001 11110 01100 ..... ..... @vv
vext2xv_wu_hu 0111 01101001 11110 01101 ..... ..... @vv
vext2xv_du_hu 0111 01101001 11110 01110 ..... ..... @vv
vext2xv_du_wu 0111 01101001 11110 01111 ..... ..... @vv
xvsigncov_b 0111 01010010 11100 ..... ..... ..... @vvv
xvsigncov_h 0111 01010010 11101 ..... ..... ..... @vvv
xvsigncov_w 0111 01010010 11110 ..... ..... ..... @vvv
xvsigncov_d 0111 01010010 11111 ..... ..... ..... @vvv
xvmskltz_b 0111 01101001 11000 10000 ..... ..... @vv
xvmskltz_h 0111 01101001 11000 10001 ..... ..... @vv
xvmskltz_w 0111 01101001 11000 10010 ..... ..... @vv
xvmskltz_d 0111 01101001 11000 10011 ..... ..... @vv
xvmskgez_b 0111 01101001 11000 10100 ..... ..... @vv
xvmsknz_b 0111 01101001 11000 11000 ..... ..... @vv
xvldi 0111 01111110 00 ............. ..... @v_i13
xvand_v 0111 01010010 01100 ..... ..... ..... @vvv
xvor_v 0111 01010010 01101 ..... ..... ..... @vvv
xvxor_v 0111 01010010 01110 ..... ..... ..... @vvv
xvnor_v 0111 01010010 01111 ..... ..... ..... @vvv
xvandn_v 0111 01010010 10000 ..... ..... ..... @vvv
xvorn_v 0111 01010010 10001 ..... ..... ..... @vvv
xvandi_b 0111 01111101 00 ........ ..... ..... @vv_ui8
xvori_b 0111 01111101 01 ........ ..... ..... @vv_ui8
xvxori_b 0111 01111101 10 ........ ..... ..... @vv_ui8
xvnori_b 0111 01111101 11 ........ ..... ..... @vv_ui8
xvsll_b 0111 01001110 10000 ..... ..... ..... @vvv
xvsll_h 0111 01001110 10001 ..... ..... ..... @vvv
xvsll_w 0111 01001110 10010 ..... ..... ..... @vvv
xvsll_d 0111 01001110 10011 ..... ..... ..... @vvv
xvslli_b 0111 01110010 11000 01 ... ..... ..... @vv_ui3
xvslli_h 0111 01110010 11000 1 .... ..... ..... @vv_ui4
xvslli_w 0111 01110010 11001 ..... ..... ..... @vv_ui5
xvslli_d 0111 01110010 1101 ...... ..... ..... @vv_ui6
xvsrl_b 0111 01001110 10100 ..... ..... ..... @vvv
xvsrl_h 0111 01001110 10101 ..... ..... ..... @vvv
xvsrl_w 0111 01001110 10110 ..... ..... ..... @vvv
xvsrl_d 0111 01001110 10111 ..... ..... ..... @vvv
xvsrli_b 0111 01110011 00000 01 ... ..... ..... @vv_ui3
xvsrli_h 0111 01110011 00000 1 .... ..... ..... @vv_ui4
xvsrli_w 0111 01110011 00001 ..... ..... ..... @vv_ui5
xvsrli_d 0111 01110011 0001 ...... ..... ..... @vv_ui6
xvsra_b 0111 01001110 11000 ..... ..... ..... @vvv
xvsra_h 0111 01001110 11001 ..... ..... ..... @vvv
xvsra_w 0111 01001110 11010 ..... ..... ..... @vvv
xvsra_d 0111 01001110 11011 ..... ..... ..... @vvv
xvsrai_b 0111 01110011 01000 01 ... ..... ..... @vv_ui3
xvsrai_h 0111 01110011 01000 1 .... ..... ..... @vv_ui4
xvsrai_w 0111 01110011 01001 ..... ..... ..... @vv_ui5
xvsrai_d 0111 01110011 0101 ...... ..... ..... @vv_ui6
xvrotr_b 0111 01001110 11100 ..... ..... ..... @vvv
xvrotr_h 0111 01001110 11101 ..... ..... ..... @vvv
xvrotr_w 0111 01001110 11110 ..... ..... ..... @vvv
xvrotr_d 0111 01001110 11111 ..... ..... ..... @vvv
xvrotri_b 0111 01101010 00000 01 ... ..... ..... @vv_ui3
xvrotri_h 0111 01101010 00000 1 .... ..... ..... @vv_ui4
xvrotri_w 0111 01101010 00001 ..... ..... ..... @vv_ui5
xvrotri_d 0111 01101010 0001 ...... ..... ..... @vv_ui6
xvsllwil_h_b 0111 01110000 10000 01 ... ..... ..... @vv_ui3
xvsllwil_w_h 0111 01110000 10000 1 .... ..... ..... @vv_ui4
xvsllwil_d_w 0111 01110000 10001 ..... ..... ..... @vv_ui5
xvextl_q_d 0111 01110000 10010 00000 ..... ..... @vv
xvsllwil_hu_bu 0111 01110000 11000 01 ... ..... ..... @vv_ui3
xvsllwil_wu_hu 0111 01110000 11000 1 .... ..... ..... @vv_ui4
xvsllwil_du_wu 0111 01110000 11001 ..... ..... ..... @vv_ui5
xvextl_qu_du 0111 01110000 11010 00000 ..... ..... @vv
xvsrlr_b 0111 01001111 00000 ..... ..... ..... @vvv
xvsrlr_h 0111 01001111 00001 ..... ..... ..... @vvv
xvsrlr_w 0111 01001111 00010 ..... ..... ..... @vvv
xvsrlr_d 0111 01001111 00011 ..... ..... ..... @vvv
xvsrlri_b 0111 01101010 01000 01 ... ..... ..... @vv_ui3
xvsrlri_h 0111 01101010 01000 1 .... ..... ..... @vv_ui4
xvsrlri_w 0111 01101010 01001 ..... ..... ..... @vv_ui5
xvsrlri_d 0111 01101010 0101 ...... ..... ..... @vv_ui6
xvsrar_b 0111 01001111 00100 ..... ..... ..... @vvv
xvsrar_h 0111 01001111 00101 ..... ..... ..... @vvv
xvsrar_w 0111 01001111 00110 ..... ..... ..... @vvv
xvsrar_d 0111 01001111 00111 ..... ..... ..... @vvv
xvsrari_b 0111 01101010 10000 01 ... ..... ..... @vv_ui3
xvsrari_h 0111 01101010 10000 1 .... ..... ..... @vv_ui4
xvsrari_w 0111 01101010 10001 ..... ..... ..... @vv_ui5
xvsrari_d 0111 01101010 1001 ...... ..... ..... @vv_ui6
xvsrln_b_h 0111 01001111 01001 ..... ..... ..... @vvv
xvsrln_h_w 0111 01001111 01010 ..... ..... ..... @vvv
xvsrln_w_d 0111 01001111 01011 ..... ..... ..... @vvv
xvsran_b_h 0111 01001111 01101 ..... ..... ..... @vvv
xvsran_h_w 0111 01001111 01110 ..... ..... ..... @vvv
xvsran_w_d 0111 01001111 01111 ..... ..... ..... @vvv
xvsrlni_b_h 0111 01110100 00000 1 .... ..... ..... @vv_ui4
xvsrlni_h_w 0111 01110100 00001 ..... ..... ..... @vv_ui5
xvsrlni_w_d 0111 01110100 0001 ...... ..... ..... @vv_ui6
xvsrlni_d_q 0111 01110100 001 ....... ..... ..... @vv_ui7
xvsrani_b_h 0111 01110101 10000 1 .... ..... ..... @vv_ui4
xvsrani_h_w 0111 01110101 10001 ..... ..... ..... @vv_ui5
xvsrani_w_d 0111 01110101 1001 ...... ..... ..... @vv_ui6
xvsrani_d_q 0111 01110101 101 ....... ..... ..... @vv_ui7
xvsrlrn_b_h 0111 01001111 10001 ..... ..... ..... @vvv
xvsrlrn_h_w 0111 01001111 10010 ..... ..... ..... @vvv
xvsrlrn_w_d 0111 01001111 10011 ..... ..... ..... @vvv
xvsrarn_b_h 0111 01001111 10101 ..... ..... ..... @vvv
xvsrarn_h_w 0111 01001111 10110 ..... ..... ..... @vvv
xvsrarn_w_d 0111 01001111 10111 ..... ..... ..... @vvv
xvsrlrni_b_h 0111 01110100 01000 1 .... ..... ..... @vv_ui4
xvsrlrni_h_w 0111 01110100 01001 ..... ..... ..... @vv_ui5
xvsrlrni_w_d 0111 01110100 0101 ...... ..... ..... @vv_ui6
xvsrlrni_d_q 0111 01110100 011 ....... ..... ..... @vv_ui7
xvsrarni_b_h 0111 01110101 11000 1 .... ..... ..... @vv_ui4
xvsrarni_h_w 0111 01110101 11001 ..... ..... ..... @vv_ui5
xvsrarni_w_d 0111 01110101 1101 ...... ..... ..... @vv_ui6
xvsrarni_d_q 0111 01110101 111 ....... ..... ..... @vv_ui7
xvssrln_b_h 0111 01001111 11001 ..... ..... ..... @vvv
xvssrln_h_w 0111 01001111 11010 ..... ..... ..... @vvv
xvssrln_w_d 0111 01001111 11011 ..... ..... ..... @vvv
xvssran_b_h 0111 01001111 11101 ..... ..... ..... @vvv
xvssran_h_w 0111 01001111 11110 ..... ..... ..... @vvv
xvssran_w_d 0111 01001111 11111 ..... ..... ..... @vvv
xvssrln_bu_h 0111 01010000 01001 ..... ..... ..... @vvv
xvssrln_hu_w 0111 01010000 01010 ..... ..... ..... @vvv
xvssrln_wu_d 0111 01010000 01011 ..... ..... ..... @vvv
xvssran_bu_h 0111 01010000 01101 ..... ..... ..... @vvv
xvssran_hu_w 0111 01010000 01110 ..... ..... ..... @vvv
xvssran_wu_d 0111 01010000 01111 ..... ..... ..... @vvv
xvssrlni_b_h 0111 01110100 10000 1 .... ..... ..... @vv_ui4
xvssrlni_h_w 0111 01110100 10001 ..... ..... ..... @vv_ui5
xvssrlni_w_d 0111 01110100 1001 ...... ..... ..... @vv_ui6
xvssrlni_d_q 0111 01110100 101 ....... ..... ..... @vv_ui7
xvssrani_b_h 0111 01110110 00000 1 .... ..... ..... @vv_ui4
xvssrani_h_w 0111 01110110 00001 ..... ..... ..... @vv_ui5
xvssrani_w_d 0111 01110110 0001 ...... ..... ..... @vv_ui6
xvssrani_d_q 0111 01110110 001 ....... ..... ..... @vv_ui7
xvssrlni_bu_h 0111 01110100 11000 1 .... ..... ..... @vv_ui4
xvssrlni_hu_w 0111 01110100 11001 ..... ..... ..... @vv_ui5
xvssrlni_wu_d 0111 01110100 1101 ...... ..... ..... @vv_ui6
xvssrlni_du_q 0111 01110100 111 ....... ..... ..... @vv_ui7
xvssrani_bu_h 0111 01110110 01000 1 .... ..... ..... @vv_ui4
xvssrani_hu_w 0111 01110110 01001 ..... ..... ..... @vv_ui5
xvssrani_wu_d 0111 01110110 0101 ...... ..... ..... @vv_ui6
xvssrani_du_q 0111 01110110 011 ....... ..... ..... @vv_ui7
xvssrlrn_b_h 0111 01010000 00001 ..... ..... ..... @vvv
xvssrlrn_h_w 0111 01010000 00010 ..... ..... ..... @vvv
xvssrlrn_w_d 0111 01010000 00011 ..... ..... ..... @vvv
xvssrarn_b_h 0111 01010000 00101 ..... ..... ..... @vvv
xvssrarn_h_w 0111 01010000 00110 ..... ..... ..... @vvv
xvssrarn_w_d 0111 01010000 00111 ..... ..... ..... @vvv
xvssrlrn_bu_h 0111 01010000 10001 ..... ..... ..... @vvv
xvssrlrn_hu_w 0111 01010000 10010 ..... ..... ..... @vvv
xvssrlrn_wu_d 0111 01010000 10011 ..... ..... ..... @vvv
xvssrarn_bu_h 0111 01010000 10101 ..... ..... ..... @vvv
xvssrarn_hu_w 0111 01010000 10110 ..... ..... ..... @vvv
xvssrarn_wu_d 0111 01010000 10111 ..... ..... ..... @vvv
xvssrlrni_b_h 0111 01110101 00000 1 .... ..... ..... @vv_ui4
xvssrlrni_h_w 0111 01110101 00001 ..... ..... ..... @vv_ui5
xvssrlrni_w_d 0111 01110101 0001 ...... ..... ..... @vv_ui6
xvssrlrni_d_q 0111 01110101 001 ....... ..... ..... @vv_ui7
xvssrarni_b_h 0111 01110110 10000 1 .... ..... ..... @vv_ui4
xvssrarni_h_w 0111 01110110 10001 ..... ..... ..... @vv_ui5
xvssrarni_w_d 0111 01110110 1001 ...... ..... ..... @vv_ui6
xvssrarni_d_q 0111 01110110 101 ....... ..... ..... @vv_ui7
xvssrlrni_bu_h 0111 01110101 01000 1 .... ..... ..... @vv_ui4
xvssrlrni_hu_w 0111 01110101 01001 ..... ..... ..... @vv_ui5
xvssrlrni_wu_d 0111 01110101 0101 ...... ..... ..... @vv_ui6
xvssrlrni_du_q 0111 01110101 011 ....... ..... ..... @vv_ui7
xvssrarni_bu_h 0111 01110110 11000 1 .... ..... ..... @vv_ui4
xvssrarni_hu_w 0111 01110110 11001 ..... ..... ..... @vv_ui5
xvssrarni_wu_d 0111 01110110 1101 ...... ..... ..... @vv_ui6
xvssrarni_du_q 0111 01110110 111 ....... ..... ..... @vv_ui7
xvclo_b 0111 01101001 11000 00000 ..... ..... @vv
xvclo_h 0111 01101001 11000 00001 ..... ..... @vv
xvclo_w 0111 01101001 11000 00010 ..... ..... @vv
xvclo_d 0111 01101001 11000 00011 ..... ..... @vv
xvclz_b 0111 01101001 11000 00100 ..... ..... @vv
xvclz_h 0111 01101001 11000 00101 ..... ..... @vv
xvclz_w 0111 01101001 11000 00110 ..... ..... @vv
xvclz_d 0111 01101001 11000 00111 ..... ..... @vv
xvpcnt_b 0111 01101001 11000 01000 ..... ..... @vv
xvpcnt_h 0111 01101001 11000 01001 ..... ..... @vv
xvpcnt_w 0111 01101001 11000 01010 ..... ..... @vv
xvpcnt_d 0111 01101001 11000 01011 ..... ..... @vv
xvbitclr_b 0111 01010000 11000 ..... ..... ..... @vvv
xvbitclr_h 0111 01010000 11001 ..... ..... ..... @vvv
xvbitclr_w 0111 01010000 11010 ..... ..... ..... @vvv
xvbitclr_d 0111 01010000 11011 ..... ..... ..... @vvv
xvbitclri_b 0111 01110001 00000 01 ... ..... ..... @vv_ui3
xvbitclri_h 0111 01110001 00000 1 .... ..... ..... @vv_ui4
xvbitclri_w 0111 01110001 00001 ..... ..... ..... @vv_ui5
xvbitclri_d 0111 01110001 0001 ...... ..... ..... @vv_ui6
xvbitset_b 0111 01010000 11100 ..... ..... ..... @vvv
xvbitset_h 0111 01010000 11101 ..... ..... ..... @vvv
xvbitset_w 0111 01010000 11110 ..... ..... ..... @vvv
xvbitset_d 0111 01010000 11111 ..... ..... ..... @vvv
xvbitseti_b 0111 01110001 01000 01 ... ..... ..... @vv_ui3
xvbitseti_h 0111 01110001 01000 1 .... ..... ..... @vv_ui4
xvbitseti_w 0111 01110001 01001 ..... ..... ..... @vv_ui5
xvbitseti_d 0111 01110001 0101 ...... ..... ..... @vv_ui6
xvbitrev_b 0111 01010001 00000 ..... ..... ..... @vvv
xvbitrev_h 0111 01010001 00001 ..... ..... ..... @vvv
xvbitrev_w 0111 01010001 00010 ..... ..... ..... @vvv
xvbitrev_d 0111 01010001 00011 ..... ..... ..... @vvv
xvbitrevi_b 0111 01110001 10000 01 ... ..... ..... @vv_ui3
xvbitrevi_h 0111 01110001 10000 1 .... ..... ..... @vv_ui4
xvbitrevi_w 0111 01110001 10001 ..... ..... ..... @vv_ui5
xvbitrevi_d 0111 01110001 1001 ...... ..... ..... @vv_ui6
xvfrstp_b 0111 01010010 10110 ..... ..... ..... @vvv
xvfrstp_h 0111 01010010 10111 ..... ..... ..... @vvv
xvfrstpi_b 0111 01101001 10100 ..... ..... ..... @vv_ui5
xvfrstpi_h 0111 01101001 10101 ..... ..... ..... @vv_ui5
xvfadd_s 0111 01010011 00001 ..... ..... ..... @vvv
xvfadd_d 0111 01010011 00010 ..... ..... ..... @vvv
xvfsub_s 0111 01010011 00101 ..... ..... ..... @vvv
xvfsub_d 0111 01010011 00110 ..... ..... ..... @vvv
xvfmul_s 0111 01010011 10001 ..... ..... ..... @vvv
xvfmul_d 0111 01010011 10010 ..... ..... ..... @vvv
xvfdiv_s 0111 01010011 10101 ..... ..... ..... @vvv
xvfdiv_d 0111 01010011 10110 ..... ..... ..... @vvv
xvfmadd_s 0000 10100001 ..... ..... ..... ..... @vvvv
xvfmadd_d 0000 10100010 ..... ..... ..... ..... @vvvv
xvfmsub_s 0000 10100101 ..... ..... ..... ..... @vvvv
xvfmsub_d 0000 10100110 ..... ..... ..... ..... @vvvv
xvfnmadd_s 0000 10101001 ..... ..... ..... ..... @vvvv
xvfnmadd_d 0000 10101010 ..... ..... ..... ..... @vvvv
xvfnmsub_s 0000 10101101 ..... ..... ..... ..... @vvvv
xvfnmsub_d 0000 10101110 ..... ..... ..... ..... @vvvv
xvfmax_s 0111 01010011 11001 ..... ..... ..... @vvv
xvfmax_d 0111 01010011 11010 ..... ..... ..... @vvv
xvfmin_s 0111 01010011 11101 ..... ..... ..... @vvv
xvfmin_d 0111 01010011 11110 ..... ..... ..... @vvv
xvfmaxa_s 0111 01010100 00001 ..... ..... ..... @vvv
xvfmaxa_d 0111 01010100 00010 ..... ..... ..... @vvv
xvfmina_s 0111 01010100 00101 ..... ..... ..... @vvv
xvfmina_d 0111 01010100 00110 ..... ..... ..... @vvv
xvflogb_s 0111 01101001 11001 10001 ..... ..... @vv
xvflogb_d 0111 01101001 11001 10010 ..... ..... @vv
xvfclass_s 0111 01101001 11001 10101 ..... ..... @vv
xvfclass_d 0111 01101001 11001 10110 ..... ..... @vv
xvfsqrt_s 0111 01101001 11001 11001 ..... ..... @vv
xvfsqrt_d 0111 01101001 11001 11010 ..... ..... @vv
xvfrecip_s 0111 01101001 11001 11101 ..... ..... @vv
xvfrecip_d 0111 01101001 11001 11110 ..... ..... @vv
xvfrsqrt_s 0111 01101001 11010 00001 ..... ..... @vv
xvfrsqrt_d 0111 01101001 11010 00010 ..... ..... @vv
xvfcvtl_s_h 0111 01101001 11011 11010 ..... ..... @vv
xvfcvth_s_h 0111 01101001 11011 11011 ..... ..... @vv
xvfcvtl_d_s 0111 01101001 11011 11100 ..... ..... @vv
xvfcvth_d_s 0111 01101001 11011 11101 ..... ..... @vv
xvfcvt_h_s 0111 01010100 01100 ..... ..... ..... @vvv
xvfcvt_s_d 0111 01010100 01101 ..... ..... ..... @vvv
xvfrintrne_s 0111 01101001 11010 11101 ..... ..... @vv
xvfrintrne_d 0111 01101001 11010 11110 ..... ..... @vv
xvfrintrz_s 0111 01101001 11010 11001 ..... ..... @vv
xvfrintrz_d 0111 01101001 11010 11010 ..... ..... @vv
xvfrintrp_s 0111 01101001 11010 10101 ..... ..... @vv
xvfrintrp_d 0111 01101001 11010 10110 ..... ..... @vv
xvfrintrm_s 0111 01101001 11010 10001 ..... ..... @vv
xvfrintrm_d 0111 01101001 11010 10010 ..... ..... @vv
xvfrint_s 0111 01101001 11010 01101 ..... ..... @vv
xvfrint_d 0111 01101001 11010 01110 ..... ..... @vv
xvftintrne_w_s 0111 01101001 11100 10100 ..... ..... @vv
xvftintrne_l_d 0111 01101001 11100 10101 ..... ..... @vv
xvftintrz_w_s 0111 01101001 11100 10010 ..... ..... @vv
xvftintrz_l_d 0111 01101001 11100 10011 ..... ..... @vv
xvftintrp_w_s 0111 01101001 11100 10000 ..... ..... @vv
xvftintrp_l_d 0111 01101001 11100 10001 ..... ..... @vv
xvftintrm_w_s 0111 01101001 11100 01110 ..... ..... @vv
xvftintrm_l_d 0111 01101001 11100 01111 ..... ..... @vv
xvftint_w_s 0111 01101001 11100 01100 ..... ..... @vv
xvftint_l_d 0111 01101001 11100 01101 ..... ..... @vv
xvftintrz_wu_s 0111 01101001 11100 11100 ..... ..... @vv
xvftintrz_lu_d 0111 01101001 11100 11101 ..... ..... @vv
xvftint_wu_s 0111 01101001 11100 10110 ..... ..... @vv
xvftint_lu_d 0111 01101001 11100 10111 ..... ..... @vv
xvftintrne_w_d 0111 01010100 10111 ..... ..... ..... @vvv
xvftintrz_w_d 0111 01010100 10110 ..... ..... ..... @vvv
xvftintrp_w_d 0111 01010100 10101 ..... ..... ..... @vvv
xvftintrm_w_d 0111 01010100 10100 ..... ..... ..... @vvv
xvftint_w_d 0111 01010100 10011 ..... ..... ..... @vvv
xvftintrnel_l_s 0111 01101001 11101 01000 ..... ..... @vv
xvftintrneh_l_s 0111 01101001 11101 01001 ..... ..... @vv
xvftintrzl_l_s 0111 01101001 11101 00110 ..... ..... @vv
xvftintrzh_l_s 0111 01101001 11101 00111 ..... ..... @vv
xvftintrpl_l_s 0111 01101001 11101 00100 ..... ..... @vv
xvftintrph_l_s 0111 01101001 11101 00101 ..... ..... @vv
xvftintrml_l_s 0111 01101001 11101 00010 ..... ..... @vv
xvftintrmh_l_s 0111 01101001 11101 00011 ..... ..... @vv
xvftintl_l_s 0111 01101001 11101 00000 ..... ..... @vv
xvftinth_l_s 0111 01101001 11101 00001 ..... ..... @vv
xvffint_s_w 0111 01101001 11100 00000 ..... ..... @vv
xvffint_d_l 0111 01101001 11100 00010 ..... ..... @vv
xvffint_s_wu 0111 01101001 11100 00001 ..... ..... @vv
xvffint_d_lu 0111 01101001 11100 00011 ..... ..... @vv
xvffintl_d_w 0111 01101001 11100 00100 ..... ..... @vv
xvffinth_d_w 0111 01101001 11100 00101 ..... ..... @vv
xvffint_s_l 0111 01010100 10000 ..... ..... ..... @vvv
xvseq_b 0111 01000000 00000 ..... ..... ..... @vvv
xvseq_h 0111 01000000 00001 ..... ..... ..... @vvv
xvseq_w 0111 01000000 00010 ..... ..... ..... @vvv
xvseq_d 0111 01000000 00011 ..... ..... ..... @vvv
xvseqi_b 0111 01101000 00000 ..... ..... ..... @vv_i5
xvseqi_h 0111 01101000 00001 ..... ..... ..... @vv_i5
xvseqi_w 0111 01101000 00010 ..... ..... ..... @vv_i5
xvseqi_d 0111 01101000 00011 ..... ..... ..... @vv_i5
xvsle_b 0111 01000000 00100 ..... ..... ..... @vvv
xvsle_h 0111 01000000 00101 ..... ..... ..... @vvv
xvsle_w 0111 01000000 00110 ..... ..... ..... @vvv
xvsle_d 0111 01000000 00111 ..... ..... ..... @vvv
xvslei_b 0111 01101000 00100 ..... ..... ..... @vv_i5
xvslei_h 0111 01101000 00101 ..... ..... ..... @vv_i5
xvslei_w 0111 01101000 00110 ..... ..... ..... @vv_i5
xvslei_d 0111 01101000 00111 ..... ..... ..... @vv_i5
xvsle_bu 0111 01000000 01000 ..... ..... ..... @vvv
xvsle_hu 0111 01000000 01001 ..... ..... ..... @vvv
xvsle_wu 0111 01000000 01010 ..... ..... ..... @vvv
xvsle_du 0111 01000000 01011 ..... ..... ..... @vvv
xvslei_bu 0111 01101000 01000 ..... ..... ..... @vv_ui5
xvslei_hu 0111 01101000 01001 ..... ..... ..... @vv_ui5
xvslei_wu 0111 01101000 01010 ..... ..... ..... @vv_ui5
xvslei_du 0111 01101000 01011 ..... ..... ..... @vv_ui5
xvslt_b 0111 01000000 01100 ..... ..... ..... @vvv
xvslt_h 0111 01000000 01101 ..... ..... ..... @vvv
xvslt_w 0111 01000000 01110 ..... ..... ..... @vvv
xvslt_d 0111 01000000 01111 ..... ..... ..... @vvv
xvslti_b 0111 01101000 01100 ..... ..... ..... @vv_i5
xvslti_h 0111 01101000 01101 ..... ..... ..... @vv_i5
xvslti_w 0111 01101000 01110 ..... ..... ..... @vv_i5
xvslti_d 0111 01101000 01111 ..... ..... ..... @vv_i5
xvslt_bu 0111 01000000 10000 ..... ..... ..... @vvv
xvslt_hu 0111 01000000 10001 ..... ..... ..... @vvv
xvslt_wu 0111 01000000 10010 ..... ..... ..... @vvv
xvslt_du 0111 01000000 10011 ..... ..... ..... @vvv
xvslti_bu 0111 01101000 10000 ..... ..... ..... @vv_ui5
xvslti_hu 0111 01101000 10001 ..... ..... ..... @vv_ui5
xvslti_wu 0111 01101000 10010 ..... ..... ..... @vv_ui5
xvslti_du 0111 01101000 10011 ..... ..... ..... @vv_ui5
xvfcmp_cond_s 0000 11001001 ..... ..... ..... ..... @vvv_fcond
xvfcmp_cond_d 0000 11001010 ..... ..... ..... ..... @vvv_fcond
xvbitsel_v 0000 11010010 ..... ..... ..... ..... @vvvv
xvbitseli_b 0111 01111100 01 ........ ..... ..... @vv_ui8
xvseteqz_v 0111 01101001 11001 00110 ..... 00 ... @cv
xvsetnez_v 0111 01101001 11001 00111 ..... 00 ... @cv
xvsetanyeqz_b 0111 01101001 11001 01000 ..... 00 ... @cv
xvsetanyeqz_h 0111 01101001 11001 01001 ..... 00 ... @cv
xvsetanyeqz_w 0111 01101001 11001 01010 ..... 00 ... @cv
xvsetanyeqz_d 0111 01101001 11001 01011 ..... 00 ... @cv
xvsetallnez_b 0111 01101001 11001 01100 ..... 00 ... @cv
xvsetallnez_h 0111 01101001 11001 01101 ..... 00 ... @cv
xvsetallnez_w 0111 01101001 11001 01110 ..... 00 ... @cv
xvsetallnez_d 0111 01101001 11001 01111 ..... 00 ... @cv
xvinsgr2vr_w 0111 01101110 10111 10 ... ..... ..... @vr_ui3
xvinsgr2vr_d 0111 01101110 10111 110 .. ..... ..... @vr_ui2
xvpickve2gr_w 0111 01101110 11111 10 ... ..... ..... @rv_ui3
xvpickve2gr_d 0111 01101110 11111 110 .. ..... ..... @rv_ui2
xvpickve2gr_wu 0111 01101111 00111 10 ... ..... ..... @rv_ui3
xvpickve2gr_du 0111 01101111 00111 110 .. ..... ..... @rv_ui2
xvreplgr2vr_b 0111 01101001 11110 00000 ..... ..... @vr
xvreplgr2vr_h 0111 01101001 11110 00001 ..... ..... @vr
xvreplgr2vr_w 0111 01101001 11110 00010 ..... ..... @vr
xvreplgr2vr_d 0111 01101001 11110 00011 ..... ..... @vr
xvreplve_b 0111 01010010 00100 ..... ..... ..... @vvr
xvreplve_h 0111 01010010 00101 ..... ..... ..... @vvr
xvreplve_w 0111 01010010 00110 ..... ..... ..... @vvr
xvreplve_d 0111 01010010 00111 ..... ..... ..... @vvr
xvrepl128vei_b 0111 01101111 01111 0 .... ..... ..... @vv_ui4
xvrepl128vei_h 0111 01101111 01111 10 ... ..... ..... @vv_ui3
xvrepl128vei_w 0111 01101111 01111 110 .. ..... ..... @vv_ui2
xvrepl128vei_d 0111 01101111 01111 1110 . ..... ..... @vv_ui1
xvreplve0_b 0111 01110000 01110 00000 ..... ..... @vv
xvreplve0_h 0111 01110000 01111 00000 ..... ..... @vv
xvreplve0_w 0111 01110000 01111 10000 ..... ..... @vv
xvreplve0_d 0111 01110000 01111 11000 ..... ..... @vv
xvreplve0_q 0111 01110000 01111 11100 ..... ..... @vv
xvinsve0_w 0111 01101111 11111 10 ... ..... ..... @vv_ui3
xvinsve0_d 0111 01101111 11111 110 .. ..... ..... @vv_ui2
xvpickve_w 0111 01110000 00111 10 ... ..... ..... @vv_ui3
xvpickve_d 0111 01110000 00111 110 .. ..... ..... @vv_ui2
xvbsll_v 0111 01101000 11100 ..... ..... ..... @vv_ui5
xvbsrl_v 0111 01101000 11101 ..... ..... ..... @vv_ui5
xvpackev_b 0111 01010001 01100 ..... ..... ..... @vvv
xvpackev_h 0111 01010001 01101 ..... ..... ..... @vvv
xvpackev_w 0111 01010001 01110 ..... ..... ..... @vvv
xvpackev_d 0111 01010001 01111 ..... ..... ..... @vvv
xvpackod_b 0111 01010001 10000 ..... ..... ..... @vvv
xvpackod_h 0111 01010001 10001 ..... ..... ..... @vvv
xvpackod_w 0111 01010001 10010 ..... ..... ..... @vvv
xvpackod_d 0111 01010001 10011 ..... ..... ..... @vvv
xvpickev_b 0111 01010001 11100 ..... ..... ..... @vvv
xvpickev_h 0111 01010001 11101 ..... ..... ..... @vvv
xvpickev_w 0111 01010001 11110 ..... ..... ..... @vvv
xvpickev_d 0111 01010001 11111 ..... ..... ..... @vvv
xvpickod_b 0111 01010010 00000 ..... ..... ..... @vvv
xvpickod_h 0111 01010010 00001 ..... ..... ..... @vvv
xvpickod_w 0111 01010010 00010 ..... ..... ..... @vvv
xvpickod_d 0111 01010010 00011 ..... ..... ..... @vvv
xvilvl_b 0111 01010001 10100 ..... ..... ..... @vvv
xvilvl_h 0111 01010001 10101 ..... ..... ..... @vvv
xvilvl_w 0111 01010001 10110 ..... ..... ..... @vvv
xvilvl_d 0111 01010001 10111 ..... ..... ..... @vvv
xvilvh_b 0111 01010001 11000 ..... ..... ..... @vvv
xvilvh_h 0111 01010001 11001 ..... ..... ..... @vvv
xvilvh_w 0111 01010001 11010 ..... ..... ..... @vvv
xvilvh_d 0111 01010001 11011 ..... ..... ..... @vvv
xvshuf_b 0000 11010110 ..... ..... ..... ..... @vvvv
xvshuf_h 0111 01010111 10101 ..... ..... ..... @vvv
xvshuf_w 0111 01010111 10110 ..... ..... ..... @vvv
xvshuf_d 0111 01010111 10111 ..... ..... ..... @vvv
xvperm_w 0111 01010111 11010 ..... ..... ..... @vvv
xvshuf4i_b 0111 01111001 00 ........ ..... ..... @vv_ui8
xvshuf4i_h 0111 01111001 01 ........ ..... ..... @vv_ui8
xvshuf4i_w 0111 01111001 10 ........ ..... ..... @vv_ui8
xvshuf4i_d 0111 01111001 11 ........ ..... ..... @vv_ui8
xvpermi_w 0111 01111110 01 ........ ..... ..... @vv_ui8
xvpermi_d 0111 01111110 10 ........ ..... ..... @vv_ui8
xvpermi_q 0111 01111110 11 ........ ..... ..... @vv_ui8
xvextrins_d 0111 01111000 00 ........ ..... ..... @vv_ui8
xvextrins_w 0111 01111000 01 ........ ..... ..... @vv_ui8
xvextrins_h 0111 01111000 10 ........ ..... ..... @vv_ui8
xvextrins_b 0111 01111000 11 ........ ..... ..... @vv_ui8
xvld 0010 110010 ............ ..... ..... @vr_i12
xvst 0010 110011 ............ ..... ..... @vr_i12
xvldx 0011 10000100 10000 ..... ..... ..... @vrr
xvstx 0011 10000100 11000 ..... ..... ..... @vrr
xvldrepl_d 0011 00100001 0 ......... ..... ..... @vr_i9
xvldrepl_w 0011 00100010 .......... ..... ..... @vr_i10
xvldrepl_h 0011 0010010 ........... ..... ..... @vr_i11
xvldrepl_b 0011 001010 ............ ..... ..... @vr_i12
xvstelm_d 0011 00110001 .. ........ ..... ..... @vr_i8i2x
xvstelm_w 0011 0011001 ... ........ ..... ..... @vr_i8i3x
xvstelm_h 0011 001101 .... ........ ..... ..... @vr_i8i4x
xvstelm_b 0011 00111 ..... ........ ..... ..... @vr_i8i5x

View File

@ -21,28 +21,6 @@
/* Global bit for huge page */
#define LOONGARCH_HGLOBAL_SHIFT 12
#if HOST_BIG_ENDIAN
#define B(x) B[15 - (x)]
#define H(x) H[7 - (x)]
#define W(x) W[3 - (x)]
#define D(x) D[1 - (x)]
#define UB(x) UB[15 - (x)]
#define UH(x) UH[7 - (x)]
#define UW(x) UW[3 - (x)]
#define UD(x) UD[1 -(x)]
#define Q(x) Q[x]
#else
#define B(x) B[x]
#define H(x) H[x]
#define W(x) W[x]
#define D(x) D[x]
#define UB(x) UB[x]
#define UH(x) UH[x]
#define UW(x) UW[x]
#define UD(x) UD[x]
#define Q(x) Q[x]
#endif
void loongarch_translate_init(void);
void loongarch_cpu_dump_state(CPUState *cpu, FILE *f, int flags);

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@
#include "qemu/osdep.h"
#include "cpu.h"
#include "migration/cpu.h"
#include "internals.h"
#include "vec.h"
static const VMStateDescription vmstate_fpu_reg = {
.name = "fpu_reg",
@ -76,6 +76,39 @@ static const VMStateDescription vmstate_lsx = {
},
};
static const VMStateDescription vmstate_lasxh_reg = {
.name = "lasxh_reg",
.version_id = 1,
.minimum_version_id = 1,
.fields = (VMStateField[]) {
VMSTATE_UINT64(UD(2), VReg),
VMSTATE_UINT64(UD(3), VReg),
VMSTATE_END_OF_LIST()
}
};
#define VMSTATE_LASXH_REGS(_field, _state, _start) \
VMSTATE_STRUCT_SUB_ARRAY(_field, _state, _start, 32, 0, \
vmstate_lasxh_reg, fpr_t)
static bool lasx_needed(void *opaque)
{
LoongArchCPU *cpu = opaque;
return FIELD_EX64(cpu->env.cpucfg[2], CPUCFG2, LASX);
}
static const VMStateDescription vmstate_lasx = {
.name = "cpu/lasx",
.version_id = 1,
.minimum_version_id = 1,
.needed = lasx_needed,
.fields = (VMStateField[]) {
VMSTATE_LASXH_REGS(env.fpr, LoongArchCPU, 0),
VMSTATE_END_OF_LIST()
},
};
/* TLB state */
const VMStateDescription vmstate_tlb = {
.name = "cpu/tlb",
@ -163,6 +196,7 @@ const VMStateDescription vmstate_loongarch_cpu = {
.subsections = (const VMStateDescription*[]) {
&vmstate_fpu,
&vmstate_lsx,
&vmstate_lasx,
NULL
}
};

View File

@ -11,7 +11,7 @@ loongarch_tcg_ss.add(files(
'op_helper.c',
'translate.c',
'gdbstub.c',
'lsx_helper.c',
'vec_helper.c',
))
loongarch_tcg_ss.add(zlib)

View File

@ -18,6 +18,7 @@
#include "fpu/softfloat.h"
#include "translate.h"
#include "internals.h"
#include "vec.h"
/* Global register indices */
TCGv cpu_gpr[32], cpu_pc;
@ -36,6 +37,18 @@ static inline int vec_full_offset(int regno)
return offsetof(CPULoongArchState, fpr[regno]);
}
static inline int vec_reg_offset(int regno, int index, MemOp mop)
{
const uint8_t size = 1 << mop;
int offs = index * size;
if (HOST_BIG_ENDIAN && size < 8 ) {
offs ^= (8 - size);
}
return offs + vec_full_offset(regno);
}
static inline void get_vreg64(TCGv_i64 dest, int regno, int index)
{
tcg_gen_ld_i64(dest, cpu_env,
@ -123,6 +136,10 @@ static void loongarch_tr_init_disas_context(DisasContextBase *dcbase,
ctx->vl = LSX_LEN;
}
if (FIELD_EX64(env->cpucfg[2], CPUCFG2, LASX)) {
ctx->vl = LASX_LEN;
}
ctx->la64 = is_la64(env);
ctx->va32 = (ctx->base.tb->flags & HW_FLAGS_VA32) != 0;
@ -261,7 +278,7 @@ static uint64_t make_address_pc(DisasContext *ctx, uint64_t addr)
#include "insn_trans/trans_fmemory.c.inc"
#include "insn_trans/trans_branch.c.inc"
#include "insn_trans/trans_privileged.c.inc"
#include "insn_trans/trans_lsx.c.inc"
#include "insn_trans/trans_vec.c.inc"
static void loongarch_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
{

View File

@ -23,6 +23,7 @@
#define avail_LSPW(C) (FIELD_EX32((C)->cpucfg2, CPUCFG2, LSPW))
#define avail_LAM(C) (FIELD_EX32((C)->cpucfg2, CPUCFG2, LAM))
#define avail_LSX(C) (FIELD_EX32((C)->cpucfg2, CPUCFG2, LSX))
#define avail_LASX(C) (FIELD_EX32((C)->cpucfg2, CPUCFG2, LASX))
#define avail_IOCSR(C) (FIELD_EX32((C)->cpucfg1, CPUCFG1, IOCSR))
/*

75
target/loongarch/vec.h Normal file
View File

@ -0,0 +1,75 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* QEMU LoongArch vector utilitites
*
* Copyright (c) 2023 Loongson Technology Corporation Limited
*/
#ifndef LOONGARCH_VEC_H
#define LOONGARCH_VEC_H
#if HOST_BIG_ENDIAN
#define B(x) B[(x) ^ 15]
#define H(x) H[(x) ^ 7]
#define W(x) W[(x) ^ 3]
#define D(x) D[(x) ^ 1]
#define UB(x) UB[(x) ^ 15]
#define UH(x) UH[(x) ^ 7]
#define UW(x) UW[(x) ^ 3]
#define UD(x) UD[(x) ^ 1]
#define Q(x) Q[x]
#else
#define B(x) B[x]
#define H(x) H[x]
#define W(x) W[x]
#define D(x) D[x]
#define UB(x) UB[x]
#define UH(x) UH[x]
#define UW(x) UW[x]
#define UD(x) UD[x]
#define Q(x) Q[x]
#endif /* HOST_BIG_ENDIAN */
#define DO_ADD(a, b) (a + b)
#define DO_SUB(a, b) (a - b)
#define DO_VAVG(a, b) ((a >> 1) + (b >> 1) + (a & b & 1))
#define DO_VAVGR(a, b) ((a >> 1) + (b >> 1) + ((a | b) & 1))
#define DO_VABSD(a, b) ((a > b) ? (a -b) : (b-a))
#define DO_VABS(a) ((a < 0) ? (-a) : (a))
#define DO_MIN(a, b) (a < b ? a : b)
#define DO_MAX(a, b) (a > b ? a : b)
#define DO_MUL(a, b) (a * b)
#define DO_MADD(a, b, c) (a + b * c)
#define DO_MSUB(a, b, c) (a - b * c)
#define DO_DIVU(N, M) (unlikely(M == 0) ? 0 : N / M)
#define DO_REMU(N, M) (unlikely(M == 0) ? 0 : N % M)
#define DO_DIV(N, M) (unlikely(M == 0) ? 0 :\
unlikely((N == -N) && (M == (__typeof(N))(-1))) ? N : N / M)
#define DO_REM(N, M) (unlikely(M == 0) ? 0 :\
unlikely((N == -N) && (M == (__typeof(N))(-1))) ? 0 : N % M)
#define DO_SIGNCOV(a, b) (a == 0 ? 0 : a < 0 ? -b : b)
#define R_SHIFT(a, b) (a >> b)
#define DO_CLO_B(N) (clz32(~N & 0xff) - 24)
#define DO_CLO_H(N) (clz32(~N & 0xffff) - 16)
#define DO_CLO_W(N) (clz32(~N))
#define DO_CLO_D(N) (clz64(~N))
#define DO_CLZ_B(N) (clz32(N) - 24)
#define DO_CLZ_H(N) (clz32(N) - 16)
#define DO_CLZ_W(N) (clz32(N))
#define DO_CLZ_D(N) (clz64(N))
#define DO_BITCLR(a, bit) (a & ~(1ull << bit))
#define DO_BITSET(a, bit) (a | 1ull << bit)
#define DO_BITREV(a, bit) (a ^ (1ull << bit))
#define VSEQ(a, b) (a == b ? -1 : 0)
#define VSLE(a, b) (a <= b ? -1 : 0)
#define VSLT(a, b) (a < b ? -1 : 0)
#define SHF_POS(i, imm) (((i) & 0xfc) + (((imm) >> (2 * ((i) & 0x03))) & 0x03))
#endif /* LOONGARCH_VEC_H */

File diff suppressed because it is too large Load Diff