OSDN Git Service

PR wrong-code/15089
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Jun 2004 21:48:38 +0000 (21:48 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Jun 2004 21:48:38 +0000 (21:48 +0000)
* loop.c (scan_loop): Do not move user-specified register
assignments.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83684 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/loop.c

index f015ca4..8886dc5 100644 (file)
@@ -1,3 +1,9 @@
+2004-06-25  Philip Blundell  <philb@gnu.org>
+
+       PR wrong-code/15089
+       * loop.c (scan_loop): Do not move user-specified register
+       assignments.
+       
 2004-06-25  DJ Delorie  <dj@redhat.com>
 
        * c-common.h (warn_cast_qual, warn_missing_format_attribute,
index aafb18c..28507b3 100644 (file)
@@ -931,6 +931,7 @@ scan_loop (struct loop *loop, int flags)
                          || (! (REG_P (SET_SRC (set))
                                 && (REGNO (SET_SRC (set))
                                     < FIRST_PSEUDO_REGISTER))))
+                     && regno >= FIRST_PSEUDO_REGISTER 
                      /* This test is not redundant; SET_SRC (set) might be
                         a call-clobbered register and the life of REGNO
                         might span a call.  */