Re: HARD_REGNO_MODE_OK_FOR_CLASS Might Be Nice (tm)

2006-01-16 Thread Rask Ingemann Lambertsen
On Wed, Dec 21, 2005 at 03:07:21PM -0500, DJ Delorie wrote: > > > It was because I had decided to expose the registers as %al, %ah, > > ... %bl, %bh, ... instead of the customary %[e]ax and friends. > > I originally did this for the m32c port (which has hi/low pairs like > the i386) but discover

Re: HARD_REGNO_MODE_OK_FOR_CLASS Might Be Nice (tm)

2006-01-16 Thread Rask Ingemann Lambertsen
On Wed, Dec 21, 2005 at 08:23:17PM +0200, Bernd Jendrissek wrote: > I've been playing with my 16-bit ix86 port again, I started coding one from scratch in about October or so. It has been interesting. [cut %bx as %bl and %bh in BASE_REGS] > The simple solution was just to add %bh to BASE_REGS in

Re: HARD_REGNO_MODE_OK_FOR_CLASS Might Be Nice (tm)

2006-01-07 Thread Bernd Jendrissek
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Tue, Jan 03, 2006 at 05:25:55PM +, Joern RENNECKE wrote: > In http://gcc.gnu.org/ml/gcc/2005-12/msg00642.html, Bernd Jendrissek > wrote: > > Which leads me to the subject. Would it be a win to have a macro > > HARD_REGNO_MODE_OK_FOR_CLASS (REGN

Re: HARD_REGNO_MODE_OK_FOR_CLASS Might Be Nice (tm)

2006-01-03 Thread Joern RENNECKE
In http://gcc.gnu.org/ml/gcc/2005-12/msg00642.html, Bernd Jendrissek wrote: > Which leads me to the subject. Would it be a win to have a macro > HARD_REGNO_MODE_OK_FOR_CLASS (REGNO, MODE, CLASS) which would be the > authoritative test for this loop in find_reg()? On my port, and I > imagine on m

Re: HARD_REGNO_MODE_OK_FOR_CLASS Might Be Nice (tm)

2005-12-21 Thread DJ Delorie
> It was because I had decided to expose the registers as %al, %ah, > ... %bl, %bh, ... instead of the customary %[e]ax and friends. I originally did this for the m32c port (which has hi/low pairs like the i386) but discovered that reload always allocates registers in UNITS_PER_WORD chunks, and

HARD_REGNO_MODE_OK_FOR_CLASS Might Be Nice (tm)

2005-12-21 Thread Bernd Jendrissek
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 I think so, at least. The problem I seem to be having is related to this bit of code in reload1.c:find_reg(): for (j = 1; j < this_nregs; j++) { this_cost += spill_add_cost[regno + j]; if ((TEST_HARD_