stormy16: limit SI reload regs

Geoff Keating geoffk@geoffk.org
Fri May 2 01:04:00 GMT 2003


DJ Delorie <dj@redhat.com> writes:

> No regressions.  Ok?

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;
> > ! 	  }
> >         }
> >   
> > 
> 

-- 
- Geoffrey Keating <geoffk@geoffk.org>



More information about the Gcc-patches mailing list