This is the mail archive of the binutils@sources.redhat.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]
Other format: [Raw text]

Re: ia64 gas default mode


On Wed, 2005-01-19 at 23:56, Jan Beulich wrote:
> I, within the first few hours of trying to use gas to translate assembly
> sources, ran into so many (non-DV-related) problems that I didn't even
> get to see many DV-related ones, yet.

Gas works fine for glibc, linux kernel, gcc etc.  So there really
shouldn't be any serious problems other than the DV problems.  That is
the only important part left that is unfinished.  There are probably the
usual minor bugs in poorly exercised parts of the port though.

There are however a number of differences between Intel and gas syntax. 
At the beginning, we tried to be completely compatible with the Intel
syntax, as described by the documentation, but we have run into a number
of problems.

The Intel assembler did not behave as specified by the assembler and
architecture documentation in some cases, and in many such cases, we
have decided to follow the documentation.  Thus there are known cases
where stuff accepted by one assembler isn't accepted by the other.  An
example of this is ".restore sp".  The docs clearly indicate that
restore takes an argument, so gas did it this way, and we only later
learned that the Intel assembler only accepted .restore without any
argument at all.  We firmly believe that Intel got this wrong, but we
could perhaps accept both, and hope that the Intel assembler will accept
both too.  We can't just switch to the (broken) Intel syntax, as we have
too much code using the (correct) current syntax.  Likewise, Intel can't
switch syntax as it would break their assembly code.

Gas followed the syntax described in the early pre-release Intel
manuals.  Some of this syntax changed before Itanium was released, and
in some cases, gas has been slow to catch up to the changes.  This is
why for instance we have two different syntaxes for describing a mutex. 
There is the pre-release syntax and the post-release syntax.  We really
should drop the old one, but no one has tried that yet, it might be too
difficult if there are still too many people using the old syntax.

The Intel assembler has a number of interesting features that may never
be implemented in the gas port, automatic register allocation for
instance.  Intel changed the docs to state that some features were
optional, and register allocation is one of them, so we stopped worrying
about this.

There are probably some other issues.  I used to have a list of them,
but I eventually stopped caring.  There are so few people that care
about Intel/gas syntax compatibility that it wasn't worth the trouble of
trying to fix.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



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