diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/bfin/bfin.h | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8ac3e42..7cc1ad9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-09-07 Bernd Schmidt <bernd.schmidt@analog.com> + + * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc + addresses into I registers. + 2007-09-06 Jan Hubicka <jh@suse.cz> Andreas Tobler <a.tobler@schweiz.org> diff --git a/gcc/config/bfin/bfin.h b/gcc/config/bfin/bfin.h index fa6eed3..93c77c1 100644 --- a/gcc/config/bfin/bfin.h +++ b/gcc/config/bfin/bfin.h @@ -721,7 +721,10 @@ enum reg_class class to use when it is necessary to copy value X into a register in class CLASS. The value is a register class; perhaps CLASS, or perhaps another, smaller class. */ -#define PREFERRED_RELOAD_CLASS(X, CLASS) (CLASS) +#define PREFERRED_RELOAD_CLASS(X, CLASS) \ + (GET_CODE (X) == POST_INC \ + || GET_CODE (X) == POST_DEC \ + || GET_CODE (X) == PRE_DEC ? PREGS : (CLASS)) /* Function Calling Conventions. */ |