1214501Srpaulo/* BFD support for the SPARC architecture.
2214501Srpaulo   Copyright 1992, 1995, 1996, 1998, 2000, 2002
3214501Srpaulo   Free Software Foundation, Inc.
4214501Srpaulo
5252726SrpauloThis file is part of BFD, the Binary File Descriptor library.
6252726Srpaulo
7214501SrpauloThis program is free software; you can redistribute it and/or modify
8214501Srpauloit under the terms of the GNU General Public License as published by
9214501Srpaulothe Free Software Foundation; either version 2 of the License, or
10214501Srpaulo(at your option) any later version.
11214501Srpaulo
12214501SrpauloThis program is distributed in the hope that it will be useful,
13214501Srpaulobut WITHOUT ANY WARRANTY; without even the implied warranty of
14214501SrpauloMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15214501SrpauloGNU General Public License for more details.
16214501Srpaulo
17214501SrpauloYou should have received a copy of the GNU General Public License
18214501Srpauloalong with this program; if not, write to the Free Software
19214501SrpauloFoundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
20214501Srpaulo
21214501Srpaulo#include "bfd.h"
22214501Srpaulo#include "sysdep.h"
23214501Srpaulo#include "libbfd.h"
24214501Srpaulo
25214501Srpaulostatic const bfd_arch_info_type arch_info_struct[] =
26214501Srpaulo{
27214501Srpaulo  {
28214501Srpaulo    32,	/* bits in a word */
29214501Srpaulo    32,	/* bits in an address */
30214501Srpaulo    8,	/* bits in a byte */
31214501Srpaulo    bfd_arch_sparc,
32214501Srpaulo    bfd_mach_sparc_sparclet,
33214501Srpaulo    "sparc",
34214501Srpaulo    "sparc:sparclet",
35214501Srpaulo    3,
36214501Srpaulo    FALSE,
37214501Srpaulo    bfd_default_compatible,
38214501Srpaulo    bfd_default_scan,
39214501Srpaulo    &arch_info_struct[1],
40214501Srpaulo  },
41214501Srpaulo  {
42214501Srpaulo    32,	/* bits in a word */
43214501Srpaulo    32,	/* bits in an address */
44214501Srpaulo    8,	/* bits in a byte */
45214501Srpaulo    bfd_arch_sparc,
46214501Srpaulo    bfd_mach_sparc_sparclite,
47214501Srpaulo    "sparc",
48214501Srpaulo    "sparc:sparclite",
49214501Srpaulo    3,
50214501Srpaulo    FALSE,
51214501Srpaulo    bfd_default_compatible,
52214501Srpaulo    bfd_default_scan,
53214501Srpaulo    &arch_info_struct[2],
54214501Srpaulo  },
55214501Srpaulo  {
56214501Srpaulo    32,	/* bits in a word */
57214501Srpaulo    32,	/* bits in an address */
58214501Srpaulo    8,	/* bits in a byte */
59214501Srpaulo    bfd_arch_sparc,
60214501Srpaulo    bfd_mach_sparc_v8plus,
61214501Srpaulo    "sparc",
62214501Srpaulo    "sparc:v8plus",
63214501Srpaulo    3,
64214501Srpaulo    FALSE,
65214501Srpaulo    bfd_default_compatible,
66214501Srpaulo    bfd_default_scan,
67214501Srpaulo    &arch_info_struct[3],
68214501Srpaulo  },
69214501Srpaulo  {
70214501Srpaulo    32,	/* bits in a word */
71214501Srpaulo    32,	/* bits in an address */
72214501Srpaulo    8,	/* bits in a byte */
73214501Srpaulo    bfd_arch_sparc,
74214501Srpaulo    bfd_mach_sparc_v8plusa,
75214501Srpaulo    "sparc",
76214501Srpaulo    "sparc:v8plusa",
77214501Srpaulo    3,
78214501Srpaulo    FALSE,
79214501Srpaulo    bfd_default_compatible,
80214501Srpaulo    bfd_default_scan,
81214501Srpaulo    &arch_info_struct[4],
82214501Srpaulo  },
83214501Srpaulo  {
84214501Srpaulo    32,	/* bits in a word */
85214501Srpaulo    32,	/* bits in an address */
86214501Srpaulo    8,	/* bits in a byte */
87214501Srpaulo    bfd_arch_sparc,
88214501Srpaulo    bfd_mach_sparc_sparclite_le,
89214501Srpaulo    "sparc",
90214501Srpaulo    "sparc:sparclite_le",
91214501Srpaulo    3,
92214501Srpaulo    FALSE,
93214501Srpaulo    bfd_default_compatible,
94214501Srpaulo    bfd_default_scan,
95214501Srpaulo    &arch_info_struct[5],
96214501Srpaulo  },
97214501Srpaulo  {
98214501Srpaulo    64,	/* bits in a word */
99214501Srpaulo    64,	/* bits in an address */
100214501Srpaulo    8,	/* bits in a byte */
101214501Srpaulo    bfd_arch_sparc,
102214501Srpaulo    bfd_mach_sparc_v9,
103214501Srpaulo    "sparc",
104214501Srpaulo    "sparc:v9",
105214501Srpaulo    3,
106214501Srpaulo    FALSE,
107214501Srpaulo    bfd_default_compatible,
108214501Srpaulo    bfd_default_scan,
109214501Srpaulo    &arch_info_struct[6],
110214501Srpaulo  },
111214501Srpaulo  {
112214501Srpaulo    64,	/* bits in a word */
113214501Srpaulo    64,	/* bits in an address */
114214501Srpaulo    8,	/* bits in a byte */
115214501Srpaulo    bfd_arch_sparc,
116214501Srpaulo    bfd_mach_sparc_v9a,
117214501Srpaulo    "sparc",
118214501Srpaulo    "sparc:v9a",
119214501Srpaulo    3,
120214501Srpaulo    FALSE,
121214501Srpaulo    bfd_default_compatible,
122214501Srpaulo    bfd_default_scan,
123214501Srpaulo    &arch_info_struct[7],
124214501Srpaulo  },
125214501Srpaulo  {
126214501Srpaulo    32,	/* bits in a word */
127214501Srpaulo    32,	/* bits in an address */
128214501Srpaulo    8,	/* bits in a byte */
129214501Srpaulo    bfd_arch_sparc,
130214501Srpaulo    bfd_mach_sparc_v8plusb,
131214501Srpaulo    "sparc",
132214501Srpaulo    "sparc:v8plusb",
133214501Srpaulo    3,
134214501Srpaulo    FALSE,
135214501Srpaulo    bfd_default_compatible,
136214501Srpaulo    bfd_default_scan,
137214501Srpaulo    &arch_info_struct[8],
138214501Srpaulo  },
139214501Srpaulo  {
140214501Srpaulo    64,	/* bits in a word */
141214501Srpaulo    64,	/* bits in an address */
142214501Srpaulo    8,	/* bits in a byte */
143214501Srpaulo    bfd_arch_sparc,
144214501Srpaulo    bfd_mach_sparc_v9b,
145214501Srpaulo    "sparc",
146214501Srpaulo    "sparc:v9b",
147214501Srpaulo    3,
148214501Srpaulo    FALSE,
149214501Srpaulo    bfd_default_compatible,
150214501Srpaulo    bfd_default_scan,
151214501Srpaulo    0,
152214501Srpaulo  }
153214501Srpaulo};
154214501Srpaulo
155214501Srpauloconst bfd_arch_info_type bfd_sparc_arch =
156214501Srpaulo  {
157214501Srpaulo    32,	/* bits in a word */
158214501Srpaulo    32,	/* bits in an address */
159214501Srpaulo    8,	/* bits in a byte */
160214501Srpaulo    bfd_arch_sparc,
161214501Srpaulo    bfd_mach_sparc,
162214501Srpaulo    "sparc",
163214501Srpaulo    "sparc",
164214501Srpaulo    3,
165214501Srpaulo    TRUE, /* the default */
166214501Srpaulo    bfd_default_compatible,
167214501Srpaulo    bfd_default_scan,
168214501Srpaulo    &arch_info_struct[0],
169214501Srpaulo  };
170214501Srpaulo