This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: stormy16: limit SI reload regs
> That won't work in general; sometimes you'll just happen to have a
> variable in the wrong register, and reload won't reload it because it
> fits the constraint even though it's not preferred.
How about this one? This should stop everyone from putting an SI in
$r7. Too bad we can't check both operands for this, as it stops us
from doing reg-reg moves to/from $r7/$r8 also.
2003-04-30 DJ Delorie <dj@redhat.com>
* config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Don't allow
an SImode in $r7 because we can't always split those.
Index: stormy16.h
===================================================================
RCS file: /cvs/uberbaum/gcc/config/stormy16/stormy16.h,v
retrieving revision 1.73
diff -p -2 -r1.73 stormy16.h
*** stormy16.h 17 Apr 2003 10:35:08 -0000 1.73
--- stormy16.h 30 Apr 2003 23:06:56 -0000
*************** do { \
*** 343,347 ****
registers are not in class `GENERAL_REGS', they will not be used unless some
pattern's constraint asks for one. */
! #define HARD_REGNO_MODE_OK(REGNO, MODE) ((REGNO) != 16 || (MODE) == BImode)
/* A C expression that is nonzero if it is desirable to choose register
--- 343,349 ----
registers are not in class `GENERAL_REGS', they will not be used unless some
pattern's constraint asks for one. */
! #define HARD_REGNO_MODE_OK(REGNO, MODE) \
! (((REGNO) != 16 || (MODE) == BImode) \
! && ((REGNO) != 7 || (MODE) != SImode))
/* A C expression that is nonzero if it is desirable to choose register