From 31f8442be7b47d847ec33b2bc3585bb184b7609b Mon Sep 17 00:00:00 2001 From: Sofiane Naci Date: Mon, 1 Jul 2013 09:29:38 +0000 Subject: [PATCH] arm.md (attribute "wtype"): Delete. * arm.md (attribute "wtype"): Delete. Move attribute values from here to ... (attribute "type"): ... here, and prefix with "wmmx_". (attribute "core_cycles"): Update for attribute changes. * iwmmxt.md (tbcstv8qi): Update for attribute changes. (tbcstv4hi): Likewise. (tbcstv2si): Likewise. (iwmmxt_iordi3): Likewise. (iwmmxt_xordi3): Likewise. (iwmmxt_anddi3): Likewise. (iwmmxt_nanddi3): Likewise. (iwmmxt_arm_movdi): Likewise. (iwmmxt_movsi_insn): Likewise. (mov_internal): Likewise. (and3_iwmmxt): Likewise. (ior3_iwmmxt): Likewise. (xor3_iwmmxt): Likewise. (add3_iwmmxt): Likewise. (ssaddv8qi3): Likewise. (ssaddv4hi3): Likewise. (ssaddv2si3): Likewise. (usaddv8qi3): Likewise. (usaddv4hi3): Likewise. (usaddv2si3): Likewise. (sub3_iwmmxt): Likewise. (sssubv8qi3): Likewise. (sssubv4hi3): Likewise. (sssubv2si3): Likewise. (ussubv8qi3): Likewise. (ussubv4hi3): Likewise. (ussubv2si3): Likewise. (mulv4hi3_iwmmxt): Likewise. (smulv4hi3_highpart): Likewise. (umulv4hi3_highpart): Likewise. (iwmmxt_wmacs): Likewise. (iwmmxt_wmacsz): Likewise. (iwmmxt_wmacu): Likewise. (iwmmxt_wmacuz): Likewise. (iwmmxt_clrdi): Likewise. (iwmmxt_clrv8qi): Likewise. (iwmmxt_clr4hi): Likewise. (iwmmxt_clr2si): Likewise. (iwmmxt_uavgrndv8qi3): Likewise. (iwmmxt_uavgrndv4hi3): Likewise. (iwmmxt_uavgv8qi3): Likewise. (iwmmxt_uavgv4hi3): Likewise. (iwmmxt_tinsrb): Likewise. (iwmmxt_tinsrh): Likewise. (iwmmxt_tinsrw): Likewise. (iwmmxt_textrmub): Likewise. (iwmmxt_textrmsb): Likewise. (iwmmxt_textrmuh): Likewise. (iwmmxt_textrmsh): Likewise. (iwmmxt_textrmw): Likewise. (iwmxxt_wshufh): Likewise. (eqv8qi3): Likewise. (eqv4hi3): Likewise. (eqv2si3): Likewise. (gtuv8qi3): Likewise. (gtuv4hi3): Likewise. (gtuv2si3): Likewise. (gtv8qi3): Likewise. (gtv4hi3): Likewise. (gtv2si3): Likewise. (smax3_iwmmxt): Likewise. (umax3_iwmmxt): Likewise. (smin3_iwmmxt): Likewise. (umin3_iwmmxt): Likewise. (iwmmxt_wpackhss): Likewise. (iwmmxt_wpackwss): Likewise. (iwmmxt_wpackdss): Likewise. (iwmmxt_wpackhus): Likewise. (iwmmxt_wpackwus): Likewise. (iwmmxt_wpackdus): Likewise. (iwmmxt_wunpckihb): Likewise. (iwmmxt_wunpckihh): Likewise. (iwmmxt_wunpckihw): Likewise. (iwmmxt_wunpckilb): Likewise. (iwmmxt_wunpckilh): Likewise. (iwmmxt_wunpckilw): Likewise. (iwmmxt_wunpckehub): Likewise. (iwmmxt_wunpckehuh): Likewise. (iwmmxt_wunpckehuw): Likewise. (iwmmxt_wunpckehsb): Likewise. (iwmmxt_wunpckehsh): Likewise. (iwmmxt_wunpckehsw): Likewise. (iwmmxt_wunpckelub): Likewise. (iwmmxt_wunpckeluh): Likewise. (iwmmxt_wunpckeluw): Likewise. (iwmmxt_wunpckelsb): Likewise. (iwmmxt_wunpckelsh): Likewise. (iwmmxt_wunpckelsw): Likewise. (ror3): Likewise. (ashr3_iwmmxt): Likewise. (lshr3_iwmmxt): Likewise. (ashl3_iwmmxt): Likewise. (ror3_di): Likewise. (ashr3_di): Likewise. (lshr3_di): Likewise. (ashl3_di): Likewise. (iwmmxt_wmadds): Likewise. (iwmmxt_wmaddu): Likewise. (iwmmxt_tmia): Likewise. (iwmmxt_tmiaph): Likewise. (iwmmxt_tmiabb): Likewise. (iwmmxt_tmiatb): Likewise. (iwmmxt_tmiabt): Likewise. (iwmmxt_tmiatt): Likewise. (iwmmxt_tmovmskb): Likewise. (iwmmxt_tmovmskh): Likewise. (iwmmxt_tmovmskw): Likewise. (iwmmxt_waccb): Likewise. (iwmmxt_wacch): Likewise. (iwmmxt_waccw): Likewise. (iwmmxt_waligni): Likewise. (iwmmxt_walignr): Likewise. (iwmmxt_walignr0): Likewise. (iwmmxt_walignr1): Likewise. (iwmmxt_walignr2): Likewise. (iwmmxt_walignr3): Likewise. (iwmmxt_wsadb): Likewise. (iwmmxt_wsadh): Likewise. (iwmmxt_wsadbz): Likewise. (iwmmxt_wsadhz): Likewise. * iwmmxt2.md (iwmmxt_wabs3): Update for attribute changes. (iwmmxt_wabsdiffb): Likewise. (iwmmxt_wabsdiffh): Likewise. (iwmmxt_wabsdiffw): Likewise. (iwmmxt_waddsubhx): Likewise (iwmmxt_wsubaddhx): Likewise. (addc3): Likewise. (iwmmxt_avg4): Likewise. (iwmmxt_avg4r): Likewise. (iwmmxt_wmaddsx): Likewise. (iwmmxt_wmaddux): Likewise. (iwmmxt_wmaddsn): Likewise. (iwmmxt_wmaddun): Likewise. (iwmmxt_wmulwsm): Likewise. (iwmmxt_wmulwum): Likewise. (iwmmxt_wmulsmr): Likewise. (iwmmxt_wmulumr): Likewise. (iwmmxt_wmulwsmr): Likewise. (iwmmxt_wmulwumr): Likewise. (iwmmxt_wmulwl): Likewise. (iwmmxt_wqmulm): Likewise. (iwmmxt_wqmulwm): Likewise. (iwmmxt_wqmulmr): Likewise. (iwmmxt_wqmulwmr): Likewise. (iwmmxt_waddbhusm): Likewise. (iwmmxt_waddbhusl): Likewise. (iwmmxt_wqmiabb): Likewise. (iwmmxt_wqmiabt): Likewise. (iwmmxt_wqmiatb): Likewise. (iwmmxt_wqmiatt): Likewise. (iwmmxt_wqmiabbn): Likewise. (iwmmxt_wqmiabtn): Likewise. (iwmmxt_wqmiatbn): Likewise. (iwmmxt_wqmiattn): Likewise. (iwmmxt_wmiabb): Likewise. (iwmmxt_wmiabt): Likewise. (iwmmxt_wmiatb): Likewise. (iwmmxt_wmiatt): Likewise. (iwmmxt_wmiabbn): Likewise. (iwmmxt_wmiabtn): Likewise. (iwmmxt_wmiatbn): Likewise. (iwmmxt_wmiattn): Likewise. (iwmmxt_wmiawbb): Likewise. (iwmmxt_wmiawbt): Likewise. (iwmmxt_wmiawtb): Likewise. (iwmmxt_wmiawtt): Likewise. (iwmmxt_wmiawbbn): Likewise. (iwmmxt_wmiawbtn): Likewise. (iwmmxt_wmiawtbn): Likewise. (iwmmxt_wmiawttn): Likewise. (iwmmxt_wmerge): Likewise. (iwmmxt_tandc3): Likewise. (iwmmxt_torc3): Likewise. (iwmmxt_torvsc3): Likewise. (iwmmxt_textrc3): Likewise. * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes. (wmmxt_pack): Likewise. (wmmxt_mult_c1): Likewise. (wmmxt_mult_c2): Likewise. (wmmxt_alu_c1): Likewise. (wmmxt_alu_c2): Likewise. (wmmxt_alu_c3): Likewise. (wmmxt_transfer_c1): Likewise. (wmmxt_transfer_c2): Likewise. (wmmxt_transfer_c3): Likewise. (marvell_f_iwmmxt_wstr): Likewise. (marvell_f_iwmmxt_wldr): Likewise. From-SVN: r200576 --- gcc/ChangeLog | 194 ++++++++++++++++++++++ gcc/config/arm/arm.md | 145 ++++++++++++++++- gcc/config/arm/iwmmxt.md | 249 ++++++++++++++--------------- gcc/config/arm/iwmmxt2.md | 110 ++++++------- gcc/config/arm/marvell-f-iwmmxt.md | 34 ++-- 5 files changed, 531 insertions(+), 201 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 817cb08b5a4..a29ab3095c6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,197 @@ +2013-07-01 Sofiane Naci + + * arm.md (attribute "wtype"): Delete. Move attribute values from here + to ... + (attribute "type"): ... here, and prefix with "wmmx_". + (attribute "core_cycles"): Update for attribute changes. + * iwmmxt.md (tbcstv8qi): Update for attribute changes. + (tbcstv4hi): Likewise. + (tbcstv2si): Likewise. + (iwmmxt_iordi3): Likewise. + (iwmmxt_xordi3): Likewise. + (iwmmxt_anddi3): Likewise. + (iwmmxt_nanddi3): Likewise. + (iwmmxt_arm_movdi): Likewise. + (iwmmxt_movsi_insn): Likewise. + (mov_internal): Likewise. + (and3_iwmmxt): Likewise. + (ior3_iwmmxt): Likewise. + (xor3_iwmmxt): Likewise. + (add3_iwmmxt): Likewise. + (ssaddv8qi3): Likewise. + (ssaddv4hi3): Likewise. + (ssaddv2si3): Likewise. + (usaddv8qi3): Likewise. + (usaddv4hi3): Likewise. + (usaddv2si3): Likewise. + (sub3_iwmmxt): Likewise. + (sssubv8qi3): Likewise. + (sssubv4hi3): Likewise. + (sssubv2si3): Likewise. + (ussubv8qi3): Likewise. + (ussubv4hi3): Likewise. + (ussubv2si3): Likewise. + (mulv4hi3_iwmmxt): Likewise. + (smulv4hi3_highpart): Likewise. + (umulv4hi3_highpart): Likewise. + (iwmmxt_wmacs): Likewise. + (iwmmxt_wmacsz): Likewise. + (iwmmxt_wmacu): Likewise. + (iwmmxt_wmacuz): Likewise. + (iwmmxt_clrdi): Likewise. + (iwmmxt_clrv8qi): Likewise. + (iwmmxt_clr4hi): Likewise. + (iwmmxt_clr2si): Likewise. + (iwmmxt_uavgrndv8qi3): Likewise. + (iwmmxt_uavgrndv4hi3): Likewise. + (iwmmxt_uavgv8qi3): Likewise. + (iwmmxt_uavgv4hi3): Likewise. + (iwmmxt_tinsrb): Likewise. + (iwmmxt_tinsrh): Likewise. + (iwmmxt_tinsrw): Likewise. + (iwmmxt_textrmub): Likewise. + (iwmmxt_textrmsb): Likewise. + (iwmmxt_textrmuh): Likewise. + (iwmmxt_textrmsh): Likewise. + (iwmmxt_textrmw): Likewise. + (iwmxxt_wshufh): Likewise. + (eqv8qi3): Likewise. + (eqv4hi3): Likewise. + (eqv2si3): Likewise. + (gtuv8qi3): Likewise. + (gtuv4hi3): Likewise. + (gtuv2si3): Likewise. + (gtv8qi3): Likewise. + (gtv4hi3): Likewise. + (gtv2si3): Likewise. + (smax3_iwmmxt): Likewise. + (umax3_iwmmxt): Likewise. + (smin3_iwmmxt): Likewise. + (umin3_iwmmxt): Likewise. + (iwmmxt_wpackhss): Likewise. + (iwmmxt_wpackwss): Likewise. + (iwmmxt_wpackdss): Likewise. + (iwmmxt_wpackhus): Likewise. + (iwmmxt_wpackwus): Likewise. + (iwmmxt_wpackdus): Likewise. + (iwmmxt_wunpckihb): Likewise. + (iwmmxt_wunpckihh): Likewise. + (iwmmxt_wunpckihw): Likewise. + (iwmmxt_wunpckilb): Likewise. + (iwmmxt_wunpckilh): Likewise. + (iwmmxt_wunpckilw): Likewise. + (iwmmxt_wunpckehub): Likewise. + (iwmmxt_wunpckehuh): Likewise. + (iwmmxt_wunpckehuw): Likewise. + (iwmmxt_wunpckehsb): Likewise. + (iwmmxt_wunpckehsh): Likewise. + (iwmmxt_wunpckehsw): Likewise. + (iwmmxt_wunpckelub): Likewise. + (iwmmxt_wunpckeluh): Likewise. + (iwmmxt_wunpckeluw): Likewise. + (iwmmxt_wunpckelsb): Likewise. + (iwmmxt_wunpckelsh): Likewise. + (iwmmxt_wunpckelsw): Likewise. + (ror3): Likewise. + (ashr3_iwmmxt): Likewise. + (lshr3_iwmmxt): Likewise. + (ashl3_iwmmxt): Likewise. + (ror3_di): Likewise. + (ashr3_di): Likewise. + (lshr3_di): Likewise. + (ashl3_di): Likewise. + (iwmmxt_wmadds): Likewise. + (iwmmxt_wmaddu): Likewise. + (iwmmxt_tmia): Likewise. + (iwmmxt_tmiaph): Likewise. + (iwmmxt_tmiabb): Likewise. + (iwmmxt_tmiatb): Likewise. + (iwmmxt_tmiabt): Likewise. + (iwmmxt_tmiatt): Likewise. + (iwmmxt_tmovmskb): Likewise. + (iwmmxt_tmovmskh): Likewise. + (iwmmxt_tmovmskw): Likewise. + (iwmmxt_waccb): Likewise. + (iwmmxt_wacch): Likewise. + (iwmmxt_waccw): Likewise. + (iwmmxt_waligni): Likewise. + (iwmmxt_walignr): Likewise. + (iwmmxt_walignr0): Likewise. + (iwmmxt_walignr1): Likewise. + (iwmmxt_walignr2): Likewise. + (iwmmxt_walignr3): Likewise. + (iwmmxt_wsadb): Likewise. + (iwmmxt_wsadh): Likewise. + (iwmmxt_wsadbz): Likewise. + (iwmmxt_wsadhz): Likewise. + * iwmmxt2.md (iwmmxt_wabs3): Update for attribute changes. + (iwmmxt_wabsdiffb): Likewise. + (iwmmxt_wabsdiffh): Likewise. + (iwmmxt_wabsdiffw): Likewise. + (iwmmxt_waddsubhx): Likewise + (iwmmxt_wsubaddhx): Likewise. + (addc3): Likewise. + (iwmmxt_avg4): Likewise. + (iwmmxt_avg4r): Likewise. + (iwmmxt_wmaddsx): Likewise. + (iwmmxt_wmaddux): Likewise. + (iwmmxt_wmaddsn): Likewise. + (iwmmxt_wmaddun): Likewise. + (iwmmxt_wmulwsm): Likewise. + (iwmmxt_wmulwum): Likewise. + (iwmmxt_wmulsmr): Likewise. + (iwmmxt_wmulumr): Likewise. + (iwmmxt_wmulwsmr): Likewise. + (iwmmxt_wmulwumr): Likewise. + (iwmmxt_wmulwl): Likewise. + (iwmmxt_wqmulm): Likewise. + (iwmmxt_wqmulwm): Likewise. + (iwmmxt_wqmulmr): Likewise. + (iwmmxt_wqmulwmr): Likewise. + (iwmmxt_waddbhusm): Likewise. + (iwmmxt_waddbhusl): Likewise. + (iwmmxt_wqmiabb): Likewise. + (iwmmxt_wqmiabt): Likewise. + (iwmmxt_wqmiatb): Likewise. + (iwmmxt_wqmiatt): Likewise. + (iwmmxt_wqmiabbn): Likewise. + (iwmmxt_wqmiabtn): Likewise. + (iwmmxt_wqmiatbn): Likewise. + (iwmmxt_wqmiattn): Likewise. + (iwmmxt_wmiabb): Likewise. + (iwmmxt_wmiabt): Likewise. + (iwmmxt_wmiatb): Likewise. + (iwmmxt_wmiatt): Likewise. + (iwmmxt_wmiabbn): Likewise. + (iwmmxt_wmiabtn): Likewise. + (iwmmxt_wmiatbn): Likewise. + (iwmmxt_wmiattn): Likewise. + (iwmmxt_wmiawbb): Likewise. + (iwmmxt_wmiawbt): Likewise. + (iwmmxt_wmiawtb): Likewise. + (iwmmxt_wmiawtt): Likewise. + (iwmmxt_wmiawbbn): Likewise. + (iwmmxt_wmiawbtn): Likewise. + (iwmmxt_wmiawtbn): Likewise. + (iwmmxt_wmiawttn): Likewise. + (iwmmxt_wmerge): Likewise. + (iwmmxt_tandc3): Likewise. + (iwmmxt_torc3): Likewise. + (iwmmxt_torvsc3): Likewise. + (iwmmxt_textrc3): Likewise. + * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes. + (wmmxt_pack): Likewise. + (wmmxt_mult_c1): Likewise. + (wmmxt_mult_c2): Likewise. + (wmmxt_alu_c1): Likewise. + (wmmxt_alu_c2): Likewise. + (wmmxt_alu_c3): Likewise. + (wmmxt_transfer_c1): Likewise. + (wmmxt_transfer_c2): Likewise. + (wmmxt_transfer_c3): Likewise. + (marvell_f_iwmmxt_wstr): Likewise. + (marvell_f_iwmmxt_wldr): Likewise. + 2013-06-29 Yufeng Zhang * config/aarch64/aarch64.c: Remove junk from the beginning of the diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index c464eddebd4..89e7b54e34f 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -335,6 +335,70 @@ ; umlals unsigned multiply accumulate long, flag setting. ; umull unsigned multiply long. ; umulls unsigned multiply long, flag setting. +; +; The classification below is for instructions used by the Wireless MMX +; Technology. Each attribute value is used to classify an instruction of the +; same name or family. +; +; wmmx_tandc +; wmmx_tbcst +; wmmx_textrc +; wmmx_textrm +; wmmx_tinsr +; wmmx_tmcr +; wmmx_tmcrr +; wmmx_tmia +; wmmx_tmiaph +; wmmx_tmiaxy +; wmmx_tmrc +; wmmx_tmrrc +; wmmx_tmovmsk +; wmmx_torc +; wmmx_torvsc +; wmmx_wabs +; wmmx_wdiff +; wmmx_wacc +; wmmx_wadd +; wmmx_waddbhus +; wmmx_waddsubhx +; wmmx_waligni +; wmmx_walignr +; wmmx_wand +; wmmx_wandn +; wmmx_wavg2 +; wmmx_wavg4 +; wmmx_wcmpeq +; wmmx_wcmpgt +; wmmx_wmac +; wmmx_wmadd +; wmmx_wmax +; wmmx_wmerge +; wmmx_wmiawxy +; wmmx_wmiaxy +; wmmx_wmin +; wmmx_wmov +; wmmx_wmul +; wmmx_wmulw +; wmmx_wldr +; wmmx_wor +; wmmx_wpack +; wmmx_wqmiaxy +; wmmx_wqmulm +; wmmx_wqmulwm +; wmmx_wror +; wmmx_wsad +; wmmx_wshufh +; wmmx_wsll +; wmmx_wsra +; wmmx_wsrl +; wmmx_wstr +; wmmx_wsub +; wmmx_wsubaddhx +; wmmx_wunpckeh +; wmmx_wunpckel +; wmmx_wunpckih +; wmmx_wunpckil +; wmmx_wxor (define_attr "type" "simple_alu_imm,\ @@ -419,7 +483,66 @@ smlald,\ smlsld,\ sdiv,\ - udiv" + udiv,\ + wmmx_tandc,\ + wmmx_tbcst,\ + wmmx_textrc,\ + wmmx_textrm,\ + wmmx_tinsr,\ + wmmx_tmcr,\ + wmmx_tmcrr,\ + wmmx_tmia,\ + wmmx_tmiaph,\ + wmmx_tmiaxy,\ + wmmx_tmrc,\ + wmmx_tmrrc,\ + wmmx_tmovmsk,\ + wmmx_torc,\ + wmmx_torvsc,\ + wmmx_wabs,\ + wmmx_wabsdiff,\ + wmmx_wacc,\ + wmmx_wadd,\ + wmmx_waddbhus,\ + wmmx_waddsubhx,\ + wmmx_waligni,\ + wmmx_walignr,\ + wmmx_wand,\ + wmmx_wandn,\ + wmmx_wavg2,\ + wmmx_wavg4,\ + wmmx_wcmpeq,\ + wmmx_wcmpgt,\ + wmmx_wmac,\ + wmmx_wmadd,\ + wmmx_wmax,\ + wmmx_wmerge,\ + wmmx_wmiawxy,\ + wmmx_wmiaxy,\ + wmmx_wmin,\ + wmmx_wmov,\ + wmmx_wmul,\ + wmmx_wmulw,\ + wmmx_wldr,\ + wmmx_wor,\ + wmmx_wpack,\ + wmmx_wqmiaxy,\ + wmmx_wqmulm,\ + wmmx_wqmulwm,\ + wmmx_wror,\ + wmmx_wsad,\ + wmmx_wshufh,\ + wmmx_wsll,\ + wmmx_wsra,\ + wmmx_wsrl,\ + wmmx_wstr,\ + wmmx_wsub,\ + wmmx_wsubaddhx,\ + wmmx_wunpckeh,\ + wmmx_wunpckel,\ + wmmx_wunpckih,\ + wmmx_wunpckil,\ + wmmx_wxor" (const_string "alu_reg")) ; Is this an (integer side) multiply with a 32-bit (or smaller) result? @@ -439,10 +562,6 @@ (const_string "yes") (const_string "no"))) -; wtype for WMMX insn scheduling purposes. -(define_attr "wtype" - "none,wor,wxor,wand,wandn,wmov,tmcrr,tmrrc,wldr,wstr,tmcr,tmrc,wadd,wsub,wmul,wmac,wavg2,tinsr,textrm,wshufh,wcmpeq,wcmpgt,wmax,wmin,wpack,wunpckih,wunpckil,wunpckeh,wunpckel,wror,wsra,wsrl,wsll,wmadd,tmia,tmiaph,tmiaxy,tbcst,tmovmsk,wacc,waligni,walignr,tandc,textrc,torc,torvsc,wsad,wabs,wabsdiff,waddsubhx,wsubaddhx,wavg4,wmulw,wqmulm,wqmulwm,waddbhus,wqmiaxy,wmiaxy,wmiawxy,wmerge" (const_string "none")) - ; Load scheduling, set from the arm_ld_sched variable ; initialized by arm_option_override() (define_attr "ldsched" "no,yes" (const (symbol_ref "arm_ld_sched"))) @@ -567,9 +686,19 @@ ; than one on the main cpu execution unit. (define_attr "core_cycles" "single,multi" (if_then_else (eq_attr "type" - "simple_alu_imm,alu_reg,\ - simple_alu_shift,alu_shift,\ - float,fdivd,fdivs") + "simple_alu_imm, alu_reg,\ + simple_alu_shift, alu_shift, float, fdivd, fdivs,\ + wmmx_wor, wmmx_wxor, wmmx_wand, wmmx_wandn, wmmx_wmov, wmmx_tmcrr,\ + wmmx_tmrrc, wmmx_wldr, wmmx_wstr, wmmx_tmcr, wmmx_tmrc, wmmx_wadd,\ + wmmx_wsub, wmmx_wmul, wmmx_wmac, wmmx_wavg2, wmmx_tinsr, wmmx_textrm,\ + wmmx_wshufh, wmmx_wcmpeq, wmmx_wcmpgt, wmmx_wmax, wmmx_wmin, wmmx_wpack,\ + wmmx_wunpckih, wmmx_wunpckil, wmmx_wunpckeh, wmmx_wunpckel, wmmx_wror,\ + wmmx_wsra, wmmx_wsrl, wmmx_wsll, wmmx_wmadd, wmmx_tmia, wmmx_tmiaph,\ + wmmx_tmiaxy, wmmx_tbcst, wmmx_tmovmsk, wmmx_wacc, wmmx_waligni,\ + wmmx_walignr, wmmx_tandc, wmmx_textrc, wmmx_torc, wmmx_torvsc, wmmx_wsad,\ + wmmx_wabs, wmmx_wabsdiff, wmmx_waddsubhx, wmmx_wsubaddhx, wmmx_wavg4,\ + wmmx_wmulw, wmmx_wqmulm, wmmx_wqmulwm, wmmx_waddbhus, wmmx_wqmiaxy,\ + wmmx_wmiaxy, wmmx_wmiawxy, wmmx_wmerge") (const_string "single") (const_string "multi"))) diff --git a/gcc/config/arm/iwmmxt.md b/gcc/config/arm/iwmmxt.md index ac4867b0d29..f1f0a5c5150 100644 --- a/gcc/config/arm/iwmmxt.md +++ b/gcc/config/arm/iwmmxt.md @@ -33,7 +33,7 @@ "TARGET_REALLY_IWMMXT" "tbcstb%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tbcst")] + (set_attr "type" "wmmx_tbcst")] ) (define_insn "tbcstv4hi" @@ -42,7 +42,7 @@ "TARGET_REALLY_IWMMXT" "tbcsth%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tbcst")] + (set_attr "type" "wmmx_tbcst")] ) (define_insn "tbcstv2si" @@ -51,7 +51,7 @@ "TARGET_REALLY_IWMMXT" "tbcstw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tbcst")] + (set_attr "type" "wmmx_tbcst")] ) (define_insn "iwmmxt_iordi3" @@ -65,7 +65,7 @@ #" [(set_attr "predicable" "yes") (set_attr "length" "4,8,8") - (set_attr "wtype" "wor,none,none")] + (set_attr "type" "wmmx_wor,*,*")] ) (define_insn "iwmmxt_xordi3" @@ -79,7 +79,7 @@ #" [(set_attr "predicable" "yes") (set_attr "length" "4,8,8") - (set_attr "wtype" "wxor,none,none")] + (set_attr "type" "wmmx_wxor,*,*")] ) (define_insn "iwmmxt_anddi3" @@ -93,7 +93,7 @@ #" [(set_attr "predicable" "yes") (set_attr "length" "4,8,8") - (set_attr "wtype" "wand,none,none")] + (set_attr "type" "wmmx_wand,*,*")] ) (define_insn "iwmmxt_nanddi3" @@ -103,7 +103,7 @@ "TARGET_REALLY_IWMMXT" "wandn%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wandn")] + (set_attr "type" "wmmx_wandn")] ) (define_insn "*iwmmxt_arm_movdi" @@ -155,10 +155,9 @@ (const_int 8) (const_int 4))] (const_int 4))) - (set_attr "type" "*,*,*,load2,store2,*,*,*,*,*,r_2_f,f_2_r,ffarithd,f_loadd,f_stored") + (set_attr "type" "*,*,*,load2,store2,wmmx_wmov,wmmx_tmcrr,wmmx_tmrrc,wmmx_wldr,wmmx_wstr,r_2_f,f_2_r,ffarithd,f_loadd,f_stored") (set_attr "arm_pool_range" "*,*,*,1020,*,*,*,*,*,*,*,*,*,1020,*") - (set_attr "arm_neg_pool_range" "*,*,*,1008,*,*,*,*,*,*,*,*,*,1008,*") - (set_attr "wtype" "*,*,*,*,*,wmov,tmcrr,tmrrc,wldr,wstr,*,*,*,*,*")] + (set_attr "arm_neg_pool_range" "*,*,*,1008,*,*,*,*,*,*,*,*,*,1008,*")] ) (define_insn "*iwmmxt_movsi_insn" @@ -188,7 +187,7 @@ default: gcc_unreachable (); }" - [(set_attr "type" "*,*,*,*,load1,store1,*,*,*,*,r_2_f,f_2_r,fcpys,f_loads,f_stores") + [(set_attr "type" "*,*,*,*,load1,store1,wmmx_tmcr,wmmx_tmrc,wmmx_wldr,wmmx_wstr,r_2_f,f_2_r,fcpys,f_loads,f_stores") (set_attr "length" "*,*,*,*,*, *,*,*, 16, *,*,*,*,*,*") (set_attr "pool_range" "*,*,*,*,4096, *,*,*,1024, *,*,*,*,1020,*") (set_attr "neg_pool_range" "*,*,*,*,4084, *,*,*, *, 1012,*,*,*,1008,*") @@ -200,8 +199,7 @@ ;; Also - we have to pretend that these insns clobber the condition code ;; bits as otherwise arm_final_prescan_insn() will try to conditionalize ;; them. - (set_attr "conds" "clob") - (set_attr "wtype" "*,*,*,*,*,*,tmcr,tmrc,wldr,wstr,*,*,*,*,*")] + (set_attr "conds" "clob")] ) ;; Because iwmmxt_movsi_insn is not predicable, we provide the @@ -249,10 +247,9 @@ }" [(set_attr "predicable" "yes") (set_attr "length" "4, 4, 4,4,4,8, 8,8") - (set_attr "type" "*,*,*,*,*,*,load1,store1") + (set_attr "type" "wmmx_wmov,wmmx_wstr,wmmx_wldr,wmmx_tmrrc,wmmx_tmcrr,*,load1,store1") (set_attr "pool_range" "*, *, 256,*,*,*, 256,*") - (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*") - (set_attr "wtype" "wmov,wstr,wldr,tmrrc,tmcrr,*,*,*")] + (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*")] ) (define_expand "iwmmxt_setwcgr0" @@ -318,7 +315,7 @@ "TARGET_REALLY_IWMMXT" "wand\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wand")] + (set_attr "type" "wmmx_wand")] ) (define_insn "*ior3_iwmmxt" @@ -328,7 +325,7 @@ "TARGET_REALLY_IWMMXT" "wor\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wor")] + (set_attr "type" "wmmx_wor")] ) (define_insn "*xor3_iwmmxt" @@ -338,7 +335,7 @@ "TARGET_REALLY_IWMMXT" "wxor\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wxor")] + (set_attr "type" "wmmx_wxor")] ) @@ -351,7 +348,7 @@ "TARGET_REALLY_IWMMXT" "wadd%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "ssaddv8qi3" @@ -361,7 +358,7 @@ "TARGET_REALLY_IWMMXT" "waddbss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "ssaddv4hi3" @@ -371,7 +368,7 @@ "TARGET_REALLY_IWMMXT" "waddhss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "ssaddv2si3" @@ -381,7 +378,7 @@ "TARGET_REALLY_IWMMXT" "waddwss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "usaddv8qi3" @@ -391,7 +388,7 @@ "TARGET_REALLY_IWMMXT" "waddbus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "usaddv4hi3" @@ -401,7 +398,7 @@ "TARGET_REALLY_IWMMXT" "waddhus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "usaddv2si3" @@ -411,7 +408,7 @@ "TARGET_REALLY_IWMMXT" "waddwus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "*sub3_iwmmxt" @@ -421,7 +418,7 @@ "TARGET_REALLY_IWMMXT" "wsub%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "sssubv8qi3" @@ -431,7 +428,7 @@ "TARGET_REALLY_IWMMXT" "wsubbss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "sssubv4hi3" @@ -441,7 +438,7 @@ "TARGET_REALLY_IWMMXT" "wsubhss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "sssubv2si3" @@ -451,7 +448,7 @@ "TARGET_REALLY_IWMMXT" "wsubwss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "ussubv8qi3" @@ -461,7 +458,7 @@ "TARGET_REALLY_IWMMXT" "wsubbus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "ussubv4hi3" @@ -471,7 +468,7 @@ "TARGET_REALLY_IWMMXT" "wsubhus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "ussubv2si3" @@ -481,7 +478,7 @@ "TARGET_REALLY_IWMMXT" "wsubwus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "*mulv4hi3_iwmmxt" @@ -491,7 +488,7 @@ "TARGET_REALLY_IWMMXT" "wmulul%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "smulv4hi3_highpart" @@ -504,7 +501,7 @@ "TARGET_REALLY_IWMMXT" "wmulsm%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "umulv4hi3_highpart" @@ -517,7 +514,7 @@ "TARGET_REALLY_IWMMXT" "wmulum%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "iwmmxt_wmacs" @@ -528,7 +525,7 @@ "TARGET_REALLY_IWMMXT" "wmacs%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmac")] + (set_attr "type" "wmmx_wmac")] ) (define_insn "iwmmxt_wmacsz" @@ -538,7 +535,7 @@ "TARGET_REALLY_IWMMXT" "wmacsz%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmac")] + (set_attr "type" "wmmx_wmac")] ) (define_insn "iwmmxt_wmacu" @@ -549,7 +546,7 @@ "TARGET_REALLY_IWMMXT" "wmacu%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmac")] + (set_attr "type" "wmmx_wmac")] ) (define_insn "iwmmxt_wmacuz" @@ -559,7 +556,7 @@ "TARGET_REALLY_IWMMXT" "wmacuz%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmac")] + (set_attr "type" "wmmx_wmac")] ) ;; Same as xordi3, but don't show input operands so that we don't think @@ -570,7 +567,7 @@ "TARGET_REALLY_IWMMXT" "wxor%?\\t%0, %0, %0" [(set_attr "predicable" "yes") - (set_attr "wtype" "wxor")] + (set_attr "type" "wmmx_wxor")] ) ;; Seems like cse likes to generate these, so we have to support them. @@ -584,7 +581,7 @@ "TARGET_REALLY_IWMMXT" "wxor%?\\t%0, %0, %0" [(set_attr "predicable" "yes") - (set_attr "wtype" "wxor")] + (set_attr "type" "wmmx_wxor")] ) (define_insn "iwmmxt_clrv4hi" @@ -594,7 +591,7 @@ "TARGET_REALLY_IWMMXT" "wxor%?\\t%0, %0, %0" [(set_attr "predicable" "yes") - (set_attr "wtype" "wxor")] + (set_attr "type" "wmmx_wxor")] ) (define_insn "iwmmxt_clrv2si" @@ -603,7 +600,7 @@ "TARGET_REALLY_IWMMXT" "wxor%?\\t%0, %0, %0" [(set_attr "predicable" "yes") - (set_attr "wtype" "wxor")] + (set_attr "type" "wmmx_wxor")] ) ;; Unsigned averages/sum of absolute differences @@ -627,7 +624,7 @@ "TARGET_REALLY_IWMMXT" "wavg2br%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg2")] + (set_attr "type" "wmmx_wavg2")] ) (define_insn "iwmmxt_uavgrndv4hi3" @@ -645,7 +642,7 @@ "TARGET_REALLY_IWMMXT" "wavg2hr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg2")] + (set_attr "type" "wmmx_wavg2")] ) (define_insn "iwmmxt_uavgv8qi3" @@ -658,7 +655,7 @@ "TARGET_REALLY_IWMMXT" "wavg2b%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg2")] + (set_attr "type" "wmmx_wavg2")] ) (define_insn "iwmmxt_uavgv4hi3" @@ -671,7 +668,7 @@ "TARGET_REALLY_IWMMXT" "wavg2h%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg2")] + (set_attr "type" "wmmx_wavg2")] ) ;; Insert/extract/shuffle @@ -690,7 +687,7 @@ } " [(set_attr "predicable" "yes") - (set_attr "wtype" "tinsr")] + (set_attr "type" "wmmx_tinsr")] ) (define_insn "iwmmxt_tinsrh" @@ -707,7 +704,7 @@ } " [(set_attr "predicable" "yes") - (set_attr "wtype" "tinsr")] + (set_attr "type" "wmmx_tinsr")] ) (define_insn "iwmmxt_tinsrw" @@ -724,7 +721,7 @@ } " [(set_attr "predicable" "yes") - (set_attr "wtype" "tinsr")] + (set_attr "type" "wmmx_tinsr")] ) (define_insn "iwmmxt_textrmub" @@ -735,7 +732,7 @@ "TARGET_REALLY_IWMMXT" "textrmub%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrm")] + (set_attr "type" "wmmx_textrm")] ) (define_insn "iwmmxt_textrmsb" @@ -746,7 +743,7 @@ "TARGET_REALLY_IWMMXT" "textrmsb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrm")] + (set_attr "type" "wmmx_textrm")] ) (define_insn "iwmmxt_textrmuh" @@ -757,7 +754,7 @@ "TARGET_REALLY_IWMMXT" "textrmuh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrm")] + (set_attr "type" "wmmx_textrm")] ) (define_insn "iwmmxt_textrmsh" @@ -768,7 +765,7 @@ "TARGET_REALLY_IWMMXT" "textrmsh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrm")] + (set_attr "type" "wmmx_textrm")] ) ;; There are signed/unsigned variants of this instruction, but they are @@ -780,7 +777,7 @@ "TARGET_REALLY_IWMMXT" "textrmsw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrm")] + (set_attr "type" "wmmx_textrm")] ) (define_insn "iwmmxt_wshufh" @@ -790,7 +787,7 @@ "TARGET_REALLY_IWMMXT" "wshufh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wshufh")] + (set_attr "type" "wmmx_wshufh")] ) ;; Mask-generating comparisons @@ -812,7 +809,7 @@ "TARGET_REALLY_IWMMXT" "wcmpeqb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpeq")] + (set_attr "type" "wmmx_wcmpeq")] ) (define_insn "eqv4hi3" @@ -823,7 +820,7 @@ "TARGET_REALLY_IWMMXT" "wcmpeqh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpeq")] + (set_attr "type" "wmmx_wcmpeq")] ) (define_insn "eqv2si3" @@ -835,7 +832,7 @@ "TARGET_REALLY_IWMMXT" "wcmpeqw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpeq")] + (set_attr "type" "wmmx_wcmpeq")] ) (define_insn "gtuv8qi3" @@ -846,7 +843,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtub%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) (define_insn "gtuv4hi3" @@ -857,7 +854,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtuh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) (define_insn "gtuv2si3" @@ -868,7 +865,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtuw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) (define_insn "gtv8qi3" @@ -879,7 +876,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtsb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) (define_insn "gtv4hi3" @@ -890,7 +887,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtsh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) (define_insn "gtv2si3" @@ -901,7 +898,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtsw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) ;; Max/min insns @@ -913,7 +910,7 @@ "TARGET_REALLY_IWMMXT" "wmaxs%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmax")] + (set_attr "type" "wmmx_wmax")] ) (define_insn "*umax3_iwmmxt" @@ -923,7 +920,7 @@ "TARGET_REALLY_IWMMXT" "wmaxu%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmax")] + (set_attr "type" "wmmx_wmax")] ) (define_insn "*smin3_iwmmxt" @@ -933,7 +930,7 @@ "TARGET_REALLY_IWMMXT" "wmins%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmin")] + (set_attr "type" "wmmx_wmin")] ) (define_insn "*umin3_iwmmxt" @@ -943,7 +940,7 @@ "TARGET_REALLY_IWMMXT" "wminu%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmin")] + (set_attr "type" "wmmx_wmin")] ) ;; Pack/unpack insns. @@ -956,7 +953,7 @@ "TARGET_REALLY_IWMMXT" "wpackhss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wpackwss" @@ -967,7 +964,7 @@ "TARGET_REALLY_IWMMXT" "wpackwss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wpackdss" @@ -978,7 +975,7 @@ "TARGET_REALLY_IWMMXT" "wpackdss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wpackhus" @@ -989,7 +986,7 @@ "TARGET_REALLY_IWMMXT" "wpackhus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wpackwus" @@ -1000,7 +997,7 @@ "TARGET_REALLY_IWMMXT" "wpackwus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wpackdus" @@ -1011,7 +1008,7 @@ "TARGET_REALLY_IWMMXT" "wpackdus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wunpckihb" @@ -1039,7 +1036,7 @@ "TARGET_REALLY_IWMMXT" "wunpckihb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckih")] + (set_attr "type" "wmmx_wunpckih")] ) (define_insn "iwmmxt_wunpckihh" @@ -1059,7 +1056,7 @@ "TARGET_REALLY_IWMMXT" "wunpckihh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckih")] + (set_attr "type" "wmmx_wunpckih")] ) (define_insn "iwmmxt_wunpckihw" @@ -1075,7 +1072,7 @@ "TARGET_REALLY_IWMMXT" "wunpckihw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckih")] + (set_attr "type" "wmmx_wunpckih")] ) (define_insn "iwmmxt_wunpckilb" @@ -1103,7 +1100,7 @@ "TARGET_REALLY_IWMMXT" "wunpckilb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckil")] + (set_attr "type" "wmmx_wunpckil")] ) (define_insn "iwmmxt_wunpckilh" @@ -1123,7 +1120,7 @@ "TARGET_REALLY_IWMMXT" "wunpckilh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckil")] + (set_attr "type" "wmmx_wunpckil")] ) (define_insn "iwmmxt_wunpckilw" @@ -1139,7 +1136,7 @@ "TARGET_REALLY_IWMMXT" "wunpckilw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckil")] + (set_attr "type" "wmmx_wunpckil")] ) (define_insn "iwmmxt_wunpckehub" @@ -1151,7 +1148,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehub%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckehuh" @@ -1162,7 +1159,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehuh%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckehuw" @@ -1173,7 +1170,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehuw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckehsb" @@ -1185,7 +1182,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehsb%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckehsh" @@ -1196,7 +1193,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehsh%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckehsw" @@ -1207,7 +1204,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehsw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckelub" @@ -1219,7 +1216,7 @@ "TARGET_REALLY_IWMMXT" "wunpckelub%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) (define_insn "iwmmxt_wunpckeluh" @@ -1230,7 +1227,7 @@ "TARGET_REALLY_IWMMXT" "wunpckeluh%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) (define_insn "iwmmxt_wunpckeluw" @@ -1241,7 +1238,7 @@ "TARGET_REALLY_IWMMXT" "wunpckeluw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) (define_insn "iwmmxt_wunpckelsb" @@ -1253,7 +1250,7 @@ "TARGET_REALLY_IWMMXT" "wunpckelsb%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) (define_insn "iwmmxt_wunpckelsh" @@ -1264,7 +1261,7 @@ "TARGET_REALLY_IWMMXT" "wunpckelsh%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) (define_insn "iwmmxt_wunpckelsw" @@ -1275,7 +1272,7 @@ "TARGET_REALLY_IWMMXT" "wunpckelsw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) ;; Shifts @@ -1298,7 +1295,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wror, wror")] + (set_attr "type" "wmmx_wror, wmmx_wror")] ) (define_insn "ashr3_iwmmxt" @@ -1319,7 +1316,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsra, wsra")] + (set_attr "type" "wmmx_wsra, wmmx_wsra")] ) (define_insn "lshr3_iwmmxt" @@ -1340,7 +1337,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsrl, wsrl")] + (set_attr "type" "wmmx_wsrl, wmmx_wsrl")] ) (define_insn "ashl3_iwmmxt" @@ -1361,7 +1358,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsll, wsll")] + (set_attr "type" "wmmx_wsll, wmmx_wsll")] ) (define_insn "ror3_di" @@ -1382,7 +1379,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wror, wror")] + (set_attr "type" "wmmx_wror, wmmx_wror")] ) (define_insn "ashr3_di" @@ -1403,7 +1400,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsra, wsra")] + (set_attr "type" "wmmx_wsra, wmmx_wsra")] ) (define_insn "lshr3_di" @@ -1424,7 +1421,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsrl, wsrl")] + (set_attr "type" "wmmx_wsrl, wmmx_wsrl")] ) (define_insn "ashl3_di" @@ -1445,7 +1442,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsll, wsll")] + (set_attr "type" "wmmx_wsll, wmmx_wsll")] ) (define_insn "iwmmxt_wmadds" @@ -1464,7 +1461,7 @@ "TARGET_REALLY_IWMMXT" "wmadds%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_wmaddu" @@ -1483,7 +1480,7 @@ "TARGET_REALLY_IWMMXT" "wmaddu%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_tmia" @@ -1496,7 +1493,7 @@ "TARGET_REALLY_IWMMXT" "tmia%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmia")] + (set_attr "type" "wmmx_tmia")] ) (define_insn "iwmmxt_tmiaph" @@ -1514,7 +1511,7 @@ "TARGET_REALLY_IWMMXT" "tmiaph%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmiaph")] + (set_attr "type" "wmmx_tmiaph")] ) (define_insn "iwmmxt_tmiabb" @@ -1527,7 +1524,7 @@ "TARGET_REALLY_IWMMXT" "tmiabb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmiaxy")] + (set_attr "type" "wmmx_tmiaxy")] ) (define_insn "iwmmxt_tmiatb" @@ -1544,7 +1541,7 @@ "TARGET_REALLY_IWMMXT" "tmiatb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmiaxy")] + (set_attr "type" "wmmx_tmiaxy")] ) (define_insn "iwmmxt_tmiabt" @@ -1561,7 +1558,7 @@ "TARGET_REALLY_IWMMXT" "tmiabt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmiaxy")] + (set_attr "type" "wmmx_tmiaxy")] ) (define_insn "iwmmxt_tmiatt" @@ -1580,7 +1577,7 @@ "TARGET_REALLY_IWMMXT" "tmiatt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmiaxy")] + (set_attr "type" "wmmx_tmiaxy")] ) (define_insn "iwmmxt_tmovmskb" @@ -1589,7 +1586,7 @@ "TARGET_REALLY_IWMMXT" "tmovmskb%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmovmsk")] + (set_attr "type" "wmmx_tmovmsk")] ) (define_insn "iwmmxt_tmovmskh" @@ -1598,7 +1595,7 @@ "TARGET_REALLY_IWMMXT" "tmovmskh%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmovmsk")] + (set_attr "type" "wmmx_tmovmsk")] ) (define_insn "iwmmxt_tmovmskw" @@ -1607,7 +1604,7 @@ "TARGET_REALLY_IWMMXT" "tmovmskw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmovmsk")] + (set_attr "type" "wmmx_tmovmsk")] ) (define_insn "iwmmxt_waccb" @@ -1616,7 +1613,7 @@ "TARGET_REALLY_IWMMXT" "waccb%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wacc")] + (set_attr "type" "wmmx_wacc")] ) (define_insn "iwmmxt_wacch" @@ -1625,7 +1622,7 @@ "TARGET_REALLY_IWMMXT" "wacch%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wacc")] + (set_attr "type" "wmmx_wacc")] ) (define_insn "iwmmxt_waccw" @@ -1634,7 +1631,7 @@ "TARGET_REALLY_IWMMXT" "waccw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wacc")] + (set_attr "type" "wmmx_wacc")] ) ;; use unspec here to prevent 8 * imm to be optimized by cse @@ -1651,7 +1648,7 @@ "TARGET_REALLY_IWMMXT" "waligni%?\\t%0, %1, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "waligni")] + (set_attr "type" "wmmx_waligni")] ) (define_insn "iwmmxt_walignr" @@ -1666,7 +1663,7 @@ "TARGET_REALLY_IWMMXT" "walignr%U3%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "walignr")] + (set_attr "type" "wmmx_walignr")] ) (define_insn "iwmmxt_walignr0" @@ -1681,7 +1678,7 @@ "TARGET_REALLY_IWMMXT" "walignr0%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "walignr")] + (set_attr "type" "wmmx_walignr")] ) (define_insn "iwmmxt_walignr1" @@ -1696,7 +1693,7 @@ "TARGET_REALLY_IWMMXT" "walignr1%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "walignr")] + (set_attr "type" "wmmx_walignr")] ) (define_insn "iwmmxt_walignr2" @@ -1711,7 +1708,7 @@ "TARGET_REALLY_IWMMXT" "walignr2%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "walignr")] + (set_attr "type" "wmmx_walignr")] ) (define_insn "iwmmxt_walignr3" @@ -1726,7 +1723,7 @@ "TARGET_REALLY_IWMMXT" "walignr3%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "walignr")] + (set_attr "type" "wmmx_walignr")] ) (define_insn "iwmmxt_wsadb" @@ -1738,7 +1735,7 @@ "TARGET_REALLY_IWMMXT" "wsadb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsad")] + (set_attr "type" "wmmx_wsad")] ) (define_insn "iwmmxt_wsadh" @@ -1750,7 +1747,7 @@ "TARGET_REALLY_IWMMXT" "wsadh%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsad")] + (set_attr "type" "wmmx_wsad")] ) (define_insn "iwmmxt_wsadbz" @@ -1760,7 +1757,7 @@ "TARGET_REALLY_IWMMXT" "wsadbz%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsad")] + (set_attr "type" "wmmx_wsad")] ) (define_insn "iwmmxt_wsadhz" @@ -1770,7 +1767,7 @@ "TARGET_REALLY_IWMMXT" "wsadhz%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsad")] + (set_attr "type" "wmmx_wsad")] ) (include "iwmmxt2.md") diff --git a/gcc/config/arm/iwmmxt2.md b/gcc/config/arm/iwmmxt2.md index 5e44658dbf5..27a45f95b2e 100644 --- a/gcc/config/arm/iwmmxt2.md +++ b/gcc/config/arm/iwmmxt2.md @@ -24,7 +24,7 @@ "TARGET_REALLY_IWMMXT" "wabs%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wabs")] + (set_attr "type" "wmmx_wabs")] ) (define_insn "iwmmxt_wabsdiffb" @@ -37,7 +37,7 @@ "TARGET_REALLY_IWMMXT" "wabsdiffb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wabsdiff")] + (set_attr "type" "wmmx_wabsdiff")] ) (define_insn "iwmmxt_wabsdiffh" @@ -50,7 +50,7 @@ "TARGET_REALLY_IWMMXT" "wabsdiffh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wabsdiff")] + (set_attr "type" "wmmx_wabsdiff")] ) (define_insn "iwmmxt_wabsdiffw" @@ -63,7 +63,7 @@ "TARGET_REALLY_IWMMXT" "wabsdiffw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wabsdiff")] + (set_attr "type" "wmmx_wabsdiff")] ) (define_insn "iwmmxt_waddsubhx" @@ -81,7 +81,7 @@ "TARGET_REALLY_IWMMXT" "waddsubhx%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "waddsubhx")] + (set_attr "type" "wmmx_waddsubhx")] ) (define_insn "iwmmxt_wsubaddhx" @@ -99,7 +99,7 @@ "TARGET_REALLY_IWMMXT" "wsubaddhx%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsubaddhx")] + (set_attr "type" "wmmx_wsubaddhx")] ) (define_insn "addc3" @@ -111,7 +111,7 @@ "TARGET_REALLY_IWMMXT" "waddc%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "iwmmxt_avg4" @@ -143,7 +143,7 @@ "TARGET_REALLY_IWMMXT" "wavg4%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg4")] + (set_attr "type" "wmmx_wavg4")] ) (define_insn "iwmmxt_avg4r" @@ -175,7 +175,7 @@ "TARGET_REALLY_IWMMXT" "wavg4r%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg4")] + (set_attr "type" "wmmx_wavg4")] ) (define_insn "iwmmxt_wmaddsx" @@ -194,7 +194,7 @@ "TARGET_REALLY_IWMMXT" "wmaddsx%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_wmaddux" @@ -213,7 +213,7 @@ "TARGET_REALLY_IWMMXT" "wmaddux%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_wmaddsn" @@ -232,7 +232,7 @@ "TARGET_REALLY_IWMMXT" "wmaddsn%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_wmaddun" @@ -251,7 +251,7 @@ "TARGET_REALLY_IWMMXT" "wmaddun%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_wmulwsm" @@ -265,7 +265,7 @@ "TARGET_REALLY_IWMMXT" "wmulwsm%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmulw")] + (set_attr "type" "wmmx_wmulw")] ) (define_insn "iwmmxt_wmulwum" @@ -279,7 +279,7 @@ "TARGET_REALLY_IWMMXT" "wmulwum%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmulw")] + (set_attr "type" "wmmx_wmulw")] ) (define_insn "iwmmxt_wmulsmr" @@ -297,7 +297,7 @@ "TARGET_REALLY_IWMMXT" "wmulsmr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "iwmmxt_wmulumr" @@ -316,7 +316,7 @@ "TARGET_REALLY_IWMMXT" "wmulumr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "iwmmxt_wmulwsmr" @@ -333,7 +333,7 @@ "TARGET_REALLY_IWMMXT" "wmulwsmr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "iwmmxt_wmulwumr" @@ -350,7 +350,7 @@ "TARGET_REALLY_IWMMXT" "wmulwumr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmulw")] + (set_attr "type" "wmmx_wmulw")] ) (define_insn "iwmmxt_wmulwl" @@ -361,7 +361,7 @@ "TARGET_REALLY_IWMMXT" "wmulwl%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmulw")] + (set_attr "type" "wmmx_wmulw")] ) (define_insn "iwmmxt_wqmulm" @@ -371,7 +371,7 @@ "TARGET_REALLY_IWMMXT" "wqmulm%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmulm")] + (set_attr "type" "wmmx_wqmulm")] ) (define_insn "iwmmxt_wqmulwm" @@ -381,7 +381,7 @@ "TARGET_REALLY_IWMMXT" "wqmulwm%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmulwm")] + (set_attr "type" "wmmx_wqmulwm")] ) (define_insn "iwmmxt_wqmulmr" @@ -391,7 +391,7 @@ "TARGET_REALLY_IWMMXT" "wqmulmr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmulm")] + (set_attr "type" "wmmx_wqmulm")] ) (define_insn "iwmmxt_wqmulwmr" @@ -401,7 +401,7 @@ "TARGET_REALLY_IWMMXT" "wqmulwmr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmulwm")] + (set_attr "type" "wmmx_wqmulwm")] ) (define_insn "iwmmxt_waddbhusm" @@ -417,7 +417,7 @@ "TARGET_REALLY_IWMMXT" "waddbhusm%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "waddbhus")] + (set_attr "type" "wmmx_waddbhus")] ) (define_insn "iwmmxt_waddbhusl" @@ -433,7 +433,7 @@ "TARGET_REALLY_IWMMXT" "waddbhusl%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "waddbhus")] + (set_attr "type" "wmmx_waddbhus")] ) (define_insn "iwmmxt_wqmiabb" @@ -446,7 +446,7 @@ "TARGET_REALLY_IWMMXT" "wqmiabb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiabt" @@ -459,7 +459,7 @@ "TARGET_REALLY_IWMMXT" "wqmiabt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiatb" @@ -472,7 +472,7 @@ "TARGET_REALLY_IWMMXT" "wqmiatb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiatt" @@ -485,7 +485,7 @@ "TARGET_REALLY_IWMMXT" "wqmiatt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiabbn" @@ -498,7 +498,7 @@ "TARGET_REALLY_IWMMXT" "wqmiabbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiabtn" @@ -511,7 +511,7 @@ "TARGET_REALLY_IWMMXT" "wqmiabtn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiatbn" @@ -524,7 +524,7 @@ "TARGET_REALLY_IWMMXT" "wqmiatbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiattn" @@ -537,7 +537,7 @@ "TARGET_REALLY_IWMMXT" "wqmiattn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wmiabb" @@ -561,7 +561,7 @@ "TARGET_REALLY_IWMMXT" "wmiabb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiabt" @@ -585,7 +585,7 @@ "TARGET_REALLY_IWMMXT" "wmiabt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiatb" @@ -609,7 +609,7 @@ "TARGET_REALLY_IWMMXT" "wmiatb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiatt" @@ -633,7 +633,7 @@ "TARGET_REALLY_IWMMXT" "wmiatt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiabbn" @@ -657,7 +657,7 @@ "TARGET_REALLY_IWMMXT" "wmiabbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiabtn" @@ -681,7 +681,7 @@ "TARGET_REALLY_IWMMXT" "wmiabtn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiatbn" @@ -705,7 +705,7 @@ "TARGET_REALLY_IWMMXT" "wmiatbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiattn" @@ -729,7 +729,7 @@ "TARGET_REALLY_IWMMXT" "wmiattn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiawbb" @@ -742,7 +742,7 @@ "TARGET_REALLY_IWMMXT" "wmiawbb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawbt" @@ -755,7 +755,7 @@ "TARGET_REALLY_IWMMXT" "wmiawbt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawtb" @@ -768,7 +768,7 @@ "TARGET_REALLY_IWMMXT" "wmiawtb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawtt" @@ -781,7 +781,7 @@ "TARGET_REALLY_IWMMXT" "wmiawtt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawbbn" @@ -794,7 +794,7 @@ "TARGET_REALLY_IWMMXT" "wmiawbbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawbtn" @@ -807,7 +807,7 @@ "TARGET_REALLY_IWMMXT" "wmiawbtn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawtbn" @@ -820,7 +820,7 @@ "TARGET_REALLY_IWMMXT" "wmiawtbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawttn" @@ -833,7 +833,7 @@ "TARGET_REALLY_IWMMXT" "wmiawttn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmerge" @@ -858,7 +858,7 @@ "TARGET_REALLY_IWMMXT" "wmerge%?\\t%0, %1, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmerge")] + (set_attr "type" "wmmx_wmerge")] ) (define_insn "iwmmxt_tandc3" @@ -868,7 +868,7 @@ "TARGET_REALLY_IWMMXT" "tandc%?\\t r15" [(set_attr "predicable" "yes") - (set_attr "wtype" "tandc")] + (set_attr "type" "wmmx_tandc")] ) (define_insn "iwmmxt_torc3" @@ -878,7 +878,7 @@ "TARGET_REALLY_IWMMXT" "torc%?\\t r15" [(set_attr "predicable" "yes") - (set_attr "wtype" "torc")] + (set_attr "type" "wmmx_torc")] ) (define_insn "iwmmxt_torvsc3" @@ -888,7 +888,7 @@ "TARGET_REALLY_IWMMXT" "torvsc%?\\t r15" [(set_attr "predicable" "yes") - (set_attr "wtype" "torvsc")] + (set_attr "type" "wmmx_torvsc")] ) (define_insn "iwmmxt_textrc3" @@ -899,5 +899,5 @@ "TARGET_REALLY_IWMMXT" "textrc%?\\t r15, %0" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrc")] + (set_attr "type" "wmmx_textrc")] ) diff --git a/gcc/config/arm/marvell-f-iwmmxt.md b/gcc/config/arm/marvell-f-iwmmxt.md index 5781776b15f..395549fd434 100644 --- a/gcc/config/arm/marvell-f-iwmmxt.md +++ b/gcc/config/arm/marvell-f-iwmmxt.md @@ -63,52 +63,62 @@ ;; An attribute appended to instructions for classification (define_attr "wmmxt_shift" "yes,no" - (if_then_else (eq_attr "wtype" "wror, wsll, wsra, wsrl") + (if_then_else (eq_attr "type" "wmmx_wror, wmmx_wsll, wmmx_wsra, wmmx_wsrl") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_pack" "yes,no" - (if_then_else (eq_attr "wtype" "waligni, walignr, wmerge, wpack, wshufh, wunpckeh, wunpckih, wunpckel, wunpckil") + (if_then_else (eq_attr "type" "wmmx_waligni, wmmx_walignr, wmmx_wmerge,\ + wmmx_wpack, wmmx_wshufh, wmmx_wunpckeh,\ + wmmx_wunpckih, wmmx_wunpckel, wmmx_wunpckil") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_mult_c1" "yes,no" - (if_then_else (eq_attr "wtype" "wmac, wmadd, wmiaxy, wmiawxy, wmulw, wqmiaxy, wqmulwm") + (if_then_else (eq_attr "type" "wmmx_wmac, wmmx_wmadd, wmmx_wmiaxy,\ + wmmx_wmiawxy, wmmx_wmulw, wmmx_wqmiaxy,\ + wmmx_wqmulwm") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_mult_c2" "yes,no" - (if_then_else (eq_attr "wtype" "wmul, wqmulm") + (if_then_else (eq_attr "type" "wmmx_wmul, wmmx_wqmulm") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_alu_c1" "yes,no" - (if_then_else (eq_attr "wtype" "wabs, wabsdiff, wand, wandn, wmov, wor, wxor") + (if_then_else (eq_attr "type" "wmmx_wabs, wmmx_wabsdiff, wmmx_wand,\ + wmmx_wandn, wmmx_wmov, wmmx_wor, wmmx_wxor") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_alu_c2" "yes,no" - (if_then_else (eq_attr "wtype" "wacc, wadd, waddsubhx, wavg2, wavg4, wcmpeq, wcmpgt, wmax, wmin, wsub, waddbhus, wsubaddhx") + (if_then_else (eq_attr "type" "wmmx_wacc, wmmx_wadd, wmmx_waddsubhx,\ + wmmx_wavg2, wmmx_wavg4, wmmx_wcmpeq,\ + wmmx_wcmpgt, wmmx_wmax, wmmx_wmin,\ + wmmx_wsub, wmmx_waddbhus, wmmx_wsubaddhx") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_alu_c3" "yes,no" - (if_then_else (eq_attr "wtype" "wsad") + (if_then_else (eq_attr "type" "wmmx_wsad") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_transfer_c1" "yes,no" - (if_then_else (eq_attr "wtype" "tbcst, tinsr, tmcr, tmcrr") + (if_then_else (eq_attr "type" "wmmx_tbcst, wmmx_tinsr,\ + wmmx_tmcr, wmmx_tmcrr") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_transfer_c2" "yes,no" - (if_then_else (eq_attr "wtype" "textrm, tmovmsk, tmrc, tmrrc") + (if_then_else (eq_attr "type" "wmmx_textrm, wmmx_tmovmsk,\ + wmmx_tmrc, wmmx_tmrrc") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_transfer_c3" "yes,no" - (if_then_else (eq_attr "wtype" "tmia, tmiaph, tmiaxy") + (if_then_else (eq_attr "type" "wmmx_tmia, wmmx_tmiaph, wmmx_tmiaxy") (const_string "yes") (const_string "no")) ) @@ -169,11 +179,11 @@ (define_insn_reservation "marvell_f_iwmmxt_wstr" 0 (and (eq_attr "marvell_f_iwmmxt" "yes") - (eq_attr "wtype" "wstr")) + (eq_attr "type" "wmmx_wstr")) "mf_iwmmxt_pipeline") ;There is a forwarding path from MW stage (define_insn_reservation "marvell_f_iwmmxt_wldr" 5 (and (eq_attr "marvell_f_iwmmxt" "yes") - (eq_attr "wtype" "wldr")) + (eq_attr "type" "wmmx_wldr")) "mf_iwmmxt_pipeline") -- 2.30.2