diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2014-06-10 16:05:17 +0000 |
---|---|---|
committer | Kyrylo Tkachov <ktkachov@gcc.gnu.org> | 2014-06-10 16:05:17 +0000 |
commit | d7256bb835ab4fa75aa88924795a866dbf803a6f (patch) | |
tree | 520ed27c00dcca9d0172a0e53907a7fc03a0c127 | |
parent | a4a1b5f3dfd5afa8ba50d639f2eafeb2efebf331 (diff) | |
download | gcc-d7256bb835ab4fa75aa88924795a866dbf803a6f.zip gcc-d7256bb835ab4fa75aa88924795a866dbf803a6f.tar.gz gcc-d7256bb835ab4fa75aa88924795a866dbf803a6f.tar.bz2 |
[AArch64] Fix some reg-to-reg move scheduler types.
* config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
Change second alternative type to f_mcr.
* config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
and 12th alternatives' types to f_mcr and f_mrc.
(*movdi_aarch64): Same for 12th and 13th alternatives.
(*movsf_aarch64): Change 9th alternatives' type to mov_reg.
(aarch64_movtilow_tilow): Change type to fmov.
From-SVN: r211418
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-simd.md | 2 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.md | 8 |
3 files changed, 15 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 760cdae..839cb0d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): + Change second alternative type to f_mcr. + * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th + and 12th alternatives' types to f_mcr and f_mrc. + (*movdi_aarch64): Same for 12th and 13th alternatives. + (*movsf_aarch64): Change 9th alternatives' type to mov_reg. + (aarch64_movtilow_tilow): Change type to fmov. + 2014-06-10 Jiong Wang <jiong.wang@arm.com> * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs) diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index 8c840f5..42bfd3e 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -954,7 +954,7 @@ dup\\t%d0, %1.d[0] fmov\\t%d0, %1 dup\\t%d0, %1" - [(set_attr "type" "neon_dup<q>,fmov,neon_dup<q>") + [(set_attr "type" "neon_dup<q>,f_mcr,neon_dup<q>") (set_attr "simd" "yes,*,yes") (set_attr "fp" "*,yes,*") (set_attr "length" "4")] diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 661d784..662d26a 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -689,7 +689,7 @@ fmov\\t%w0, %s1 fmov\\t%s0, %s1" [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,load1,load1,store1,store1,\ - adr,adr,fmov,fmov,fmov") + adr,adr,f_mcr,f_mrc,fmov") (set_attr "fp" "*,*,*,*,*,yes,*,yes,*,*,yes,yes,yes")] ) @@ -714,7 +714,7 @@ fmov\\t%d0, %d1 movi\\t%d0, %1" [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,load1,load1,store1,store1,\ - adr,adr,fmov,fmov,fmov,fmov") + adr,adr,f_mcr,f_mrc,fmov,fmov") (set_attr "fp" "*,*,*,*,*,yes,*,yes,*,*,yes,yes,yes,*") (set_attr "simd" "*,*,*,*,*,*,*,*,*,*,*,*,*,yes")] ) @@ -809,7 +809,7 @@ str\\t%w1, %0 mov\\t%w0, %w1" [(set_attr "type" "f_mcr,f_mrc,fmov,fconsts,\ - f_loads,f_stores,f_loads,f_stores,fmov")] + f_loads,f_stores,f_loads,f_stores,mov_reg")] ) (define_insn "*movdf_aarch64" @@ -3679,7 +3679,7 @@ (truncate:DI (match_operand:TI 1 "register_operand" "w"))))] "reload_completed || reload_in_progress" "fmov\\t%d0, %d1" - [(set_attr "type" "f_mcr") + [(set_attr "type" "fmov") (set_attr "length" "4") ]) |