From: Michael Snyder Date: Fri, 16 May 2003 23:39:24 +0000 (+0000) Subject: 2003-05-16 Michael Snyder X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5d1db417cabc9c212b1e149eeb8cac486e8264bd;p=binutils-gdb.git 2003-05-16 Michael Snyder From Bernd Schmidt * archures.c (bfd_mach_h8300sx): New. * bfd-in2.h: Regenerate. * cpu-h8300.c (h8300_scan)): Add support for h8300sx. (h8300sx_info_struct): New. (h8300s_info_struct): Link to it. * elf32-h8300.c (elf32_h8_mach): Add support for h8300sx. (elf32_h8_final_write_processing): Likewise. (elf32_h8_relax_section): Likewise. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c0972f6b603..bf7b1f6d047 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,14 @@ +2003-05-16 Michael Snyder + From Bernd Schmidt + * archures.c (bfd_mach_h8300sx): New. + * bfd-in2.h: Regenerate. + * cpu-h8300.c (h8300_scan)): Add support for h8300sx. + (h8300sx_info_struct): New. + (h8300s_info_struct): Link to it. + * elf32-h8300.c (elf32_h8_mach): Add support for h8300sx. + (elf32_h8_final_write_processing): Likewise. + (elf32_h8_relax_section): Likewise. + 2003-05-16 Kelley Cook * config.bfd: Accept i[3-7]86 variants. diff --git a/bfd/archures.c b/bfd/archures.c index 3d473c3b8a2..250892ce532 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -169,6 +169,7 @@ DESCRIPTION .#define bfd_mach_h8300s 3 .#define bfd_mach_h8300hn 4 .#define bfd_mach_h8300sn 5 +.#define bfd_mach_h8300sx 6 . bfd_arch_pdp11, {* DEC PDP-11 *} . bfd_arch_powerpc, {* PowerPC *} .#define bfd_mach_ppc 32 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 637376bc0dd..4f7014e2be6 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1635,6 +1635,7 @@ enum bfd_architecture #define bfd_mach_h8300s 3 #define bfd_mach_h8300hn 4 #define bfd_mach_h8300sn 5 +#define bfd_mach_h8300sx 6 bfd_arch_pdp11, /* DEC PDP-11 */ bfd_arch_powerpc, /* PowerPC */ #define bfd_mach_ppc 32 diff --git a/bfd/cpu-h8300.c b/bfd/cpu-h8300.c index 2a5c604df64..f61e7576a8b 100644 --- a/bfd/cpu-h8300.c +++ b/bfd/cpu-h8300.c @@ -81,6 +81,9 @@ h8300_scan (info, string) if (*string == 'n' || *string == 'N') return (info->mach == bfd_mach_h8300sn); + if (*string == 'x' || *string == 'X') + return (info->mach == bfd_mach_h8300sx); + return (info->mach == bfd_mach_h8300s); } else @@ -103,6 +106,22 @@ compatible (in, out) return in; } +static const bfd_arch_info_type h8300sx_info_struct = +{ + 32, /* 32 bits in a word */ + 32, /* 32 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_h8300, + bfd_mach_h8300sx, + "h8300sx", /* arch_name */ + "h8300sx", /* printable name */ + 1, + FALSE, /* the default machine */ + compatible, + h8300_scan, + 0 +}; + static const bfd_arch_info_type h8300sn_info_struct = { 32, /* 32 bits in a word. */ @@ -116,7 +135,7 @@ static const bfd_arch_info_type h8300sn_info_struct = FALSE, /* The default machine. */ compatible, h8300_scan, - 0 + &h8300sx_info_struct }; diff --git a/bfd/elf32-h8300.c b/bfd/elf32-h8300.c index 5a26fbdb208..f272dc8e084 100644 --- a/bfd/elf32-h8300.c +++ b/bfd/elf32-h8300.c @@ -579,6 +579,9 @@ elf32_h8_mach (flags) case E_H8_MACH_H8300SN: return bfd_mach_h8300sn; + + case E_H8_MACH_H8300SX: + return bfd_mach_h8300sx; } } @@ -615,6 +618,10 @@ elf32_h8_final_write_processing (abfd, linker) case bfd_mach_h8300sn: val = E_H8_MACH_H8300SN; break; + + case bfd_mach_h8300sx: + val = E_H8_MACH_H8300SX; + break; } elf_elfheader (abfd)->e_flags &= ~ (EF_H8_MACH); @@ -1023,7 +1030,10 @@ elf32_h8_relax_section (abfd, sec, link_info, again) && value >= 0xff00 && value <= 0xffff) || ((bfd_get_mach (abfd) == bfd_mach_h8300h - || bfd_get_mach (abfd) == bfd_mach_h8300s) + /* FIXME: h8300hn? */ + || bfd_get_mach (abfd) == bfd_mach_h8300s + /* FIXME: h8300sn? */ + || bfd_get_mach (abfd) == bfd_mach_h8300sx) && value >= 0xffff00 && value <= 0xffffff)) { @@ -1081,7 +1091,10 @@ elf32_h8_relax_section (abfd, sec, link_info, again) && value >= 0xff00 && value <= 0xffff) || ((bfd_get_mach (abfd) == bfd_mach_h8300h - || bfd_get_mach (abfd) == bfd_mach_h8300s) + /* FIXME: h8300hn? */ + || bfd_get_mach (abfd) == bfd_mach_h8300s + /* FIXME: h8300sn? */ + || bfd_get_mach (abfd) == bfd_mach_h8300sx) && value >= 0xffff00 && value <= 0xffffff)) {