* archures.c (bfd_lookup_arch): Add comment on list order.

(bfd_default_set_arch_mach): Use bfd_lookup_arch.
	* cpu-powerpc.c (bfd_powerpc_archs): Re-order so that the default
	is always at head of list.
This commit is contained in:
Alan Modra 2002-04-20 02:54:26 +00:00
parent 73d322b1b9
commit 99dc00929f
3 changed files with 83 additions and 55 deletions

View file

@ -1,3 +1,10 @@
2002-04-20 Alan Modra <amodra@bigpond.net.au>
* archures.c (bfd_lookup_arch): Add comment on list order.
(bfd_default_set_arch_mach): Use bfd_lookup_arch.
* cpu-powerpc.c (bfd_powerpc_archs): Re-order so that the default
is always at head of list.
2002-04-18 Nick Clifton <nickc@cambridge.redhat.com>
* coff-arm.c (coff_thumb_pcrel_12, coff_thumb_pcrel_9,

View file

@ -604,21 +604,9 @@ bfd_default_set_arch_mach (abfd, arch, mach)
enum bfd_architecture arch;
unsigned long mach;
{
const bfd_arch_info_type * const *app, *ap;
for (app = bfd_archures_list; *app != NULL; app++)
{
for (ap = *app; ap != NULL; ap = ap->next)
{
if (ap->arch == arch
&& (ap->mach == mach
|| (mach == 0 && ap->the_default)))
{
abfd->arch_info = ap;
return true;
}
}
}
abfd->arch_info = bfd_lookup_arch (arch, mach);
if (abfd->arch_info != NULL)
return true;
abfd->arch_info = &bfd_default_arch_struct;
bfd_set_error (bfd_error_bad_value);
@ -985,7 +973,9 @@ DESCRIPTION
Look for the architecure info structure which matches the
arguments @var{arch} and @var{machine}. A machine of 0 matches the
machine/architecture structure which marks itself as the
default.
default. gdb relies on the default arch being the first
entry for the given ARCH so that all the entries for that
arch can be accessed via ap->next.
*/
const bfd_arch_info_type *

View file

@ -50,6 +50,65 @@ powerpc_compatible (a,b)
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,
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 */
@ -62,7 +121,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[1]
&bfd_powerpc_archs[3]
},
{
32, /* 32 bits in a word */
@ -76,7 +135,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[2]
&bfd_powerpc_archs[4]
},
{
32, /* 32 bits in a word */
@ -90,7 +149,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[3]
&bfd_powerpc_archs[5]
},
{
32, /* 32 bits in a word */
@ -104,7 +163,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[4]
&bfd_powerpc_archs[6]
},
{
32, /* 32 bits in a word */
@ -118,7 +177,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[5]
&bfd_powerpc_archs[7]
},
{
64, /* 64 bits in a word */
@ -132,7 +191,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[6]
&bfd_powerpc_archs[8]
},
{
64, /* 64 bits in a word */
@ -146,7 +205,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[7]
&bfd_powerpc_archs[9]
},
{
64, /* 64 bits in a word */
@ -160,7 +219,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[8]
&bfd_powerpc_archs[10]
},
{
64, /* 64 bits in a word */
@ -174,7 +233,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[9]
&bfd_powerpc_archs[11]
},
{
64, /* 64 bits in a word */
@ -188,7 +247,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[10]
&bfd_powerpc_archs[12]
},
{
32, /* 32 bits in a word */
@ -202,7 +261,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[11]
&bfd_powerpc_archs[13]
},
{
32, /* 32 bits in a word */
@ -216,34 +275,6 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
&bfd_powerpc_archs[12]
},
{
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,
BFD_DEFAULT_TARGET_SIZE == 64, /* default for 64 bit target */
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, /* for the POWER/PowerPC common architecture */
"powerpc",
"powerpc:common",
3,
BFD_DEFAULT_TARGET_SIZE != 64, /* default for 32 bit target */
powerpc_compatible,
bfd_default_scan,
0
}
};