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: PATCH: ARM V6 instructions in GAS


On Thu, 2003-12-11 at 23:50, Alan Modra wrote:
> On Fri, Dec 05, 2003 at 05:26:25PM -0800, Mark Mitchell wrote:
> > On Fri, 2003-12-05 at 04:07, Richard Earnshaw wrote:
> > > > mark@codesourcery.com said:
> > > > > This patch adds support for the ARM V6 architecture to GAS, including
> > > > > both the new ARM and new THUMB instructions.
> 
> --target=arm-aout gas testsuite
> +FAIL: THUMB V6 instructions

The attached patch (diffs) (checked in) fixes this failure.  This issue
was due to an oddity in the aout file format, and I fixed it by using
the same approach used for other ARM tests.

> --target=arm-coff gas testsuite
> +FAIL: ARM V6 instructions

The core problem is that in COFF mode we do not really know what machine
architecture is being used in the assembly file.

See this comment in coffcode.h:

	      /* The COFF header does not have enough bits available
		 to cover all the different ARM architectures.  So
		 we interpret F_ARM_5, the highest flag value to mean
		 "the highest ARM architecture known to BFD" which is
		 currently the XScale.  */

We mistakenly think that the code was generated for XScale and try to
disassemble it accordingly, which gets us the wrong answer for two
instructions in the .s file.

I tried updating things so that F_ARM_5 implied ARM V6, but that isn't
really right because there is no proper notion of "the highest ARM
architecture known to BFD" once we have both XScale and ARM V6.  Neither
is a superset of the other.

So, I checked in the attached patch (diffs2) which gives priority to V6
instructions over XScale instructions when disassembling.  That approach
should be correct, in that the V6 instructions were designed not to
conflict with the XScale instructions.

-- 
Mark Mitchell <mark@codesourcery.com>
CodeSourcery, LLC

Attachment: diffs
Description: Text document

Attachment: diffs2
Description: Text document


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