How can I access ELF Header from FOO-dis.c

Shekhar Divekar shekhar@cradle.com
Mon Jan 19 15:49:00 GMT 2004


To explain my requirement more.

The target is a SoC supporting multiple ISAs. MACHs map to
ISAs x ArchRevision. So bfd_get_mach() can give me only the default
MACH for an ArchRevision. In CGEN_COMPUTE_MACH I depend on SECTION
name [which is diff for each ISA] and ArchRevision to select the MACH.

The ARCH + MACH scheme is insufficient to represent all variations
hence I have to e_flags to store ArchRevision info.

So pictorially we have

       TARGET_ARCH		[bfd_arch]
           |
	/   \
       /       \
      /         \
   ARCH_REV1     ARCH_REV2___
   |   |   |      |     |   |
ISA1 ISA2 ISA3  ISA1 ISA2 ISA3	[bfd_mach]

I have all the needed info in e_flags but I can't pass it to
disassembler without breaking the current bfd/cgen scheme.

Can someone suggest a good solution.

Thanks
Shekhar

Ian Lance Taylor wrote:
> Shekhar Divekar <shekhar@cradle.com> writes:
> 
> 
>>I am working on a port of binutils 2.14.90 to our target.
>>I want use CGEN_COMPUTE_MACH macro in print_insn
>>to decipher the mach for which I am disassembling.
>>Also we store the arch and mach info in e_flgas of
>>ELF header.
>>
>>How can I access ELF header information from
>>FOO-dis.c ?
> 
> 
> Normally a disassembler would get this information using
> bfd_get_arch() and bfd_get_mach().  Other parts of BFD would arrange
> to have the right information stored there.
> 
> Ian
> 
> 



More information about the Binutils mailing list