]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc addresses into I registers.
authorBernd Schmidt <bernd.schmidt@analog.com>
Thu, 6 Sep 2007 23:24:19 +0000 (23:24 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Thu, 6 Sep 2007 23:24:19 +0000 (23:24 +0000)
* config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
addresses into I registers.

From-SVN: r128212

gcc/ChangeLog
gcc/config/bfin/bfin.h

index 8ac3e420de9f8b465521d1667bcb0cf3ad7bd0d8..7cc1ad95c9d2ae5a5d84fea928819174edc468e1 100644 (file)
@@ -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>
 
index fa6eed349c2f826d4af08421d82cd7e3ae666ac9..93c77c19e00f991e24fec0dbe5b5540cd6156168 100644 (file)
@@ -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. */