Hi Andrew, Sorry it is so late, but here is another attempt at resolving this problem. Features of this patch include: * I did not try to update the ASCII art in sh-opc.h with the new relationships. In my opinion it just makes the diagram too cluttered to be useful anymore. * I have tried to use more meaningful names for the new machine values. * I have added tests for the new machine values to the SH specific parts of the GAS and LD testsuites. What do you think ? Cheers Nick bfd/ChangeLog 2004-12-15 Nick Clifton * archures.c: Rename fake SH2A machine numbers to more helpful versions: bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu, bfd_mach_sh2a_nofpu_or_sh3_nommu, bfd_mach_sh2a_or_sh4, bfd_mach_sh2a_or_sh3e. * bfd-in2.h: Regenerate. * cpu-sh.c (arch_info_struct): Add entries for the fake SH2A machine values. (bfd_to_arch_table): Likewise. opcodes/ChangeLog 2004-12-15 Nick Clifton * sh-opc.h (arch_sh2a_nofpu_or_sh4_nommu_nofpu, arch_sh2a_nofpu_or_sh3_nommu, arch_sh2a_or_sh4, arch_sh2a_or_sh3e, arch_sh2a_nofpu_or_sh4_nommu_nofpu_up, arch_sh2a_nofpu_or_sh3_nommu_up, arch_sh2a_or_sh4_up, arch_sh2a_or_sh3e_up): New defines. (sh_table): Use the new arch defines to replace entries which previously combined two different arches. include/elf/ChangeLog 2004-12-15 Nick Clifton * sh.h (EF_SH2A_SH4_NOFPU, EF_SH2A_SH3_NOFPU, EF_SH2A_SH4, EF_SH2A_SH3E): New flags for fake SH2A machine values. (EF_SH_BFD_TABLE): Add the flags to the table. gas/testsuite/ChangeLog 2004-12-15 Nick Clifton * gas/sh/arch/sh2a-nofpu-or-sh3-nommu.s: New test file. * gas/sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s: New test file. * gas/sh/arch/sh2a-or-sh4.s: New test file. * gas/sh/arch/sh2a-or-sh3e.s: New test file. * gas/sh/arch/sh4.s: Fix to use an SH4 only instruction. * gas/sh/arch/arch_expected.txt: Update with new expected test results. ld/testsuite/ChangeLog 2004-12-15 Nick Clifton * ld/ld-sh/sh/arch/sh2a-nofpu-or-sh3-nommu.s: New test file. * ld/ld-sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s: New test file. * ld/ld-sh/arch/sh2a-or-sh4.s: New test file. * ld/ld-sh/arch/sh2a-or-sh3e.s: New test file. * ld/ld-sh/arch/sh4.s: Fix to use an SH4 only instruction. * ld/ld-sh/arch/arch_expected.txt: Update with new expected test results.