X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Fcpu-powerpc.c;h=bfe4868159294c274034ca4b0298144f1ed82665;hb=9a49df9d4bfc7ff03fed751e12b1bc32fbee4fb2;hp=54012359e2757d48799e509f7c3703a1c0c79431;hpb=b9c361e0ad33f2c841067fd4bf0959a72ad5a265;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/cpu-powerpc.c b/bfd/cpu-powerpc.c index 54012359e2..bfe4868159 100644 --- a/bfd/cpu-powerpc.c +++ b/bfd/cpu-powerpc.c @@ -1,6 +1,5 @@ /* BFD PowerPC CPU definition - Copyright 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2005, 2007, 2008, - 2010, 2012 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributed by Ian Lance Taylor, Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -26,13 +25,9 @@ /* The common PowerPC architecture is compatible with the RS/6000. */ -static const bfd_arch_info_type *powerpc_compatible - PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *)); - static const bfd_arch_info_type * -powerpc_compatible (a,b) - const bfd_arch_info_type *a; - const bfd_arch_info_type *b; +powerpc_compatible (const bfd_arch_info_type *a, + const bfd_arch_info_type *b) { BFD_ASSERT (a->arch == bfd_arch_powerpc); switch (b->arch) @@ -40,6 +35,10 @@ powerpc_compatible (a,b) default: return NULL; case bfd_arch_powerpc: + if (a->mach == bfd_mach_ppc_vle && b->bits_per_word == 32) + return a; + if (b->mach == bfd_mach_ppc_vle && a->bits_per_word == 32) + return b; return bfd_default_compatible (a, b); case bfd_arch_rs6000: if (b->mach == bfd_mach_rs6k) @@ -286,9 +285,9 @@ const bfd_arch_info_type bfd_powerpc_archs[] = &bfd_powerpc_archs[13] }, { - 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_powerpc, bfd_mach_ppc_e500, "powerpc", @@ -301,9 +300,9 @@ const bfd_arch_info_type bfd_powerpc_archs[] = &bfd_powerpc_archs[14] }, { - 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_powerpc, bfd_mach_ppc_e500mc, "powerpc", @@ -316,9 +315,9 @@ const bfd_arch_info_type bfd_powerpc_archs[] = &bfd_powerpc_archs[15] }, { - 64, /* 64 bits in a word */ - 64, /* 64 bits in an address */ - 8, /* 8 bits in a byte */ + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ bfd_arch_powerpc, bfd_mach_ppc_e500mc64, "powerpc", @@ -331,9 +330,9 @@ const bfd_arch_info_type bfd_powerpc_archs[] = &bfd_powerpc_archs[16] }, { - 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_powerpc, bfd_mach_ppc_860, "powerpc", @@ -346,9 +345,9 @@ const bfd_arch_info_type bfd_powerpc_archs[] = &bfd_powerpc_archs[17] }, { - 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_powerpc, bfd_mach_ppc_750, "powerpc", @@ -361,9 +360,9 @@ const bfd_arch_info_type bfd_powerpc_archs[] = &bfd_powerpc_archs[18] }, { - 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_powerpc, bfd_mach_ppc_titan, "powerpc", @@ -376,9 +375,9 @@ const bfd_arch_info_type bfd_powerpc_archs[] = &bfd_powerpc_archs[19] }, { - 16, /* 16 or 32 bits in a word */ - 32, /* 32 bits in an address */ - 8, /* 8 bits in a byte */ + 16, /* 16 or 32 bits in a word */ + 32, /* 32 bits in an address */ + 8, /* 8 bits in a byte */ bfd_arch_powerpc, bfd_mach_ppc_vle, "powerpc", @@ -391,9 +390,9 @@ const bfd_arch_info_type bfd_powerpc_archs[] = &bfd_powerpc_archs[20] }, { - 64, /* 64 bits in a word */ - 64, /* 64 bits in an address */ - 8, /* 8 bits in a byte */ + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ bfd_arch_powerpc, bfd_mach_ppc_e5500, "powerpc", @@ -406,9 +405,9 @@ const bfd_arch_info_type bfd_powerpc_archs[] = &bfd_powerpc_archs[21] }, { - 64, /* 64 bits in a word */ - 64, /* 64 bits in an address */ - 8, /* 8 bits in a byte */ + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ bfd_arch_powerpc, bfd_mach_ppc_e6500, "powerpc",