diff options
author | Nick Clifton <nickc@redhat.com> | 2003-04-24 12:36:08 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2003-04-24 12:36:08 +0000 |
commit | 8d9cd6b19b78f2a0cd3df40b52b13062e72e41b7 (patch) | |
tree | 7365e9cbf12a723bac858168edc1d1d7a47feeca /bfd/cpu-h8300.c | |
parent | 5ce8663f498b9305547763395c33260f19cda41c (diff) | |
download | binutils-gdb-8d9cd6b19b78f2a0cd3df40b52b13062e72e41b7.tar.gz |
Add support for h8300hn and h8300sn
Diffstat (limited to 'bfd/cpu-h8300.c')
-rw-r--r-- | bfd/cpu-h8300.c | 83 |
1 files changed, 61 insertions, 22 deletions
diff --git a/bfd/cpu-h8300.c b/bfd/cpu-h8300.c index daef763a29b..2a5c604df64 100644 --- a/bfd/cpu-h8300.c +++ b/bfd/cpu-h8300.c @@ -69,16 +69,22 @@ h8300_scan (info, string) if (*string == 'h' || *string == 'H') { + string++; + if (*string == 'n' || *string == 'N') + return (info->mach == bfd_mach_h8300hn); + return (info->mach == bfd_mach_h8300h); } else if (*string == 's' || *string == 'S') { + string++; + if (*string == 'n' || *string == 'N') + return (info->mach == bfd_mach_h8300sn); + return (info->mach == bfd_mach_h8300s); } else - { - return info->mach == bfd_mach_h8300; - } + return info->mach == bfd_mach_h8300; } /* This routine is provided two arch_infos and works out the machine @@ -97,33 +103,66 @@ compatible (in, out) return in; } +static const bfd_arch_info_type h8300sn_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_h8300sn, + "h8300sn", /* Architecture name. */ + "h8300sn", /* Printable name. */ + 1, + FALSE, /* The default machine. */ + compatible, + h8300_scan, + 0 +}; + + +static const bfd_arch_info_type h8300hn_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_h8300hn, + "h8300hn", /* Architecture name. */ + "h8300hn", /* Printable name. */ + 1, + FALSE, /* The default machine. */ + compatible, + h8300_scan, + &h8300sn_info_struct +}; + static const bfd_arch_info_type h8300s_info_struct = { - 32, /* 32 bits in a word */ - 32, /* 32 bits in an address */ - 8, /* 8 bits in a byte */ + 32, /* 32 bits in a word. */ + 32, /* 32 bits in an address. */ + 8, /* 8 bits in a byte. */ bfd_arch_h8300, bfd_mach_h8300s, - "h8300s", /* arch_name */ - "h8300s", /* printable name */ + "h8300s", /* Architecture name. */ + "h8300s", /* Printable name. */ 1, - FALSE, /* the default machine */ + FALSE, /* The default machine. */ compatible, h8300_scan, - 0 + & h8300hn_info_struct }; static const bfd_arch_info_type h8300h_info_struct = { - 32, /* 32 bits in a word */ - 32, /* 32 bits in an address */ - 8, /* 8 bits in a byte */ + 32, /* 32 bits in a word. */ + 32, /* 32 bits in an address. */ + 8, /* 8 bits in a byte. */ bfd_arch_h8300, bfd_mach_h8300h, - "h8300h", /* arch_name */ - "h8300h", /* printable name */ + "h8300h", /* Architecture name. */ + "h8300h", /* Printable name. */ 1, - FALSE, /* the default machine */ + FALSE, /* The default machine. */ compatible, h8300_scan, &h8300s_info_struct @@ -131,15 +170,15 @@ static const bfd_arch_info_type h8300h_info_struct = const bfd_arch_info_type bfd_h8300_arch = { - 16, /* 16 bits in a word */ - 16, /* 16 bits in an address */ - 8, /* 8 bits in a byte */ + 16, /* 16 bits in a word. */ + 16, /* 16 bits in an address. */ + 8, /* 8 bits in a byte. */ bfd_arch_h8300, bfd_mach_h8300, - "h8300", /* arch_name */ - "h8300", /* printable name */ + "h8300", /* Architecture name. */ + "h8300", /* Printable name. */ 1, - TRUE, /* the default machine */ + TRUE, /* The default machine. */ compatible, h8300_scan, &h8300h_info_struct |