X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Fcpu-m32c.c;h=95d5e4d016b01c468a11543a8e05bf04c7a32b91;hb=44e33ab45df75bea0a7f64db1b6846cdf6c99299;hp=729c32d7f8fe26bc696ca80118138c599de19fa9;hpb=cd123cb70c845b890eed231a84e6e84c92c2ef92;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/cpu-m32c.c b/bfd/cpu-m32c.c index 729c32d7f8..95d5e4d016 100644 --- a/bfd/cpu-m32c.c +++ b/bfd/cpu-m32c.c @@ -1,5 +1,5 @@ /* BFD support for the M16C/M32C processors. - Copyright (C) 2004, 2007 Free Software Foundation, Inc. + Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -22,36 +22,26 @@ #include "bfd.h" #include "libbfd.h" -static const bfd_arch_info_type arch_info_struct[] = +/* Like bfd_default_scan but if the string is just "m32c" then + skip the m16c architecture. */ + +static bfd_boolean +m32c_scan (const bfd_arch_info_type * info, const char * string) { - { - 32, /* bits per word */ - 32, /* bits per address */ - 8, /* bits per byte */ - bfd_arch_m32c, /* architecture */ - bfd_mach_m32c, /* machine */ - "m32c", /* architecture name */ - "m32c", /* printable name */ - 3, /* section align power */ - FALSE, /* the default ? */ - bfd_default_compatible, /* architecture comparison fn */ - bfd_default_scan, /* string to architecture convert fn */ - NULL /* next in list */ - }, -}; + if (strcmp (string, "m32c") == 0 + && info->mach == bfd_mach_m16c) + return FALSE; + + return bfd_default_scan (info, string); +} + +#define N(number, print, align, default, next) \ +{ 32, 32, 8, bfd_arch_m32c, number, "m32c", print, align, default, \ + bfd_default_compatible, m32c_scan, bfd_arch_default_fill, next, 0 } + +static const bfd_arch_info_type arch_info_struct = + N (bfd_mach_m32c, "m32c", 3, FALSE, NULL); const bfd_arch_info_type bfd_m32c_arch = -{ - 32, /* Bits per word. */ - 32, /* Bits per address. */ - 8, /* Bits per byte. */ - bfd_arch_m32c, /* Architecture. */ - bfd_mach_m16c, /* Machine. */ - "m32c", /* Architecture name. */ - "m16c", /* Printable name. */ - 4, /* Section align power. */ - TRUE, /* The default ? */ - bfd_default_compatible, /* Architecture comparison fn. */ - bfd_default_scan, /* String to architecture convert fn. */ - &arch_info_struct[0], /* Next in list. */ -}; + N (bfd_mach_m16c, "m16c", 4, TRUE, &arch_info_struct); +