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


No regressions.  Ok?

2003-05-01  DJ Delorie  <dj@redhat.com>

	* reload.c (find_reloads): Also check that all of a multi-reg
	value is in the class.

> I'm testing this patch now.
> 
> Index: reload.c
> ===================================================================
> RCS file: /cvs/uberbaum/gcc/reload.c,v
> retrieving revision 1.212
> diff -p -2 -r1.212 reload.c
> *** reload.c	17 Apr 2003 23:31:40 -0000	1.212
> --- reload.c	1 May 2003 19:38:09 -0000
> *************** find_reloads (insn, replace, ind_levels,
> *** 4347,4351 ****
>    	    && TEST_HARD_REG_BIT (reg_class_contents[rld[i].class], regno)
>    	    && HARD_REGNO_MODE_OK (regno, rld[i].mode))
> !  	  rld[i].reg_rtx = dest;
>         }
>   
> --- 4347,4361 ----
>    	    && TEST_HARD_REG_BIT (reg_class_contents[rld[i].class], regno)
>    	    && HARD_REGNO_MODE_OK (regno, rld[i].mode))
> ! 	  {
> ! 	    int nr = HARD_REGNO_NREGS (regno, rld[i].mode);
> ! 	    int ok = 1, nri;
> ! 
> ! 	    for (nri = 1; nri < nr; nri ++)
> ! 	      if (! TEST_HARD_REG_BIT (reg_class_contents[rld[i].class], regno + nri))
> ! 		ok = 0;
> ! 
> ! 	    if (ok)
> ! 	      rld[i].reg_rtx = dest;
> ! 	  }
>         }
>   
> 


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