/* BFD library support routines for the i960 architecture.
- Copyright (C) 1990, 91, 92, 93, 94 Free Software Foundation, Inc.
+ Copyright (C) 1990, 91, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
Hacked by Steve Chamberlain of Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
static boolean
scan_960_mach (ap, string)
- CONST bfd_arch_info_type *ap;
- CONST char *string;
+ const bfd_arch_info_type *ap;
+ const char *string;
{
unsigned long machine;
if (string[0] == 'c' && string[1] == 'o' && string[2] == 'r' &&
string[3] == 'e' && string[4] == '\0')
machine = bfd_mach_i960_core;
+ else if (strcmp (string, "ka_sa") == 0)
+ machine = bfd_mach_i960_ka_sa;
+ else if (strcmp (string, "kb_sb") == 0)
+ machine = bfd_mach_i960_kb_sb;
else if (string[1] == '\0' || string[2] != '\0') /* rest are 2-char */
return false;
else if (string[0] == 'k' && string[1] == 'b')
machine = bfd_mach_i960_ka_sa;
else if (string[0] == 's' && string[1] == 'a')
machine = bfd_mach_i960_ka_sa;
- /* start-sanitize-i960xl */
- else if (string[0] == 'x' && string[1] == 'l')
- machine = bfd_mach_i960_xl;
- /* end-sanitize-i960xl */
+ else if (string[0] == 'j' && string[1] == 'x')
+ machine = bfd_mach_i960_jx;
+ else if (string[0] == 'h' && string[1] == 'x')
+ machine = bfd_mach_i960_hx;
else
return false;
if (machine == ap->mach) return true;
machine which would be compatible with both and returns a pointer
to its info structure */
-static CONST bfd_arch_info_type *
+static const bfd_arch_info_type *
compatible (a,b)
- CONST bfd_arch_info_type *a;
- CONST bfd_arch_info_type *b;
+ const bfd_arch_info_type *a;
+ const bfd_arch_info_type *b;
{
/* The i960 has distinct subspecies which may not interbreed:
CORE CA
CORE KA KB MC XA
- start-sanitize-i960xl
- CORE XL
- end-sanitize-i960xl
+ CORE HX JX
Any architecture on the same line is compatible, the one on
the right is the least restrictive.
#define MC bfd_mach_i960_mc /*4*/
#define XA bfd_mach_i960_xa /*5*/
#define CA bfd_mach_i960_ca /*6*/
-#define MAX_ARCH ((int)CA)
-
-/* start-sanitize-i960xl */
-#define XL bfd_mach_i960_xl /*7*/
-#undef MAX_ARCH
-#define MAX_ARCH ((int)XL)
-/* end-sanitize-i960xl */
-
+#define JX bfd_mach_i960_jx /*7*/
+#define HX bfd_mach_i960_hx /*8*/
+#define MAX_ARCH ((int)HX)
static CONST unsigned long matrix[MAX_ARCH+1][MAX_ARCH+1] =
{
- { ERROR, CORE, KA, KB, MC, XA, CA },
- { CORE, CORE, KA, KB, MC, XA, CA },
- { KA, KA, KA, KB, MC, XA, ERROR },
- { KB, KB, KB, KB, MC, XA, ERROR },
- { MC, MC, MC, MC, MC, XA, ERROR },
- { XA, XA, XA, XA, XA, XA, ERROR },
- { CA, CA, ERROR, ERROR, ERROR, ERROR, CA },
- /* start-sanitize-i960xl */
- { XL, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, XL },
- /* end-sanitize-i960xl */
+ { ERROR, CORE, KA, KB, MC, XA, CA, JX, HX },
+ { CORE, CORE, KA, KB, MC, XA, CA, JX, HX },
+ { KA, KA, KA, KB, MC, XA, ERROR, ERROR, ERROR},
+ { KB, KB, KB, KB, MC, XA, ERROR, ERROR, ERROR},
+ { MC, MC, MC, MC, MC, XA, ERROR, ERROR, ERROR},
+ { XA, XA, XA, XA, XA, XA, ERROR, ERROR, ERROR},
+ { CA, CA, ERROR, ERROR, ERROR, ERROR, CA, ERROR, ERROR},
+ { JX, JX, ERROR, ERROR, ERROR, ERROR, ERROR, JX, HX },
+ { HX, HX, ERROR, ERROR, ERROR, ERROR, ERROR, HX, HX },
};
int bfd_default_scan_num_mach();
-#define N(a,b,d) \
-{ 32, 32, 8,bfd_arch_i960,a,"i960",b,3,d,compatible,scan_960_mach,0,}
+#define N(a,b,d,n) \
+{ 32, 32, 8,bfd_arch_i960,a,"i960",b,3,d,compatible,scan_960_mach,n,}
-static bfd_arch_info_type arch_info_struct[] =
+static const bfd_arch_info_type arch_info_struct[] =
{
- N(bfd_mach_i960_core, "i960:core", true),
- N(bfd_mach_i960_ka_sa,"i960:ka_sa",false),
- N(bfd_mach_i960_kb_sb,"i960:kb_sb",false),
- N(bfd_mach_i960_mc, "i960:mc", false),
- N(bfd_mach_i960_xa, "i960:xa", false),
- N(bfd_mach_i960_ca, "i960:ca", false),
- /* start-sanitize-i960xl */
- N(bfd_mach_i960_xl, "i960:xl", false),
- /* end-sanitize-i960xl */
+ N(bfd_mach_i960_ka_sa,"i960:ka_sa",false, &arch_info_struct[1]),
+ N(bfd_mach_i960_kb_sb,"i960:kb_sb",false, &arch_info_struct[2]),
+ N(bfd_mach_i960_mc, "i960:mc", false, &arch_info_struct[3]),
+ N(bfd_mach_i960_xa, "i960:xa", false, &arch_info_struct[4]),
+ N(bfd_mach_i960_ca, "i960:ca", false, &arch_info_struct[5]),
+ N(bfd_mach_i960_jx, "i960:jx", false, &arch_info_struct[6]),
+ N(bfd_mach_i960_hx, "i960:hx", false, 0),
};
-
-void
-bfd_i960_arch ()
-{
- unsigned int i;
- for (i = 0; i < sizeof(arch_info_struct)/sizeof (*arch_info_struct); i++) {
- bfd_arch_linkin(arch_info_struct + i);
- }
-}
+const bfd_arch_info_type bfd_i960_arch =
+ N(bfd_mach_i960_core, "i960:core", true, &arch_info_struct[0]);