qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 23/36] target/arm: Convert Neon 64-bit element 3-reg-same ins


From: Peter Maydell
Subject: Re: [PATCH 23/36] target/arm: Convert Neon 64-bit element 3-reg-same insns
Date: Fri, 1 May 2020 16:36:57 +0100

On Thu, 30 Apr 2020 at 21:54, Richard Henderson
<address@hidden> wrote:
> You can morph this into the gvec interface like so:
>
> #define DO_3SAME_64(INSN, FUNC) \
>     static void gen_##INSN##_3s(unsigned vece, uint32_t rd_ofs,
>                                 uint32_t rn_ofs, uint32_t rm_ofs,
>                                 uint32_t oprsz, uint32_t maxsz)
>     {
>         static const GVecGen3 op = { .fni8 = FUNC };
>         tcg_gen_gvec_3(rd_ofs, rn_ofs, rm_ofs,
>                        oprsz, maxsz, &op);
>     }
>     DO_3SAME(INSN, gen_##INSN##_3s)
>
> The .fni8 function tells gvec that we have a helper that processes the
> operation in 8 byte chunks.  It will handle the pass loop for you.
>
> There's also a .fni4 member, for those neon helpers that operate on 4-byte
> quantities, fwiw.

Is there a version of this that works on functions that need
to be passed the cpu_env, or do I have to create a trampoline
function that just calls the real helper function passing it
the extra argument ?

thanks
-- PMM



reply via email to

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