aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Bolton <ian.bolton@arm.com>2013-05-02 12:54:16 +0000
committerIan Bolton <ibolton@gcc.gnu.org>2013-05-02 12:54:16 +0000
commitda65928c1d160f7e9ba156c5f189bca40f0527d6 (patch)
tree80a836b950789b44cfa99fc04a86b94d4bcc46ec
parentadd3c9653f4afdd353a546fa43fad17b3e2eda0a (diff)
downloadgcc-da65928c1d160f7e9ba156c5f189bca40f0527d6.zip
gcc-da65928c1d160f7e9ba156c5f189bca40f0527d6.tar.gz
gcc-da65928c1d160f7e9ba156c5f189bca40f0527d6.tar.bz2
AArch64 fix for LDR/STR from/to S and D regs
From-SVN: r198527
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/aarch64/aarch64.md4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f1692c6..de05eeb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
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):
New pattern.
(*and_one_cmplsi3_compare0_uxtw): Likewise.
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 50acdaaf..365bb23 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -825,7 +825,7 @@
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"
@@ -850,7 +850,7 @@
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>"