On Wed, 2015-04-22 at 17:16 -0500, Segher Boessenkool wrote:
> On Wed, Apr 22, 2015 at 08:43:10AM -0500, Peter Bergner wrote:
> > > Maybe you can fold tabortdc with tabortwc now?  Use one UNSPEC name
> > > for both, :GPR and <wd>?
> > 
> > Wouldn't that change the tabortwc pattern to use DImode rather
> > than SImode when compiled with -m64 or -m32 -mpowerpc64?
> > I'm not sure we want that.
> 
> The GPR mode iterator creates two patterns, one for SI and one for DI,
> and the tabortwc would be the one for SI if you use <wd>.

Ah, I think I know what you mean.  Sure, I can try that,





> > > > +         case HTM_BUILTIN_TTEST: /* Alias for: tabortwci. 0,r0,0  */
> > > > +           op[nopnds++] = GEN_INT (0);
> > > > +           op[nopnds++] = gen_rtx_REG (SImode, 0);
> > > > +           op[nopnds++] = GEN_INT (0);
> > > 
> > > Is that really r0, isn't that (0|rA)?  [Too lazy to read the docs myself
> > > right now, sorry.]
> > 
> > The ISA doc shows:
> 
> [snip]
> 
> Thanks for looking it up!
> 
> I'm still a bit worried about putting a reg in the RTL (while the instruction
> doesn't actually use one), but perhaps it's harmless.

I'm not sure what you mean by the "instruction doesn't use one".
The hardware instruction does use a register for its second
operand (even though its contents are ignored due to TO == 0)
and the pattern requires us to pass in a reg rtx, so I'm not
sure what you're referring to.





> >> This skips this test on -m32 -mpowerpc64, is that on purpose?
> > 
> > Ummm, not exactly.  :-)   Not that many people test that though.
> > I'll see if I can find a replacement for lp64 that covers that case.
> 
> Maybe just { powerpc64 } works?

I'll take a look at that to see if that works, thanks.

Peter



Reply via email to