On Sun, Aug 30, 2020 at 4:33 AM Richard Henderson <
richard.hender...@linaro.org> wrote:

> On 8/17/20 1:49 AM, frank.ch...@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