constraints.md (Df): New constraint.
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Fri, 7 Jun 2013 08:29:30 +0000 (08:29 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Fri, 7 Jun 2013 08:29:30 +0000 (08:29 +0000)
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

gcc/ChangeLog
gcc/config/arm/arm.md
gcc/config/arm/constraints.md

index 766da00c7293f3a166aaa0a37a67cafb1df77413..806d3be704ba94eb3d5dfab451d063ab7481928c 100644 (file)
@@ -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
index 5370efab8d7429bff5c56a92d636254cd89a9dc1..95293bdb6b20a64cd98a9ed9b9451aaf257f2b23 100644 (file)
 (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)
 
   }"
   [(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")]
 )
 
index 7e7b3e69e0a5a9e583d77687cacdef26447eb461..53cbff6421b640409c42926d870405777fd556bc 100644 (file)
  (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