On 5/20/19 2:49 AM, Aleksandar Markovic wrote: > > On May 18, 2019 9:21 PM, "Richard Henderson" <richard.hender...@linaro.org > <mailto:richard.hender...@linaro.org>> wrote: >> >> The gvec expanders take care of masking the shift amount >> against the element width. >> >> Signed-off-by: Richard Henderson <richard.hender...@linaro.org > <mailto:richard.hender...@linaro.org>> >> --- >> target/ppc/helper.h | 12 ---------- >> target/ppc/int_helper.c | 37 ----------------------------- >> target/ppc/translate/vmx-impl.inc.c | 24 +++++++++---------- > > You changed the line > > -GEN_VXFORM(vslw, 2, 6); > > to be: > > +GEN_VXFORM_V(vslw, MO_32, tcg_gen_gvec_shlv, 2, 6); > > and left this line unchanged (even though it deals with the same vslw > instruction): > > GEN_VXFORM_DUAL(vslw, PPC_ALTIVEC, PPC_NONE, \ vrlwnm, > PPC_NONE, PPC2_ISA300) > > I just want to doublecheck - is this really what you wanted to do?
Yes, the macros do two different things. The first defines a function using tcg_gen_gvec_shlv as the implementation. The second defines a function that chooses between two overloaded encodings, depending on whether PPC_ALTIVEC or PPC2_ISA300 is enabled. If PPC_ALTIVEC, it will forward the implementation to the function defined with the first macro. r~