On Fri, Jun 02, 2017 at 10:27:33AM +0200, Eric Botcazou wrote: > > Could you make the expander handle it, instead? It's as simple as (after > > the double-reg thing) add "if operands[1] is reg 0, force_reg operands[2]". > > I'll do it if you prefer. > > Probably, because I'm not sure how this can work, as you cannot create new > pseudos here.
Because you cannot during reload, or another reason? We always use LRA on powerpc nowadays, and LRA can deal with this. > > [ the patch is broken here ] > > It applies just fine for me though. But it could probably use add_operand > instead of satisfies_constraint_I in the condition. Only the first hunk (rs6000.md) applies, the rest is ignored (there is a blank line here instead of a diff header). add_operand would be better, yeah. > > > /* { dg-do compile } */ > > > /* { dg-options "-fstack-limit-register=r2" } */ > > > > Please use a different register, r2 already has different functions in > > most ABIs. It *probably* will compile anyway, but :-) > > It's a straight copy of gcc.target/powerpc/pr48344-1.c though. I see. We'll fix it :-) Segher