This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]