qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH RESEND v5 51/57] target/loongarch: Implement xvinsgr2vr xvpic


From: Richard Henderson
Subject: Re: [PATCH RESEND v5 51/57] target/loongarch: Implement xvinsgr2vr xvpickve2gr
Date: Tue, 12 Sep 2023 09:20:42 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0

On 9/12/23 02:09, gaosong wrote:
static bool gen_g2v_vl(DisasContext *ctx, arg_vr_i *a, uint32_t oprsz, MemOp 
mop,
                        void (*func)(TCGv, TCGv_ptr, tcg_target_long))
{
     TCGv src = gpr_src(ctx, a->rj, EXT_NONE);

     if (!check_vec(ctx, oprsz)) {
         return true;
     }

     func(src, cpu_env, vec_reg_offset(a->vd, a->imm, mop));

     return true;
}

static bool gen_g2v(DisasContext *ctx, arg_vr_i *a, MemOp mop,
                     void (*func)(TCGv, TCGv_ptr, tcg_target_long))
{
     return gen_g2v_vl(ctx, a, 16, mop, func);
}

static bool gen_g2x(DisasContext *ctx, arg_vr_i *a, MemOp mop,
                     void (*func)(TCGv, TCGv_ptr, tcg_target_long))
{
     return gen_g2v_vl(ctx, a, 32, mop, func);
}

TRANS(vinsgr2vr_b, LSX, gen_g2v, MO_8, tcg_gen_st8_i64)
TRANS(vinsgr2vr_h, LSX, gen_g2v, MO_16, tcg_gen_st16_i64)
TRANS(vinsgr2vr_w, LSX, gen_g2v, MO_32, tcg_gen_st32_i64)
TRANS(vinsgr2vr_d, LSX, gen_g2v, MO_64, tcg_gen_st_i64)
TRANS(xvinsgr2vr_w, LASX, gen_g2x, MO_32, tcg_gen_st32_i64)
TRANS(xvinsgr2vr_d, LASX, gen_g2x, MO_64, tcg_gen_st_i64)

Looks perfect, thanks.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]