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