diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2013-06-07 08:29:30 +0000 |
---|---|---|
committer | Kyrylo Tkachov <ktkachov@gcc.gnu.org> | 2013-06-07 08:29:30 +0000 |
commit | 33e498354f7427f75237f7769dfe6d817b7fd3f9 (patch) | |
tree | 72e669f080d816fe1678e03ab0f8769d784f5d1a /gcc | |
parent | 56aefbf7053557be05c4d7d4188d5039242504bb (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/arm/arm.md | 4 | ||||
-rw-r--r-- | gcc/config/arm/constraints.md | 6 |
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 |