diff options
author | Jan Hubicka <jh@suse.cz> | 2003-10-17 05:32:21 +0200 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2003-10-17 03:32:21 +0000 |
commit | 8f00386e581a1e56da39fd0ea34f4b32ce631a8e (patch) | |
tree | 84e37d65fecc6335b23ed4648801dd5b9d9cdabb /gcc | |
parent | 4aa4bf391f041350a7b3d6cebf72853ccfb0ad01 (diff) | |
download | gcc-8f00386e581a1e56da39fd0ea34f4b32ce631a8e.zip gcc-8f00386e581a1e56da39fd0ea34f4b32ce631a8e.tar.gz gcc-8f00386e581a1e56da39fd0ea34f4b32ce631a8e.tar.bz2 |
re PR rtl-optimization/12630 (Various unrecognizable insns and ICEs at -O3)
PR optimization/12630
* pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers
for operands 7 and 8.
From-SVN: r72590
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/pa/pa.md | 12 |
2 files changed, 12 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 37050c1..640ad1a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-10-16 Jan Hubicka <jh@suse.cz> + + PR optimization/12630 + * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers + for operands 7 and 8. + 2003-10-16 Kelley Cook <kcook@gcc.gnu.org> * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c. diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index f6d9238..958c635 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -2945,8 +2945,8 @@ (define_expand "movstrsi" [(parallel [(set (match_operand:BLK 0 "" "") (match_operand:BLK 1 "" "")) - (clobber (match_dup 7)) - (clobber (match_dup 8)) + (clobber (match_scratch:SI 7 "")) + (clobber (match_scratch:SI 8 "")) (clobber (match_dup 4)) (clobber (match_dup 5)) (clobber (match_dup 6)) @@ -3016,10 +3016,10 @@ ;; therefore it is forced to operand 2. If the count is compile-time ;; determined, we need two scratch registers for the unrolled code. (define_insn "movstrsi_internal" - [(set (mem:BLK (match_operand:SI 0 "register_operand" "+r,r")) - (mem:BLK (match_operand:SI 1 "register_operand" "+r,r"))) - (clobber (match_dup 0)) - (clobber (match_dup 1)) + [(set (mem:BLK (match_operand:SI 0 "register_operand" "r,r")) + (mem:BLK (match_operand:SI 1 "register_operand" "r,r"))) + (clobber (match_scratch:SI 7 "=0,0")) + (clobber (match_scratch:SI 8 "=1,1")) (clobber (match_operand:SI 2 "register_operand" "=r,r")) ;loop cnt/tmp (clobber (match_operand:SI 3 "register_operand" "=&r,&r")) ;item tmp (clobber (match_operand:SI 6 "register_operand" "=&r,&r")) ;item tmp2 |