Broken SH2a patches
Nick Clifton
nickc@redhat.com
Mon Dec 20 17:18:00 GMT 2004
Hi Andrew,
> Whatever technique we use it needs to be able to select an
> architecture, based on the instructions in the file, that
> specifies what architecture the file will run on, without
> excluding any other similar, but different, architectures
> that it may also run on (hence the fake architectures). Any
> ideas?
The simplest and most extensible scheme would be to drop the
different machine values altogether. Just have one bfd_mach_sh number
and one EF_SH_ number. Instead binary files would have a new .note
section which contains an extensible bit mask of the architectures on
which the instructions in that file can be run. When two or more files
are combined this mask would be ANDed together to give the mask for the
output binary and checked via XOR for incompatibilities.
Each instruction would also need one of these bitmasks. When a new
architecture is added every instruction's bitmask would have to be
updated if it was supported by the new architecture. This would only
have to be done once though and there are macros that could be defined
to make it simpler.
Anyway attached is a revised patch that includes your diagram of the
dependencies (thanks) as well as some new base values and a fixed set of
architecture definitions. (The problem you noticed with the -isa=sh2e
selecting the sh2a-or-sh3e architecture was that the original definition
of arch_sh2e defined it in terms of both sh2e_base and sh2a_base).
I have also tweaked the #defines for the various base architecture
values so it should be easier to add new ones in the future.
What do you think of this version ?
Cheers
Nick
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sh.patch.3
Type: text/x-troff-man
Size: 83572 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20041220/11d2fd70/attachment.bin>
More information about the Binutils
mailing list