insn does not satisfy its constraints

Boris Boesler baembel@gmx.de
Thu Oct 4 16:06:00 GMT 2007


Hi!

Am 04.10.2007 um 15:52 schrieb Rask Ingemann Lambertsen:

>    The next step would be to check the .greg dump to see why  
> register 101
> ends up being assigned to a hard register in class Rx_REGS.

  The compiler stops before it can write the .greg file :-( Btw, I  
use the switch -da to generate all files.


>    But register 102 is a pseudo register, isn't it?

  Yes, I have 96 hardware registers. They are all in the  
specification, but most are unused (yet).


> A pseudo register must be accepted when !REG_OK_STRICT.

  I forgot to accept pseudo-registers in REGNO_OK_FOR_BASE_P(r). Ok,  
now I can compile
int c; f(void) { c = 4711; }
There are some strange move-instruction, but I  can improve that later.

  In my next High Scientific Programming code: int a, b, c; f(void)  
{ c = a + b; } I get everything wrong again - even registers that  
should not be used at all. I'll check the .greg file and kepp you  
busy ;-)

Thanks,
Boris



More information about the Gcc-help mailing list