OSDN Git Service

treat pseudos just like memory
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Oct 2000 22:45:46 +0000 (22:45 +0000)
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Oct 2000 22:45:46 +0000 (22:45 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37038 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/mn10300/mn10300.h

index 66148dc..30d515d 100644 (file)
@@ -1,3 +1,8 @@
+2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
+
+        * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
+        pseudos just like memory.
+
 2000-10-24  Alexandre Oliva  <aoliva@redhat.com>
 
        * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
@@ -8,6 +13,7 @@
        * expr.c (do_store_flag): Don't crash if either side of a
        comparison is error_mark_node.
 
+>>>>>>> 1.8059
 2000-10-24  Jakub Jelinek  <jakub@redhat.com>
 
        * sibcall.c (purge_mem_unchanging_flag): New function.
index 53c51ca..2de94f4 100644 (file)
@@ -381,11 +381,16 @@ enum reg_class {
    In general this is just CLASS; but on some machines
    in some cases it is preferable to use a more restrictive class.  */
 
-#define PREFERRED_RELOAD_CLASS(X,CLASS)                        \
-  ((X) == stack_pointer_rtx && (CLASS) != SP_REGS      \
-   ? ADDRESS_OR_EXTENDED_REGS                          \
-   : (GET_CODE (X) == MEM                              \
-      ? LIMIT_RELOAD_CLASS (GET_MODE (X), CLASS)       \
+#define PREFERRED_RELOAD_CLASS(X,CLASS)                                \
+  ((X) == stack_pointer_rtx && (CLASS) != SP_REGS              \
+   ? ADDRESS_OR_EXTENDED_REGS                                  \
+   : (GET_CODE (X) == MEM                                      \
+      || (GET_CODE (X) == REG                                  \
+         && REGNO (X) >= FIRST_PSEUDO_REGISTER)                \
+      || (GET_CODE (X) == SUBREG                               \
+         && GET_CODE (SUBREG_REG (X)) == REG                   \
+         && REGNO (SUBREG_REG (X)) >= FIRST_PSEUDO_REGISTER)   \
+      ? LIMIT_RELOAD_CLASS (GET_MODE (X), CLASS)               \
       : (CLASS)))
 
 #define PREFERRED_OUTPUT_RELOAD_CLASS(X,CLASS) \