This is the mail archive of the binutils@sourceware.cygnus.com 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]

Re: question on `pushb' for i386


On Wed, 3 May 2000, David O'Brien wrote:

> With 2.9.1 FreeBSD was able to use the 'pushb' memnomic (used for the
> instruction to push a zero-extended byte onto the stack as a full word)
> in .s files.  However, using the 0000424 snapshot's GAS I get "{standard
> input}:358: Error: suffix or operands invalid for `push'" for
> "pushb $0x10".
> 
> In trying to find why the difference, I cannot even find `pushb' in
> 2.9.1.  How was it accepted there?  In 0000424 the 'push' instruction
> seems to do the same as 'pushb' automatically.  Was the 'pushb'
> instruction removed from GAS?

2.9.4 and above are a _lot_ more fussy about x86 syntax.  All the
following silly combinations, and more, are now rejected 

        pushb   %al
        setae   %eax
        ldsb    0,%eax
        setnew  0
        div     %cx,%al
        fstb    %st,0
        xlatw
        stil
        jaw     bone

2.9.1 would quite happily assemble them, ignoring the suffix or wrong
register size;  Sometimes this was what the programmer intendend,
sometimes it provided an unwelcome surprise.

Please fix your sources.  pushb has been banished.  If you like, I can
expound on the reasons at length via private email.

Regards, Alan Modra

-- 
Linuxcare.  Support for the Revolution.



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