This is the mail archive of the gcc@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]

Re: i386.md fix


> > 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

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