This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Arm FPA stfpls


On Thu, 2005-09-01 at 20:20, Paul Brook wrote:
> The attached patch fixes a bug introduced with the Arm unified assembly syntax 
> changes.
> 
> The "stfpls" instruction is not parsed correctly. This mnemonic matches both 
> an infixed and suffixed instructions (stfs pl and stfp ls respectively).
> 
> The problem is that when a conditional suffix matches but is disallowed, the 
> parser returnes failure instead of trying an conditional infix.
> 
> Tested with cross to arm-none-eabi.
> Ok?

This is a fairly serious issue which hasn't come up before because
nobody has really thought about legacy instructions (FPA is legacy these
days :-).  It also applies to a small number of legacy 26-bit
instructions as well.

The problem instructions are {ldf,stf,cmp,cmn,teq,tst}pls, all of which
change meaning if you try to apply the new UAL rules to them.  (on the
comparison instructions above, the 's' was redundant but accepted by the
assembler in legacy mode).

The intent of UAL is that existing ARM code (but not thumb) can be
re-assembled in UAL mode without changing the meaning.  The above kind
of break this intent if you apply the new rules strictly.  I've
discussed this with a colleague and we have concluded that for these
instructions only, the UAL interpretation should be the same as the
traditional interpretation: that is, they should continue to use the
infix notation.

So, for example, STFPLS always means STFS conditional on PL.

R.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]