aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSofiane Naci <sofiane.naci@arm.com>2013-07-01 09:29:38 +0000
committerSofiane Naci <sofiane@gcc.gnu.org>2013-07-01 09:29:38 +0000
commit31f8442be7b47d847ec33b2bc3585bb184b7609b (patch)
tree5d37e35aa764be631bc5ce4d7b45e5a1382ce92a
parent81bcd96bc783c921e866e4e9afcf9c02549ab53c (diff)
downloadgcc-31f8442be7b47d847ec33b2bc3585bb184b7609b.zip
gcc-31f8442be7b47d847ec33b2bc3585bb184b7609b.tar.gz
gcc-31f8442be7b47d847ec33b2bc3585bb184b7609b.tar.bz2
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<mode>_internal): Likewise. (and<mode>3_iwmmxt): Likewise. (ior<mode>3_iwmmxt): Likewise. (xor<mode>3_iwmmxt): Likewise. (add<mode>3_iwmmxt): Likewise. (ssaddv8qi3): Likewise. (ssaddv4hi3): Likewise. (ssaddv2si3): Likewise. (usaddv8qi3): Likewise. (usaddv4hi3): Likewise. (usaddv2si3): Likewise. (sub<mode>3_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. (smax<mode>3_iwmmxt): Likewise. (umax<mode>3_iwmmxt): Likewise. (smin<mode>3_iwmmxt): Likewise. (umin<mode>3_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. (ror<mode>3): Likewise. (ashr<mode>3_iwmmxt): Likewise. (lshr<mode>3_iwmmxt): Likewise. (ashl<mode>3_iwmmxt): Likewise. (ror<mode>3_di): Likewise. (ashr<mode>3_di): Likewise. (lshr<mode>3_di): Likewise. (ashl<mode>3_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_wabs<mode>3): Update for attribute changes. (iwmmxt_wabsdiffb): Likewise. (iwmmxt_wabsdiffh): Likewise. (iwmmxt_wabsdiffw): Likewise. (iwmmxt_waddsubhx): Likewise (iwmmxt_wsubaddhx): Likewise. (addc<mode>3): 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_tandc<mode>3): Likewise. (iwmmxt_torc<mode>3): Likewise. (iwmmxt_torvsc<mode>3): Likewise. (iwmmxt_textrc<mode>3): 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
-rw-r--r--gcc/ChangeLog194
-rw-r--r--gcc/config/arm/arm.md145
-rw-r--r--gcc/config/arm/iwmmxt.md249
-rw-r--r--gcc/config/arm/iwmmxt2.md110
-rw-r--r--gcc/config/arm/marvell-f-iwmmxt.md34
5 files changed, 531 insertions, 201 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 817cb08..a29ab30 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,197 @@
+2013-07-01 Sofiane Naci <sofiane.naci@arm.com>
+
+ * 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<mode>_internal): Likewise.
+ (and<mode>3_iwmmxt): Likewise.
+ (ior<mode>3_iwmmxt): Likewise.
+ (xor<mode>3_iwmmxt): Likewise.
+ (add<mode>3_iwmmxt): Likewise.
+ (ssaddv8qi3): Likewise.
+ (ssaddv4hi3): Likewise.
+ (ssaddv2si3): Likewise.
+ (usaddv8qi3): Likewise.
+ (usaddv4hi3): Likewise.
+ (usaddv2si3): Likewise.
+ (sub<mode>3_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.
+ (smax<mode>3_iwmmxt): Likewise.
+ (umax<mode>3_iwmmxt): Likewise.
+ (smin<mode>3_iwmmxt): Likewise.
+ (umin<mode>3_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.
+ (ror<mode>3): Likewise.
+ (ashr<mode>3_iwmmxt): Likewise.
+ (lshr<mode>3_iwmmxt): Likewise.
+ (ashl<mode>3_iwmmxt): Likewise.
+ (ror<mode>3_di): Likewise.
+ (ashr<mode>3_di): Likewise.
+ (lshr<mode>3_di): Likewise.
+ (ashl<mode>3_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_wabs<mode>3): Update for attribute changes.
+ (iwmmxt_wabsdiffb): Likewise.
+ (iwmmxt_wabsdiffh): Likewise.
+ (iwmmxt_wabsdiffw): Likewise.
+ (iwmmxt_waddsubhx): Likewise
+ (iwmmxt_wsubaddhx): Likewise.
+ (addc<mode>3): 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_tandc<mode>3): Likewise.
+ (iwmmxt_torc<mode>3): Likewise.
+ (iwmmxt_torvsc<mode>3): Likewise.
+ (iwmmxt_textrc<mode>3): 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 <yufeng.zhang@arm.com>
* 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 c464edd..89e7b54 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 ac4867b..f1f0a5c 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 "*ior<mode>3_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 "*xor<mode>3_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<MMX_char>%?\\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 "*sub<mode>3_iwmmxt"
@@ -421,7 +418,7 @@
"TARGET_REALLY_IWMMXT"
"wsub<MMX_char>%?\\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<MMX_char>%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmax")]
+ (set_attr "type" "wmmx_wmax")]
)
(define_insn "*umax<mode>3_iwmmxt"
@@ -923,7 +920,7 @@
"TARGET_REALLY_IWMMXT"
"wmaxu<MMX_char>%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmax")]
+ (set_attr "type" "wmmx_wmax")]
)
(define_insn "*smin<mode>3_iwmmxt"
@@ -933,7 +930,7 @@
"TARGET_REALLY_IWMMXT"
"wmins<MMX_char>%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmin")]
+ (set_attr "type" "wmmx_wmin")]
)
(define_insn "*umin<mode>3_iwmmxt"
@@ -943,7 +940,7 @@
"TARGET_REALLY_IWMMXT"
"wminu<MMX_char>%?\\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 "ashr<mode>3_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 "lshr<mode>3_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 "ashl<mode>3_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 "ror<mode>3_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 "ashr<mode>3_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 "lshr<mode>3_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 "ashl<mode>3_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 5e44658..27a45f9 100644
--- a/gcc/config/arm/iwmmxt2.md
+++ b/gcc/config/arm/iwmmxt2.md
@@ -24,7 +24,7 @@
"TARGET_REALLY_IWMMXT"
"wabs<MMX_char>%?\\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 "addc<mode>3"
@@ -111,7 +111,7 @@
"TARGET_REALLY_IWMMXT"
"wadd<MMX_char>c%?\\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_tandc<mode>3"
@@ -868,7 +868,7 @@
"TARGET_REALLY_IWMMXT"
"tandc<MMX_char>%?\\t r15"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tandc")]
+ (set_attr "type" "wmmx_tandc")]
)
(define_insn "iwmmxt_torc<mode>3"
@@ -878,7 +878,7 @@
"TARGET_REALLY_IWMMXT"
"torc<MMX_char>%?\\t r15"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "torc")]
+ (set_attr "type" "wmmx_torc")]
)
(define_insn "iwmmxt_torvsc<mode>3"
@@ -888,7 +888,7 @@
"TARGET_REALLY_IWMMXT"
"torvsc<MMX_char>%?\\t r15"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "torvsc")]
+ (set_attr "type" "wmmx_torvsc")]
)
(define_insn "iwmmxt_textrc<mode>3"
@@ -899,5 +899,5 @@
"TARGET_REALLY_IWMMXT"
"textrc<MMX_char>%?\\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 5781776..395549f 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")