aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGraham Stott <grahams@cygnus.co.uk>2000-08-07 11:26:59 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2000-08-07 11:26:59 +0000
commita7fef47884e8198809c9106c0c06a138db6a6a6d (patch)
tree6e9b84bc0f92b601a6816537bf0dee2332bafa39 /gcc
parentf8ac5288bea1b227ac10a4c237f19ce85b1ee76d (diff)
downloadgcc-a7fef47884e8198809c9106c0c06a138db6a6a6d.zip
gcc-a7fef47884e8198809c9106c0c06a138db6a6a6d.tar.gz
gcc-a7fef47884e8198809c9106c0c06a138db6a6a6d.tar.bz2
* mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
From-SVN: r35550
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/mn10300/mn10300.h9
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a25c60c..4427590 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2000-08-07 Graham Stott <grahams@cygnus.co.uk>
+
+ * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
+
2000-08-07 Alexandre Oliva <aoliva@redhat.com>
* sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
diff --git a/gcc/config/mn10300/mn10300.h b/gcc/config/mn10300/mn10300.h
index 2e20ee1..78c5902 100644
--- a/gcc/config/mn10300/mn10300.h
+++ b/gcc/config/mn10300/mn10300.h
@@ -379,9 +379,12 @@ 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 : 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) \
+ : (CLASS)))
#define PREFERRED_OUTPUT_RELOAD_CLASS(X,CLASS) \
(X == stack_pointer_rtx && CLASS != SP_REGS \