aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2013-06-07 08:29:30 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2013-06-07 08:29:30 +0000
commit33e498354f7427f75237f7769dfe6d817b7fd3f9 (patch)
tree72e669f080d816fe1678e03ab0f8769d784f5d1a /gcc
parent56aefbf7053557be05c4d7d4188d5039242504bb (diff)
downloadgcc-33e498354f7427f75237f7769dfe6d817b7fd3f9.zip
gcc-33e498354f7427f75237f7769dfe6d817b7fd3f9.tar.gz
gcc-33e498354f7427f75237f7769dfe6d817b7fd3f9.tar.bz2
constraints.md (Df): New constraint.
2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/arm/constraints.md (Df): New constraint. * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De. Correct length attribute for last two alternatives. From-SVN: r199792
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.md4
-rw-r--r--gcc/config/arm/constraints.md6
3 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 766da00..806d3be 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/arm/constraints.md (Df): New constraint.
+ * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
+ Correct length attribute for last two alternatives.
+
2013-06-07 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 5370efa..95293bd 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -3020,7 +3020,7 @@
(define_insn_and_split "*iordi3_insn"
[(set (match_operand:DI 0 "s_register_operand" "=w,w ,&r,&r,&r,&r,?w,?w")
(ior:DI (match_operand:DI 1 "s_register_operand" "%w,0 ,0 ,r ,0 ,r ,w ,0")
- (match_operand:DI 2 "arm_iordi_operand_neon" "w ,Dl,r ,r ,De,De,w ,Dl")))]
+ (match_operand:DI 2 "arm_iordi_operand_neon" "w ,Dl,r ,r ,Df,Df,w ,Dl")))]
"TARGET_32BIT && !TARGET_IWMMXT"
{
switch (which_alternative)
@@ -3056,7 +3056,7 @@
}"
[(set_attr "neon_type" "neon_int_1,neon_int_1,*,*,*,*,neon_int_1,neon_int_1")
- (set_attr "length" "*,*,8,8,8,8,8,8")
+ (set_attr "length" "*,*,8,8,8,8,*,*")
(set_attr "arch" "neon_for_64bits,neon_for_64bits,*,*,*,*,avoid_neon_for_64bits,avoid_neon_for_64bits")]
)
diff --git a/gcc/config/arm/constraints.md b/gcc/config/arm/constraints.md
index 7e7b3e6..53cbff6 100644
--- a/gcc/config/arm/constraints.md
+++ b/gcc/config/arm/constraints.md
@@ -260,6 +260,12 @@
(and (match_code "const_int")
(match_test "TARGET_32BIT && const_ok_for_dimode_op (ival, AND)")))
+(define_constraint "Df"
+ "@internal
+ In ARM/Thumb-2 state a const_int that can be used by insn iordi."
+ (and (match_code "const_int")
+ (match_test "TARGET_32BIT && const_ok_for_dimode_op (ival, IOR)")))
+
(define_constraint "Di"
"@internal
In ARM/Thumb-2 state a const_int or const_double where both the high