qemu-devel
[Top][All Lists]
Advanced

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

Re: [RFC v4 53/70] target/riscv: rvv-1.0: floating-point slide instructi


From: Frank Chang
Subject: Re: [RFC v4 53/70] target/riscv: rvv-1.0: floating-point slide instructions
Date: Fri, 25 Sep 2020 16:21:24 +0800

On Sun, Aug 30, 2020 at 4:33 AM Richard Henderson <richard.henderson@linaro.org> wrote:
On 8/17/20 1:49 AM, frank.chang@sifive.com wrote:
> +DEF_HELPER_6(vfslide1up_vf_h, void, ptr, ptr, i64, ptr, env, i32)
> +DEF_HELPER_6(vfslide1up_vf_w, void, ptr, ptr, i64, ptr, env, i32)
> +DEF_HELPER_6(vfslide1up_vf_d, void, ptr, ptr, i64, ptr, env, i32)
> +DEF_HELPER_6(vfslide1down_vf_h, void, ptr, ptr, i64, ptr, env, i32)
> +DEF_HELPER_6(vfslide1down_vf_w, void, ptr, ptr, i64, ptr, env, i32)
> +DEF_HELPER_6(vfslide1down_vf_d, void, ptr, ptr, i64, ptr, env, i32)

You shouldn't need any new helpers.

The fp scalar argument can be passed to the existing helpers.

I'm happy to reuse vslide1up_vx helper functions.

However, opfvf_trans() takes helper prototype of:
typedef void gen_helper_opfvf(TCGv_ptr, TCGv_ptr, TCGv_i64, TCGv_ptr,
                              TCGv_env, TCGv_i32);
but vslide1up_vx helper function's prototype is:
typedef void gen_helper_opivx(TCGv_ptr, TCGv_ptr, TCGv, TCGv_ptr,
                              TCGv_env, TCGv_i32);


The third argument has different types, not sure if it's worth it to sync them
all to TCGv_i64.
But I'm afraid it would require more effort than keeping them in different
helper functions.

Frank Chang
 

The manual doesn't explicitly say, but I assume the fp scalar needs to be
nan-boxed (for sew > flen), or checked (for sew < flen), just like the scalar
move instructions.


r~

reply via email to

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