From 33e498354f7427f75237f7769dfe6d817b7fd3f9 Mon Sep 17 00:00:00 2001 From: Kyrylo Tkachov Date: Fri, 7 Jun 2013 08:29:30 +0000 Subject: [PATCH] constraints.md (Df): New constraint. 2013-06-07 Kyrylo Tkachov * 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/arm/arm.md | 4 ++-- 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 + + * 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 * 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 -- 2.7.4