From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29460 invoked by alias); 14 Jul 2011 07:50:15 -0000 Received: (qmail 29441 invoked by uid 22791); 14 Jul 2011 07:50:13 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from na3sys009aog122.obsmtp.com (HELO na3sys009aog122.obsmtp.com) (74.125.149.147) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 14 Jul 2011 07:49:38 +0000 Received: from sc-owa02.marvell.com ([65.219.4.130]) (using TLSv1) by na3sys009aob122.postini.com ([74.125.148.12]) with SMTP ID DSNKTh6fkWtnIum+6feZCP1PWrxRYWolqsQ+@postini.com; Thu, 14 Jul 2011 00:49:37 PDT Received: from SC-vEXCH2.marvell.com ([10.93.76.134]) by sc-owa02.marvell.com ([10.93.76.22]) with mapi; Thu, 14 Jul 2011 00:45:11 -0700 From: Xinyu Qi To: "gcc-patches@gcc.gnu.org" Date: Thu, 14 Jul 2011 09:02:00 -0000 Subject: RE: [PATCH, ARM, iWMMXt][4/5]: WMMX machine description Message-ID: <4737A960563B524DA805CA602BE04B306010E1F4E9@SC-VEXCH2.marvell.com> Content-Type: multipart/mixed; boundary="_002_4737A960563B524DA805CA602BE04B306010E1F4E9SCVEXCH2marve_" MIME-Version: 1.0 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-07/txt/msg01107.txt.bz2 --_002_4737A960563B524DA805CA602BE04B306010E1F4E9SCVEXCH2marve_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 2075 > Hi, >=20 > It is the fourth part of iWMMXt maintenance. >=20 Since "*cond_iwmmxt_movsi_insn" would be got rid of soon, I keep it unchang= ed. *config/arm/arm.c (arm_output_iwmmxt_shift_immediate): New function. (arm_output_iwmmxt_tinsr): Ditto. *config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): New prototype. (arm_output_iwmmxt_tinsr): Ditto. *config/arm/iwmmxt.md (WCGR0, WCGR1, WCGR2, WCGR3): New constant. (iwmmxt_psadbw, iwmmxt_walign, iwmmxt_tmrc, iwmmxt_tmcr): Delete. (iwmmxt_tbcstqi, iwmmxt_tbcsthi, iwmmxt_tbcstsi, *iwmmxt_clrv8qi, *iwmmxt_= clrv4hi, *iwmmxt_clrv2si): Rename... (tbcstv8qi, tbcstv4hi, tbsctv2si, iwmmxt_clrv8qi, iwmmxt_clrv4hi, iwmmxt_c= lrv2si): ...New pattern. (*and3_iwmmxt, *ior3_iwmmxt, *xor3_iwmmxt, rori3, = ashri3_iwmmxt, lshri3_iwmmxt, ashli3_iwmmxt, iwmmxt_walig= ni, iwmmxt_walignr, iwmmxt_walignr0, iwmmxt_walignr1, iwmmxt_walignr2, iwmm= xt_walignr3, iwmmxt_setwcgr0, iwmmxt_setwcgr1, iwmmxt_setwcgr2, iwmmxt_setw= cgr3, iwmmxt_getwcgr0, iwmmxt_getwcgr1, iwmmxt_getwcgr2, iwmmxt_getwcgr3): = New pattern. (All instruction patterns): Add wtype attribute. (*iwmmxt_arm_movdi, *iwmmxt_movsi_insn, iwmmxt_uavgrndv8qi3, iwmmxt_uavgrn= dv4hi3, iwmmxt_uavgv8qi3, iwmmxt_uavgv4hi3, iwmmxt_tinsrb, iwmmxt_tinsrh, i= wmmxt_tinsrw, eqv8qi3, eqv4hi3, eqv2si3, gtuv8qi3, gtuv4hi3, gtuv2si3, gtv8= qi3, gtv4hi3, gtv2si3, iwmmxt_wunpckihb, iwmmxt_wunpckihh, iwmmxt_wunpckihw= , iwmmxt_wunpckilb, iwmmxt_wunpckilh, iwmmxt_wunpckilw, iwmmxt_wunpckehub, = iwmmxt_wunpckehuh, iwmmxt_wunpckehuw, iwmmxt_wunpckehsb, iwmmxt_wunpckehsh,= iwmmxt_wunpckehsw, iwmmxt_wunpckelub, iwmmxt_wunpckeluh, iwmmxt_wunpckeluw= , iwmmxt_wunpckelsb, iwmmxt_wunpckelsh, iwmmxt_wunpckelsw, iwmmxt_wmadds, i= wmmxt_wmaddu, iwmmxt_wsadb, iwmmxt_wsadh, iwmmxt_wsadbz, iwmmxt_wsadhz): Re= vise. (iwmmxt2.md): Include. *config/arm/iwmmxt2.md: New file. *config/arm/iterators.md (VMMX2): New mode_iterator. *config/arm/arm.md (wtype): New attribute. *config/arm/t-arm (MD_INCLUDES): Add iwmmxt2.md. Thanks, Xinyu --_002_4737A960563B524DA805CA602BE04B306010E1F4E9SCVEXCH2marve_ Content-Type: application/x-gzip; name="4_wmmx_md.diff.gz" Content-Description: 4_wmmx_md.diff.gz Content-Disposition: attachment; filename="4_wmmx_md.diff.gz"; size=13061; creation-date="Wed, 13 Jul 2011 02:07:09 GMT"; modification-date="Wed, 13 Jul 2011 02:07:09 GMT" Content-Transfer-Encoding: base64 Content-length: 17707 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 zF+Rc0v53BWVKONzl+TaKqfLlGEbDJX1T8ak+hky6/S6S9AwdpoKsii2EWbp c4Xi2yii45i68e3AyYOnhdd7kuuq5Hpfcr0tuX4kud4Jz4wsg4WUz7lYyOos w0hWZxlGsjrLMOpIMcqenznoRfYig1DyyLqq/EmvkpUSqbGTSJchVO79XsF9 teB+v+B+u+D+UcF9TsD0UQ7VYZabWtZ4fApTRs9cDYtaoAjBohYoQrCoBTqF LZBGOENvku+JAmu/4bDHL7akL6p+ZtI6o+8qwpO+KIjG47SXHci0nC+S2V+Z 3ZTZX7GvkOm6nK+Q6SSrg8yWi85ClpjybuY808rw/397194UN67l/24+hSpV WxsuDekHgTx2t5aBJEMtIRkakjs7l2L7YWjXuLsZ202H+fR7JPkh25Is2bLd kO6qQHDbR9LR77zko6NAx7DyJxpdKWWeJ+px4d+CI5Rq0fzx5fU/b/x5qjRr LNKzi5Q0Wd2ZKnqaTLeclLk4Tk4qqbfCSI4FmlaVqsJ6q8vVQ6K2i+khkQ7s iGusp6VOnxkqItaVFNrJ9FPkVunziiTmlFcAXYkAdzUEuO60Hi0BdjZh8fMJ BasLi5/eEsEahcX1BG18eco6NK3MFweiL/qiLw75vpuhCHiz0NCP+Vss/nWa iX9zz9cObtvEv/XFlNXFv+Zj9bri37WJDquKfsUriDWG9YXiXaeZeFdVc/18 8a5K0MmPOquLePOj7YYi3o7IYxKsdhUJblXjbpmMc2RUI6R1mglp1WTUmsqK Meu7F7utjELO2lXD72NVQqmD7YxHbjz3tJU2ThQ0Jg7UUhx6apNVzvjV8IsR wgC4FvBaausx0DWZb6xtYdLg5RoGww5sxs1RqKpfBpZh8R0jR1+pD0oZa9P1 xZrEmzkph7STDM4KuR8i+5aDKm7ntVB1wsNU76RYrp9kEMooWq0timRl4guZ W7YE8E9lbiMrx7W6CbY8Ravrra/VlRXiLmR1E5P1rK1uUlrXxep662t1PbNW l+X/c7G6Selpzup6a2t1nace5Ha2VZaGdfXakwhyM0PfURu4ImqdBqJbxaUZ 56lHt+mpexbRLW9Qylir384qY+2JRred5xDddvRQVL+dVUXRU49u197OVhfW Vm1nG4hnlVH7xOPZBu1sdfFsGTvbQDyrjLUnGs9WY2fDe+oNa/XMbQNhLQOm 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 8f8HojDbP1T4AQA= --_002_4737A960563B524DA805CA602BE04B306010E1F4E9SCVEXCH2marve_--