From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57125) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bSI0O-0004F0-Ik for qemu-devel@nongnu.org; Wed, 27 Jul 2016 02:07:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bSI0J-0001eE-5n for qemu-devel@nongnu.org; Wed, 27 Jul 2016 02:07:43 -0400 Date: Wed, 27 Jul 2016 15:52:58 +1000 From: David Gibson Message-ID: <20160727055258.GH17429@voom.fritz.box> References: <1469561218-3067-1-git-send-email-nikunj@linux.vnet.ibm.com> <1469561218-3067-3-git-send-email-nikunj@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="7GFA+bvAY1vP//DC" Content-Disposition: inline In-Reply-To: <1469561218-3067-3-git-send-email-nikunj@linux.vnet.ibm.com> Subject: Re: [Qemu-devel] [PATCH RFC v0 2/6] target-ppc: add vabsdu[b, h, w] instructions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Nikunj A Dadhania Cc: qemu-ppc@nongnu.org, rth@twiddle.net, qemu-devel@nongnu.org, bharata@linux.vnet.ibm.com, aneesh.kumar@linux.vnet.ibm.com, benh@kernel.crashing.org, Sandipan Das --7GFA+bvAY1vP//DC Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jul 27, 2016 at 12:56:54AM +0530, Nikunj A Dadhania wrote: > From: Sandipan Das >=20 > Adds following instructions: >=20 > vabsdub: Vector Absolute Difference Unsigned Byte > vabsduh: Vector Absolute Difference Unsigned Halfword > vabsduw: Vector Absolute Difference Unsigned Word >=20 > Signed-off-by: Sandipan Das > [ use ISA300 define and abs() ] > Signed-off-by: Nikunj A Dadhania > --- > target-ppc/helper.h | 3 +++ > target-ppc/int_helper.c | 23 +++++++++++++++++++++++ > target-ppc/translate.c | 15 ++++++++++++--- > 3 files changed, 38 insertions(+), 3 deletions(-) >=20 > diff --git a/target-ppc/helper.h b/target-ppc/helper.h > index 68fd19e..ff6287e 100644 > --- a/target-ppc/helper.h > +++ b/target-ppc/helper.h > @@ -118,6 +118,9 @@ DEF_HELPER_3(vsubudm, void, avr, avr, avr) > DEF_HELPER_3(vavgub, void, avr, avr, avr) > DEF_HELPER_3(vavguh, void, avr, avr, avr) > DEF_HELPER_3(vavguw, void, avr, avr, avr) > +DEF_HELPER_3(vabsdub, void, avr, avr, avr) > +DEF_HELPER_3(vabsduh, void, avr, avr, avr) > +DEF_HELPER_3(vabsduw, void, avr, avr, avr) > DEF_HELPER_3(vavgsb, void, avr, avr, avr) > DEF_HELPER_3(vavgsh, void, avr, avr, avr) > DEF_HELPER_3(vavgsw, void, avr, avr, avr) > diff --git a/target-ppc/int_helper.c b/target-ppc/int_helper.c > index 15947ad..c1b341c 100644 > --- a/target-ppc/int_helper.c > +++ b/target-ppc/int_helper.c > @@ -629,6 +629,29 @@ VAVG(w, s32, int64_t, u32, uint64_t) > #undef VAVG_DO > #undef VAVG > =20 > +#define VABSDU_DO(name, element, etype) \ You don't appear to actually use the type parameter. > +void helper_v##name(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \ > +{ \ > + int i; \ > + \ > + for (i =3D 0; i < ARRAY_SIZE(r->element); i++) { = \ > + r->element[i] =3D abs(a->element[i] - b->element[i]); = \ > + } \ > +} > + > +/* VABSDU - Vector absolute difference unsigned > + * name - instruction mnemonic suffix (b: byte, h: halfword, w: wor= d) > + * element - element type to access from vector > + * etype - internal data type to use for elements > + */ > +#define VABSDU(type, element, etype) \ > + VABSDU_DO(absdu##type, element, etype) > +VABSDU(b, u8, uint16_t) > +VABSDU(h, u16, uint32_t) > +VABSDU(w, u32, uint64_t) > +#undef VABSDU_DO > +#undef VABSDU > + > #define VCF(suffix, cvt, element) \ > void helper_vcf##suffix(CPUPPCState *env, ppc_avr_t *r, \ > ppc_avr_t *b, uint32_t uim) \ > diff --git a/target-ppc/translate.c b/target-ppc/translate.c > index 23ef538..b18e13f 100644 > --- a/target-ppc/translate.c > +++ b/target-ppc/translate.c > @@ -7373,8 +7373,17 @@ GEN_VXFORM(vminsh, 1, 13); > GEN_VXFORM(vminsw, 1, 14); > GEN_VXFORM(vminsd, 1, 15); > GEN_VXFORM(vavgub, 1, 16); > +GEN_VXFORM(vabsdub, 1, 16); > +GEN_VXFORM_DUAL(vavgub, PPC_ALTIVEC, PPC_NONE, \ > + vabsdub, PPC_NONE, PPC2_ISA300) > GEN_VXFORM(vavguh, 1, 17); > +GEN_VXFORM(vabsduh, 1, 17); > +GEN_VXFORM_DUAL(vavguh, PPC_ALTIVEC, PPC_NONE, \ > + vabsduh, PPC_NONE, PPC2_ISA300) > GEN_VXFORM(vavguw, 1, 18); > +GEN_VXFORM(vabsduw, 1, 18); > +GEN_VXFORM_DUAL(vavguw, PPC_ALTIVEC, PPC_NONE, \ > + vabsduw, PPC_NONE, PPC2_ISA300) > GEN_VXFORM(vavgsb, 1, 20); > GEN_VXFORM(vavgsh, 1, 21); > GEN_VXFORM(vavgsw, 1, 22); > @@ -10890,9 +10899,9 @@ GEN_VXFORM(vminsb, 1, 12), > GEN_VXFORM(vminsh, 1, 13), > GEN_VXFORM(vminsw, 1, 14), > GEN_VXFORM_207(vminsd, 1, 15), > -GEN_VXFORM(vavgub, 1, 16), > -GEN_VXFORM(vavguh, 1, 17), > -GEN_VXFORM(vavguw, 1, 18), > +GEN_VXFORM_DUAL(vavgub, vabsdub, 1, 16, PPC_ALTIVEC, PPC_NONE), > +GEN_VXFORM_DUAL(vavguh, vabsduh, 1, 17, PPC_ALTIVEC, PPC_NONE), > +GEN_VXFORM_DUAL(vavguw, vabsduw, 1, 18, PPC_ALTIVEC, PPC_NONE), > GEN_VXFORM(vavgsb, 1, 20), > GEN_VXFORM(vavgsh, 1, 21), > GEN_VXFORM(vavgsw, 1, 22), --=20 David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson --7GFA+bvAY1vP//DC Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJXmEw6AAoJEGw4ysog2bOSBuwQAKVRzWwgqJXwM0YgOMlRyKr5 p8s1dNlktKWGv2ywoBlK+zFP5hnVkb8R58Bl/nOkITH/5ZCiYgnobAC+kgw+d+5C sWiJBDwWZr81TDcJKoDCa3gApuL8bLkZqOmBDK1nAnZVsIGvn9SPymCSD49eS2UP RywhugKCaQm/WW8VBjs5Rt96n6IbwII8XYKsybNr+U9kbD6KmgK5F+6ebEEkcutR hUji092btometZTTC2DTVD/nwcgi+rdr524yl3Dria/Ob2l6bZIccIL7gL7OJMlE XWpyb+F7UiTmJYpMvrwLXGPhL2AxOXBAeLct7w7OBQnHTaX4Kc1FDoyT1CnzsTEF wtZbYeu32fYtn/eCNr112b0SLNAkAHgFMv3YPAMcARSY0UNJCN5dr1INw8bf28tW C+43LzEYOjQ/R6Lv2nyTrTM4ocP3HTWehDzmSNILxpw5ERQPvViOajI7iRhLuDiM KB8uRZDWaNZAt5MTpAO0QXbb5uZjcnQnec4FJlQisdFjDFm5iS8d+p2p/OzeMnZU pW6P5Zj1q5bVBl2gvw63OpzB/RwQ6V3vMXXlnqpK0TfolJzvj1ibTVHjhNWMB1kt +hNqfJL/ZTtOk48vbQUcnP2dWbOmvG9pqVrQsLnnitLAWUHhwLqZXtmezxvAW49P GMqKudwO/pG64ArM4+Ju =5gIB -----END PGP SIGNATURE----- --7GFA+bvAY1vP//DC--