/* BFD library support routines for architectures.
- Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97, 98, 1999, 2000
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ 2000, 2001
Free Software Foundation, Inc.
Hacked by John Gilmore and Steve Chamberlain of Cygnus Support.
#include "bfd.h"
#include "sysdep.h"
#include "libbfd.h"
-#include <ctype.h>
+#include "safe-ctype.h"
/*
.#define bfd_mach_m68040 6
.#define bfd_mach_m68060 7
.#define bfd_mach_cpu32 8
+.#define bfd_mach_mcf5200 9
+.#define bfd_mach_mcf5206e 10
+.#define bfd_mach_mcf5307 11
+.#define bfd_mach_mcf5407 12
. bfd_arch_vax, {* DEC Vax *}
. bfd_arch_i960, {* Intel 960 *}
. {* The order of the following is important.
.#define bfd_mach_mips6000 6000
.#define bfd_mach_mips8000 8000
.#define bfd_mach_mips10000 10000
+.#define bfd_mach_mips12000 12000
.#define bfd_mach_mips16 16
-.#define bfd_mach_mips32 32
-.#define bfd_mach_mips32_4k 3204113 {* 32, 04, octal 'K' *}
.#define bfd_mach_mips5 5
-.#define bfd_mach_mips64 64
.#define bfd_mach_mips_sb1 12310201 {* octal 'SB', 01 *}
+.#define bfd_mach_mipsisa32 32
+.#define bfd_mach_mipsisa64 64
. bfd_arch_i386, {* Intel 386 *}
.#define bfd_mach_i386_i386 0
.#define bfd_mach_i386_i8086 1
.#define bfd_mach_h8300 1
.#define bfd_mach_h8300h 2
.#define bfd_mach_h8300s 3
+. bfd_arch_pdp11, {* DEC PDP-11 *}
. bfd_arch_powerpc, {* PowerPC *}
.#define bfd_mach_ppc 0
.#define bfd_mach_ppc_403 403
. bfd_arch_s390, {* IBM s390 *}
.#define bfd_mach_s390_esa 0
.#define bfd_mach_s390_esame 1
+. bfd_arch_openrisc, {* OpenRISC *}
+. bfd_arch_mmix, {* Donald Knuth's educational processor *}
+. bfd_arch_xstormy16,
+.#define bfd_mach_xstormy16 0
. bfd_arch_last
. };
*/
extern const bfd_arch_info_type bfd_mips_arch;
extern const bfd_arch_info_type bfd_mn10200_arch;
extern const bfd_arch_info_type bfd_mn10300_arch;
+extern const bfd_arch_info_type bfd_pdp11_arch;
extern const bfd_arch_info_type bfd_powerpc_arch;
extern const bfd_arch_info_type bfd_rs6000_arch;
extern const bfd_arch_info_type bfd_pj_arch;
extern const bfd_arch_info_type bfd_avr_arch;
extern const bfd_arch_info_type bfd_ia64_arch;
extern const bfd_arch_info_type bfd_s390_arch;
+extern const bfd_arch_info_type bfd_openrisc_arch;
+extern const bfd_arch_info_type bfd_mmix_arch;
+extern const bfd_arch_info_type bfd_xstormy16_arch;
static const bfd_arch_info_type * const bfd_archures_list[] = {
#ifdef SELECT_ARCHITECTURES
&bfd_mips_arch,
&bfd_mn10200_arch,
&bfd_mn10300_arch,
+ &bfd_pdp11_arch,
&bfd_powerpc_arch,
&bfd_rs6000_arch,
&bfd_sh_arch,
&bfd_avr_arch,
&bfd_ia64_arch,
&bfd_s390_arch,
+ &bfd_openrisc_arch,
+ &bfd_mmix_arch,
+ &bfd_xstormy16_arch,
#endif
0
};
const char **name_ptr;
const char **name_list;
const bfd_arch_info_type * const *app;
+ bfd_size_type amt;
/* Determine the number of architectures. */
vec_length = 0;
}
}
- name_list = (const char **)
- bfd_malloc ((vec_length + 1) * sizeof (char **));
+ amt = (vec_length + 1) * sizeof (char **);
+ name_list = (const char **) bfd_malloc (amt);
if (name_list == NULL)
return NULL;
boolean
bfd_default_scan (info, string)
- const struct bfd_arch_info *info;
+ const bfd_arch_info_type *info;
const char *string;
{
const char *ptr_src;
printable_name_colon = strchr (info->printable_name, ':');
if (printable_name_colon == NULL)
{
- int strlen_arch_name = strlen (info->arch_name);
+ size_t strlen_arch_name = strlen (info->arch_name);
if (strncasecmp (string, info->arch_name, strlen_arch_name) == 0)
{
if (string[strlen_arch_name] == ':')
Attempt to match: <arch> <mach>? */
if (printable_name_colon != NULL)
{
- int colon_index = printable_name_colon - info->printable_name;
+ size_t colon_index = printable_name_colon - info->printable_name;
if (strncasecmp (string, info->printable_name, colon_index) == 0
&& strcasecmp (string + colon_index,
info->printable_name + colon_index + 1) == 0)
}
number = 0;
- while (isdigit ((unsigned char) *ptr_src))
+ while (ISDIGIT (*ptr_src))
{
number = number * 10 + *ptr_src - '0';
ptr_src++;
arch = bfd_arch_m68k;
number = bfd_mach_cpu32;
break;
+ case 5200:
+ arch = bfd_arch_m68k;
+ number = bfd_mach_mcf5200;
+ break;
+ case 5206:
+ arch = bfd_arch_m68k;
+ number = bfd_mach_mcf5206e;
+ break;
+ case 5307:
+ arch = bfd_arch_m68k;
+ number = bfd_mach_mcf5307;
+ break;
+ case 5407:
+ arch = bfd_arch_m68k;
+ number = bfd_mach_mcf5407;
+ break;
case 32000:
arch = bfd_arch_we32k;