1
/* BFD support for the NEC V850 processor
2
Copyright 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
4
This file is part of BFD, the Binary File Descriptor library.
6
This program is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2 of the License, or
9
(at your option) any later version.
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
16
You should have received a copy of the GNU General Public License
17
along with this program; if not, write to the Free Software
18
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
23
#include "safe-ctype.h"
25
static boolean scan PARAMS ((const struct bfd_arch_info *, const char *));
29
const struct bfd_arch_info * info;
35
enum bfd_architecture arch;
37
/* First test for an exact match. */
38
if (strcasecmp (string, info->printable_name) == 0)
41
/* See how much of the supplied string matches with the
42
architecture, eg the string m68k:68020 would match the m68k entry
43
up to the :, then we get left with the machine number. */
44
for (ptr_src = string, ptr_tst = info->arch_name;
47
if (*ptr_src != *ptr_tst)
50
/* Chewed up as much of the architecture as will match;
51
if there is a colon present skip it. */
56
/* Nothing more, then only keep this one if it is
57
the default machine for this architecture. */
58
return info->the_default;
61
while (ISDIGIT (*ptr_src))
63
number = number * 10 + * ptr_src - '0';
69
case bfd_mach_v850e: arch = bfd_arch_v850; break;
70
case bfd_mach_v850ea: arch = bfd_arch_v850; break;
75
if (arch != info->arch)
78
if (number != info->mach)
84
#define N(number, print, default, next) \
85
{ 32, 32, 8, bfd_arch_v850, number, "v850", print, 2, default, \
86
bfd_default_compatible, scan, next }
90
static const bfd_arch_info_type arch_info_struct[] =
92
N (bfd_mach_v850e, "v850e", false, & arch_info_struct[1]),
93
N (bfd_mach_v850ea, "v850ea", false, NULL)
97
#define NEXT & arch_info_struct[0]
99
const bfd_arch_info_type bfd_v850_arch =
100
N (bfd_mach_v850, "v850", true, NEXT);