aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-10-24 22:45:46 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2000-10-24 22:45:46 +0000
commit5e2c51baa78757709c10038158b0195d106562e9 (patch)
tree4dad84921c04aa6dd8cf5ea029dbec728de8d8a7 /gcc
parentc71e12010352a78de030b253bba4792d4d0fc005 (diff)
downloadgcc-5e2c51baa78757709c10038158b0195d106562e9.zip
gcc-5e2c51baa78757709c10038158b0195d106562e9.tar.gz
gcc-5e2c51baa78757709c10038158b0195d106562e9.tar.bz2
treat pseudos just like memory
From-SVN: r37038
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/mn10300/mn10300.h15
2 files changed, 16 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 66148dc..30d515d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/mn10300/mn10300.h b/gcc/config/mn10300/mn10300.h
index 53c51ca..2de94f4 100644
--- a/gcc/config/mn10300/mn10300.h
+++ b/gcc/config/mn10300/mn10300.h
@@ -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) \