re PR target/13713 (gnat1 segmentation fault in stage 3 on hppa-linux)
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Thu, 22 Jan 2004 17:51:25 +0000 (17:51 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Thu, 22 Jan 2004 17:51:25 +0000 (17:51 +0000)
PR target/13713
PR target/13324
* pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
clrstrdi_prereload, clrstrdi_postreload): Fix constraints.

From-SVN: r76365

gcc/ChangeLog
gcc/config/pa/pa.md

index 57bb86397e6b1e9e2f6248787899d4fbf3d3a073..69346c60a7ebcd448a18ee81db1a82627d6685b9 100644 (file)
@@ -1,3 +1,11 @@
+2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/13713
+       PR target/13324
+       * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
+       movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
+       clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
+
 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
 
        * config/arm/arm.c: Include "debug.h".
index 4530d427170f6050a7aeb68b50a7da8b9b126bd3..9d06f34a159a74e5cd7e997fc041f64dadca2b76 100644 (file)
 (define_insn "movstrsi_prereload"
   [(set (mem:BLK (match_operand:SI 0 "register_operand" "r,r"))
        (mem:BLK (match_operand:SI 1 "register_operand" "r,r")))
-   (clobber (match_operand:SI 2 "register_operand" "=r,r"))    ;loop cnt/tmp
+   (clobber (match_operand:SI 2 "register_operand" "=&r,&r"))  ;loop cnt/tmp
    (clobber (match_operand:SI 3 "register_operand" "=&r,&r"))  ;item tmp1
    (clobber (match_operand:SI 6 "register_operand" "=&r,&r"))  ;item tmp2
    (clobber (match_operand:SI 7 "register_operand" "=&r,&r"))  ;item tmp3
 }")
 
 (define_insn "movstrsi_postreload"
-  [(set (mem:BLK (match_operand:SI 0 "register_operand" "r,r"))
-       (mem:BLK (match_operand:SI 1 "register_operand" "r,r")))
-   (clobber (match_operand:SI 2 "register_operand" "=r,r"))    ;loop cnt/tmp
+  [(set (mem:BLK (match_operand:SI 0 "register_operand" "+r,r"))
+       (mem:BLK (match_operand:SI 1 "register_operand" "+r,r")))
+   (clobber (match_operand:SI 2 "register_operand" "=&r,&r"))  ;loop cnt/tmp
    (clobber (match_operand:SI 3 "register_operand" "=&r,&r"))  ;item tmp1
    (clobber (match_operand:SI 6 "register_operand" "=&r,&r"))  ;item tmp2
    (clobber (match_dup 0))
 (define_insn "movstrdi_prereload"
   [(set (mem:BLK (match_operand:DI 0 "register_operand" "r,r"))
        (mem:BLK (match_operand:DI 1 "register_operand" "r,r")))
-   (clobber (match_operand:DI 2 "register_operand" "=r,r"))    ;loop cnt/tmp
+   (clobber (match_operand:DI 2 "register_operand" "=&r,&r"))  ;loop cnt/tmp
    (clobber (match_operand:DI 3 "register_operand" "=&r,&r"))  ;item tmp1
    (clobber (match_operand:DI 6 "register_operand" "=&r,&r"))  ;item tmp2
    (clobber (match_operand:DI 7 "register_operand" "=&r,&r"))  ;item tmp3
 }")
 
 (define_insn "movstrdi_postreload"
-  [(set (mem:BLK (match_operand:DI 0 "register_operand" "r,r"))
-       (mem:BLK (match_operand:DI 1 "register_operand" "r,r")))
-   (clobber (match_operand:DI 2 "register_operand" "=r,r"))    ;loop cnt/tmp
+  [(set (mem:BLK (match_operand:DI 0 "register_operand" "+r,r"))
+       (mem:BLK (match_operand:DI 1 "register_operand" "+r,r")))
+   (clobber (match_operand:DI 2 "register_operand" "=&r,&r"))  ;loop cnt/tmp
    (clobber (match_operand:DI 3 "register_operand" "=&r,&r"))  ;item tmp1
    (clobber (match_operand:DI 6 "register_operand" "=&r,&r"))  ;item tmp2
    (clobber (match_dup 0))
 (define_insn "clrstrsi_prereload"
   [(set (mem:BLK (match_operand:SI 0 "register_operand" "r,r"))
        (const_int 0))
-   (clobber (match_operand:SI 1 "register_operand" "=r,r"))    ;loop cnt/tmp
+   (clobber (match_operand:SI 1 "register_operand" "=&r,&r"))  ;loop cnt/tmp
    (clobber (match_operand:SI 4 "register_operand" "=&r,&r"))  ;tmp1
    (use (match_operand:SI 2 "arith_operand" "J,1"))     ;byte count
    (use (match_operand:SI 3 "const_int_operand" "n,n"))] ;alignment
 }")
 
 (define_insn "clrstrsi_postreload"
-  [(set (mem:BLK (match_operand:SI 0 "register_operand" "r,r"))
+  [(set (mem:BLK (match_operand:SI 0 "register_operand" "+r,r"))
        (const_int 0))
-   (clobber (match_operand:SI 1 "register_operand" "=r,r"))    ;loop cnt/tmp
+   (clobber (match_operand:SI 1 "register_operand" "=&r,&r"))  ;loop cnt/tmp
    (clobber (match_dup 0))
    (use (match_operand:SI 2 "arith_operand" "J,1"))     ;byte count
    (use (match_operand:SI 3 "const_int_operand" "n,n"))  ;alignment
 (define_insn "clrstrdi_prereload"
   [(set (mem:BLK (match_operand:DI 0 "register_operand" "r,r"))
        (const_int 0))
-   (clobber (match_operand:DI 1 "register_operand" "=r,r"))    ;loop cnt/tmp
+   (clobber (match_operand:DI 1 "register_operand" "=&r,&r"))  ;loop cnt/tmp
    (clobber (match_operand:DI 4 "register_operand" "=&r,&r"))  ;item tmp1
    (use (match_operand:DI 2 "arith_operand" "J,1"))     ;byte count
    (use (match_operand:DI 3 "const_int_operand" "n,n"))] ;alignment
 }")
 
 (define_insn "clrstrdi_postreload"
-  [(set (mem:BLK (match_operand:DI 0 "register_operand" "r,r"))
+  [(set (mem:BLK (match_operand:DI 0 "register_operand" "+r,r"))
        (const_int 0))
-   (clobber (match_operand:DI 1 "register_operand" "=r,r"))    ;loop cnt/tmp
+   (clobber (match_operand:DI 1 "register_operand" "=&r,&r"))  ;loop cnt/tmp
    (clobber (match_dup 0))
    (use (match_operand:DI 2 "arith_operand" "J,1"))     ;byte count
    (use (match_operand:DI 3 "const_int_operand" "n,n"))  ;alignment