AArch64 fix for LDR/STR from/to S and D regs
authorIan Bolton <ian.bolton@arm.com>
Thu, 2 May 2013 12:54:16 +0000 (12:54 +0000)
committerIan Bolton <ibolton@gcc.gnu.org>
Thu, 2 May 2013 12:54:16 +0000 (12:54 +0000)
From-SVN: r198527

gcc/ChangeLog
gcc/config/aarch64/aarch64.md

index f1692c63a334ac4e21d74812b3e25a77157152ae..de05eeb1c3c55925424e8cc430dae72e615a28bf 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-02  Ian Bolton  <ian.bolton@arm.com>
+
+       * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
+       S reg when fp attribute set.
+       (movdi_aarch64): Only allow to/from D reg when fp attribute set.
+
 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
 
        * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
index 50acdaaf699ead9c61e2b14e1b77d2ae56b86810..365bb23d33fcfdcd0942ac8046396955a874fdb5 100644 (file)
    fmov\\t%s0, %s1"
   [(set_attr "v8type" "move,alu,load1,load1,store1,store1,fmov,fmov,fmov")
    (set_attr "mode" "SI")
-   (set_attr "fp" "*,*,*,*,*,*,yes,yes,yes")]
+   (set_attr "fp" "*,*,*,yes,*,yes,yes,yes,yes")]
 )
 
 (define_insn "*movdi_aarch64"
    movi\\t%d0, %1"
   [(set_attr "v8type" "move,move,move,alu,load1,load1,store1,store1,adr,adr,fmov,fmov,fmov,fmov")
    (set_attr "mode" "DI")
-   (set_attr "fp" "*,*,*,*,*,*,*,*,*,*,yes,yes,yes,yes")]
+   (set_attr "fp" "*,*,*,*,*,yes,*,yes,*,*,yes,yes,yes,yes")]
 )
 
 (define_insn "insv_imm<mode>"