On Fri, 2020-09-25 at 12:36 -0500, Segher Boessenkool wrote:
> Hi!
> 
> On Thu, Sep 24, 2020 at 03:35:24PM -0500, will schmidt wrote:
> >     We have extraneous BTM entry (RS6000_BTM_POWERPC64) in the
> > define for
> > our P10 MISC 2 builtin definition.  This does not exist for the
> > '0',
> > '1' or '3' definitions. It appears to me that this was erroneously
> > copied from the P7 version of the define which contains a version
> > of the
> > BU macro both with and without that element.  Removing the
> > RS6000_BTM_POWERPC64 portion of the define does not introduce any
> > obvious
> > failures, I believe this extra line can be safely removed.
> 
> No, it cannot.
> 
> This is used for pdepd/pextd/cntlzdm/cnttzdm/cfuged, all of which do
> need 64-bit registers to do anything sane.
> 
> This should really have defined some new builtin class, and I thought
> we
> could just be tricky and take a massive shortcut.  Bill has been hit
> by
> this already as well, sigh :-(

Ok.

The usage of that macro seems to be limited to those that you have
referenced.  i.e. 

/* Builtins for scalar instructions added in ISA 3.1 (power10).  */
BU_P10_MISC_2 (CFUGED, "cfuged", CONST, cfuged)
BU_P10_MISC_2 (CNTLZDM, "cntlzdm", CONST, cntlzdm)
BU_P10_MISC_2 (CNTTZDM, "cnttzdm", CONST, cnttzdm)
BU_P10_MISC_2 (PDEPD, "pdepd", CONST, pdepd)
BU_P10_MISC_2 (PEXTD, "pextd", CONST, pextd)

So looking at the power7 entries that have the BTM_POWERPC64 entry..

BU_P7_MISC_2 (DIVWE,            "divwe",        CONST,  dive_si)
BU_P7_MISC_2 (DIVWEU,           "divweu",       CONST,  diveu_si)
BU_P7_POWERPC64_MISC_2 (DIVDE,  "divde",        CONST,  dive_di)
BU_P7_POWERPC64_MISC_2 (DIVDEU, "divdeu",       CONST,  diveu_di)

Would it be suitable to rename the P10 macro to 
BU_P10_POWERPC64_MISC_2 ? 

I'd then debate whether to add a unused macro to fill the gap between
BU_P10_MISC_1 and BU_P10_MISC_2

If you've got schemes for a deeper fix, i'd need another hint. :-)

thanks
-Will

> 
> 
> Segher

Reply via email to