diff options
-rw-r--r-- | bfd/ChangeLog | 10 | ||||
-rw-r--r-- | bfd/archures.c | 1 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 1 | ||||
-rw-r--r-- | bfd/cpu-h8300.c | 26 | ||||
-rw-r--r-- | bfd/elf32-h8300.c | 7 | ||||
-rw-r--r-- | include/elf/ChangeLog | 4 | ||||
-rw-r--r-- | include/elf/h8.h | 1 |
7 files changed, 48 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7bec6fde06b..2b35ed0c189 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,13 @@ +2003-06-10 Richard Sandiford <rsandifo@redhat.com> + + * archures.c (bfd_mach_h8300sxn): New architecture. + * bfd-in2.h: Regenerate. + * cpu-h8300.c (h8300_scan): Check for 'sxn'. + (h8300sxn_info_struct): New. + (h8300sx_info_struct): Link to it. + * elf32-h8300.c (elf32_h8_mach): Add h8300sxn case. + (elf32_h8_final_write_processing): Likewise. + 2003-06-08 Alan Modra <amodra@bigpond.net.au> * elf64-ppc.c: Move TARGET_LITTLE_SYM and other macros used by diff --git a/bfd/archures.c b/bfd/archures.c index 250892ce532..6132f155df0 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -170,6 +170,7 @@ DESCRIPTION .#define bfd_mach_h8300hn 4 .#define bfd_mach_h8300sn 5 .#define bfd_mach_h8300sx 6 +.#define bfd_mach_h8300sxn 7 . 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 80a543ae64d..ebe5bcab258 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1654,6 +1654,7 @@ enum bfd_architecture #define bfd_mach_h8300hn 4 #define bfd_mach_h8300sn 5 #define bfd_mach_h8300sx 6 +#define bfd_mach_h8300sxn 7 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 f61e7576a8b..e1c77bfe2e6 100644 --- a/bfd/cpu-h8300.c +++ b/bfd/cpu-h8300.c @@ -82,7 +82,13 @@ h8300_scan (info, string) return (info->mach == bfd_mach_h8300sn); if (*string == 'x' || *string == 'X') - return (info->mach == bfd_mach_h8300sx); + { + string++; + if (*string == 'n' || *string == 'N') + return (info->mach == bfd_mach_h8300sxn); + + return (info->mach == bfd_mach_h8300sx); + } return (info->mach == bfd_mach_h8300s); } @@ -106,6 +112,22 @@ compatible (in, out) return in; } +static const bfd_arch_info_type h8300sxn_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_h8300sxn, + "h8300sxn", /* arch_name */ + "h8300sxn", /* printable name */ + 1, + FALSE, /* the default machine */ + compatible, + h8300_scan, + 0 +}; + static const bfd_arch_info_type h8300sx_info_struct = { 32, /* 32 bits in a word */ @@ -119,7 +141,7 @@ static const bfd_arch_info_type h8300sx_info_struct = FALSE, /* the default machine */ compatible, h8300_scan, - 0 + &h8300sxn_info_struct }; static const bfd_arch_info_type h8300sn_info_struct = diff --git a/bfd/elf32-h8300.c b/bfd/elf32-h8300.c index f272dc8e084..e4929fb4ae0 100644 --- a/bfd/elf32-h8300.c +++ b/bfd/elf32-h8300.c @@ -582,6 +582,9 @@ elf32_h8_mach (flags) case E_H8_MACH_H8300SX: return bfd_mach_h8300sx; + + case E_H8_MACH_H8300SXN: + return bfd_mach_h8300sxn; } } @@ -622,6 +625,10 @@ elf32_h8_final_write_processing (abfd, linker) case bfd_mach_h8300sx: val = E_H8_MACH_H8300SX; break; + + case bfd_mach_h8300sxn: + val = E_H8_MACH_H8300SXN; + break; } elf_elfheader (abfd)->e_flags &= ~ (EF_H8_MACH); diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index db652e29868..8221242f356 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,7 @@ +2003-06-10 Richard Sandiford <rsandifo@redhat.com> + + * h8.h (E_H8_MACH_H8300SXN): New flag. + 2003-06-03 Nick Clifton <nickc@redhat.com> * v850.h (R_V850_32): Rename to R_V850_ABS32. diff --git a/include/elf/h8.h b/include/elf/h8.h index 79c0a34fb32..1aad7a4ed5b 100644 --- a/include/elf/h8.h +++ b/include/elf/h8.h @@ -95,5 +95,6 @@ END_RELOC_NUMBERS (R_H8_max) #define E_H8_MACH_H8300HN 0x00830000 #define E_H8_MACH_H8300SN 0x00840000 #define E_H8_MACH_H8300SX 0x00850000 +#define E_H8_MACH_H8300SXN 0x00860000 #endif |