X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Fcpu-powerpc.c;h=d77b4260c1da151be8169013ac852816f2e90dca;hb=86fb1dece37497b267579ed4f062d280cd5760cd;hp=dc57c8c19fcb35eec0b055e904cd63fdcf9bfe45;hpb=df96df4cafc5658c60d928ae5dbf8e403c958b6e;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/cpu-powerpc.c b/bfd/cpu-powerpc.c index dc57c8c19f..d77b4260c1 100644 --- a/bfd/cpu-powerpc.c +++ b/bfd/cpu-powerpc.c @@ -1,5 +1,6 @@ /* BFD PowerPC CPU definition - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright 1994, 1995, 1996, 2000, 2001, 2002 + Free Software Foundation, Inc. Contributed by Ian Lance Taylor, Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -47,78 +48,233 @@ powerpc_compatible (a,b) /*NOTREACHED*/ } -static const bfd_arch_info_type arch_info_struct[] = +const bfd_arch_info_type bfd_powerpc_archs[] = { +#if BFD_DEFAULT_TARGET_SIZE == 64 /* default arch must come first. */ + { + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc64, + "powerpc", + "powerpc:common64", + 3, + true, /* default for 64 bit target */ + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[1] + }, + { + 32, /* 32 bits in a word */ + 32, /* 32 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc, /* for the POWER/PowerPC common architecture */ + "powerpc", + "powerpc:common", + 3, + false, + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[2], + }, +#else { 32, /* 32 bits in a word */ 32, /* 32 bits in an address */ 8, /* 8 bits in a byte */ bfd_arch_powerpc, - 603, /* for the mpc603 */ + bfd_mach_ppc, /* for the POWER/PowerPC common architecture */ + "powerpc", + "powerpc:common", + 3, + true, /* default for 32 bit target */ + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[1], + }, + { + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc64, + "powerpc", + "powerpc:common64", + 3, + false, + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[2] + }, +#endif + { + 32, /* 32 bits in a word */ + 32, /* 32 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc_603, "powerpc", "powerpc:603", 3, false, /* not the default */ - powerpc_compatible, + powerpc_compatible, bfd_default_scan, - &arch_info_struct[1] + &bfd_powerpc_archs[3] }, { 32, /* 32 bits in a word */ 32, /* 32 bits in an address */ 8, /* 8 bits in a byte */ bfd_arch_powerpc, - 604, /* for the mpc604 */ + bfd_mach_ppc_ec603e, + "powerpc", + "powerpc:EC603e", + 3, + false, /* not the default */ + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[4] + }, + { + 32, /* 32 bits in a word */ + 32, /* 32 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc_604, "powerpc", "powerpc:604", 3, false, /* not the default */ - powerpc_compatible, + powerpc_compatible, bfd_default_scan, - &arch_info_struct[2] + &bfd_powerpc_archs[5] }, { 32, /* 32 bits in a word */ 32, /* 32 bits in an address */ 8, /* 8 bits in a byte */ bfd_arch_powerpc, - 403, /* for the 403 */ + bfd_mach_ppc_403, "powerpc", "powerpc:403", 3, false, /* not the default */ - powerpc_compatible, + powerpc_compatible, bfd_default_scan, - &arch_info_struct[3] + &bfd_powerpc_archs[6] }, { 32, /* 32 bits in a word */ 32, /* 32 bits in an address */ 8, /* 8 bits in a byte */ bfd_arch_powerpc, - 601, /* for the mpc601 */ + bfd_mach_ppc_601, "powerpc", "powerpc:601", 3, false, /* not the default */ - powerpc_compatible, + powerpc_compatible, bfd_default_scan, - 0 - } -}; - -const bfd_arch_info_type bfd_powerpc_arch = + &bfd_powerpc_archs[7] + }, + { + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc_620, + "powerpc", + "powerpc:620", + 3, + false, /* not the default */ + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[8] + }, + { + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc_630, + "powerpc", + "powerpc:630", + 3, + false, /* not the default */ + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[9] + }, + { + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc_a35, + "powerpc", + "powerpc:a35", + 3, + false, /* not the default */ + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[10] + }, + { + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc_rs64ii, + "powerpc", + "powerpc:rs64ii", + 3, + false, /* not the default */ + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[11] + }, + { + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc_rs64iii, + "powerpc", + "powerpc:rs64iii", + 3, + false, /* not the default */ + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[12] + }, { 32, /* 32 bits in a word */ 32, /* 32 bits in an address */ 8, /* 8 bits in a byte */ bfd_arch_powerpc, - 0, /* for the POWER/PowerPC common architecture */ + bfd_mach_ppc_7400, "powerpc", - "powerpc:common", + "powerpc:7400", + 3, + false, /* not the default */ + powerpc_compatible, + bfd_default_scan, + &bfd_powerpc_archs[13] + }, + { + 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", + "powerpc:MPC8XX", 3, - true, /* the default */ - powerpc_compatible, + false, /* not the default */ + powerpc_compatible, bfd_default_scan, - &arch_info_struct[0] - }; + 0 + } +};