i386.md fix

Jan Hubicka jh@suse.cz
Wed Jun 21 09:19:00 GMT 2000


> > This is patch to remove addqi_low_1 pattern from i386.md.  I am not quite
> > sure, why it has been added (no splitters seems to result to it), but it
> > causes problems with reload, since in/out operand is matched with input
> > one making them impossible to reload properly. In case we want gcc to be able
> > to generate such an "partial" arithmetic, this would require more work in
> > combine, different representation and to add rest of arithmetic patterns of
> > that form.
> 
> Have you tried to change the '+' into an '=' ?
I don't think this is correct.  Imagine an example:
(set (strict_low_part (reg A))
     (add (reg B)  (reg C))
With "=", reload will replace reg A with reg B first, creating an unwanted effect.
Proper way to reload this would be to replace strict_low_part of A by B,
but I don't think we want Reload to handle this.

Honza


More information about the Gcc mailing list