assorted PPC questions

Alan Modra amodra@gmail.com
Wed Aug 5 12:15:07 GMT 2020


On Wed, Aug 05, 2020 at 09:38:35AM +0200, Jan Beulich wrote:
> Alan, Peter,
> 
> over time I've accumulated a number of observations that I'd like to
> raise, in the hope that you may be able to clarify some or all of
> them. With suitable answers either way, I could certainly see about
> addressing those which are indeed deemed omissions, albeit in some
> cases I'd likely need assistance in e.g. determining as of which
> Power<N> version support ought to be available.
> 
> Shouldn't objdump prefer pseudos of M{F,T}VSRD just like it does for
> MFVSRWZ/MTVSRW{A,Z} (apparent anomaly introduced by c0637f3af6866)?

Yes, we should be consistent in choosing the fpr or vr extended
mnemonics in all cases, I think.  Or in no case..

> Shouldn't gas support ICBT in a wider fashion, i.e. not just for
> exotic (as I would call them) flavors?

Yes, ISA 2.03.

> Shouldn't gas support MISO not just for E6500?

Seems like it should, ISA 2.07.

> Shouldn't gas support EXSER?

That too, ISA 3.0C (or should that be 3.1?)

> Shouldn't gas support MSGCLRU and MSGSNDU (perhaps an oversight
> when support for ISA 3.0C's URFID was added)?

Yes.

> Shouldn't gas support Power7's (also Power8?) WAIT (with its WAITRSV
> and WAITIMPL pseudos), currently supported for just E500MC and A2)?

Yes.

> Shouldn't gas support URMOR, USRR0, USRR1, USPRG0, USPRG1, and
> SMFCTRL special registers (i.e. the respective pseudos)?

Well, maybe.  I personally prefer plain mtspr/mfspr with the reg
number (or a define) for most of these.  And it gets to be a real pain
supporting all the variant sprs that kernel people might want to use
on various processors.  I'll note that in quite a few cases we have
extended mnemonics but no special recognition in the assembler for the
reg.  eg. mtsprg0 but no sprg0 reg.

> Shouldn't gas reject (or at least warn about) instructions invalid
> in little endian mode?

lmw, stmw, lswi, lswx, stswi, stswx?  Probably.

> Furthermore there are a few items which look to be inconsistent /
> incomplete in the ISA spec itself, and hence aren't directly gas
> issues:
> 
> While there are XVMOV{S,D}P pseudos of XVCPSGN{S,D}P, shouldn't
> there also be XSMOV{D,Q}P (based on XSCPSGN{D,Q}P)? (I'm somewhat
> puzzled by the absence of XSCPSGNSP, but the set of XS*SP looks to
> be rather more limited compared to XS*DP and even XS*QP anyway.)
> 
> Wouldn't there better be CCTP* (as used by Cell) or similar pseudos
> of OR?
> 
> Wouldn't availability of pseudos implying %cr0 as first (i.e.
> destination) operand better be consistent throughout the opcode set?

I'm going to leave answering these last points to Peter, or until
tomorrow after I implement the ones that are in the ISA and missing
from gas.  Thanks!

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list