h8300.md (movstrictqi): Add an alternative with the source being post_inc.
authorKazu Hirata <kazu@cs.umass.edu>
Wed, 14 Jan 2004 00:52:26 +0000 (00:52 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Wed, 14 Jan 2004 00:52:26 +0000 (00:52 +0000)
* config/h8300/h8300.md (movstrictqi): Add an alternative with
the source being post_inc.  Tighten the predicate for the
destination to register_operand.
(movstricthi): Likewise.

From-SVN: r75833

gcc/ChangeLog
gcc/config/h8300/h8300.md

index 70a97fc40e943c7da9a2e2cc82636efdac07d724..d4a70f13446aceffd4e1b9709dcd3c9a0399ac74 100644 (file)
@@ -1,3 +1,10 @@
+2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md (movstrictqi): Add an alternative with
+       the source being post_inc.  Tighten the predicate for the
+       destination to register_operand.
+       (movstricthi): Likewise.
+
 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
 
        * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
index 80683d56876cfe6881e653feea5ca89d46cf0d39..475f0e74b376f9dc26e5c85c5d90305683fcaf2e 100644 (file)
 }")
 
 (define_insn "movstrictqi"
-  [(set (strict_low_part (match_operand:QI 0 "general_operand_dst" "+r,r,r,r"))
-                        (match_operand:QI 1 "general_operand_src" "I,r,n,m"))]
+  [(set (strict_low_part
+        (match_operand:QI 0 "register_operand"    "+r,r,r,r,r"))
+        (match_operand:QI 1 "general_operand_src" " I,r,n,>,m"))]
   ""
   "@
    sub.b       %X0,%X0
    mov.b       %X1,%X0
    mov.b       %R1,%X0
+   mov.b       %X1,%X0
    mov.b       %R1,%X0"
   [(set (attr "length")
        (symbol_ref "compute_mov_length (operands)"))
-   (set_attr "cc" "set_zn,set_znv,set_znv,set_znv")])
+   (set_attr "cc" "set_zn,set_znv,set_znv,set_znv,set_znv")])
 
 ;; movhi
 
 }")
 
 (define_insn "movstricthi"
-  [(set (strict_low_part (match_operand:HI 0 "general_operand_dst" "+r,r,r,r"))
-                        (match_operand:HI 1 "general_operand_src" "I,r,i,m"))]
+  [(set (strict_low_part
+        (match_operand:HI 0 "register_operand"    "+r,r,r,r,r"))
+        (match_operand:HI 1 "general_operand_src" " I,r,i,>,m"))]
   ""
   "@
    sub.w       %T0,%T0
    mov.w       %T1,%T0
    mov.w       %T1,%T0
+   mov.w       %T1,%T0
    mov.w       %T1,%T0"
   [(set (attr "length")
        (symbol_ref "compute_mov_length (operands)"))
-   (set_attr "cc" "set_zn,set_znv,set_znv,set_znv")])
+   (set_attr "cc" "set_zn,set_znv,set_znv,set_znv,set_znv")])
 
 ;; movsi