diff options
author | Graham Stott <grahams@cygnus.co.uk> | 2000-08-07 11:26:59 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2000-08-07 11:26:59 +0000 |
commit | a7fef47884e8198809c9106c0c06a138db6a6a6d (patch) | |
tree | 6e9b84bc0f92b601a6816537bf0dee2332bafa39 /gcc | |
parent | f8ac5288bea1b227ac10a4c237f19ce85b1ee76d (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/mn10300/mn10300.h | 9 |
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 \ |