]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - bfd/cpu-sparc.c
Automatic date update in version.in
[thirdparty/binutils-gdb.git] / bfd / cpu-sparc.c
1 /* BFD support for the SPARC architecture.
2 Copyright (C) 1992-2019 Free Software Foundation, Inc.
3
4 This file is part of BFD, the Binary File Descriptor library.
5
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 3 of the License, or
9 (at your option) any later version.
10
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.
15
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., 51 Franklin Street - Fifth Floor, Boston,
19 MA 02110-1301, USA. */
20
21 #include "sysdep.h"
22 #include "bfd.h"
23 #include "libbfd.h"
24
25 static const bfd_arch_info_type arch_info_struct[] =
26 {
27 {
28 32, /* bits in a word */
29 32, /* bits in an address */
30 8, /* bits in a byte */
31 bfd_arch_sparc,
32 bfd_mach_sparc_sparclet,
33 "sparc",
34 "sparc:sparclet",
35 3,
36 FALSE,
37 bfd_default_compatible,
38 bfd_default_scan,
39 bfd_arch_default_fill,
40 &arch_info_struct[1],
41 },
42 {
43 32, /* bits in a word */
44 32, /* bits in an address */
45 8, /* bits in a byte */
46 bfd_arch_sparc,
47 bfd_mach_sparc_sparclite,
48 "sparc",
49 "sparc:sparclite",
50 3,
51 FALSE,
52 bfd_default_compatible,
53 bfd_default_scan,
54 bfd_arch_default_fill,
55 &arch_info_struct[2],
56 },
57 {
58 32, /* bits in a word */
59 32, /* bits in an address */
60 8, /* bits in a byte */
61 bfd_arch_sparc,
62 bfd_mach_sparc_v8plus,
63 "sparc",
64 "sparc:v8plus",
65 3,
66 FALSE,
67 bfd_default_compatible,
68 bfd_default_scan,
69 bfd_arch_default_fill,
70 &arch_info_struct[3],
71 },
72 {
73 32, /* bits in a word */
74 32, /* bits in an address */
75 8, /* bits in a byte */
76 bfd_arch_sparc,
77 bfd_mach_sparc_v8plusa,
78 "sparc",
79 "sparc:v8plusa",
80 3,
81 FALSE,
82 bfd_default_compatible,
83 bfd_default_scan,
84 bfd_arch_default_fill,
85 &arch_info_struct[4],
86 },
87 {
88 32, /* bits in a word */
89 32, /* bits in an address */
90 8, /* bits in a byte */
91 bfd_arch_sparc,
92 bfd_mach_sparc_sparclite_le,
93 "sparc",
94 "sparc:sparclite_le",
95 3,
96 FALSE,
97 bfd_default_compatible,
98 bfd_default_scan,
99 bfd_arch_default_fill,
100 &arch_info_struct[5],
101 },
102 {
103 64, /* bits in a word */
104 64, /* bits in an address */
105 8, /* bits in a byte */
106 bfd_arch_sparc,
107 bfd_mach_sparc_v9,
108 "sparc",
109 "sparc:v9",
110 3,
111 FALSE,
112 bfd_default_compatible,
113 bfd_default_scan,
114 bfd_arch_default_fill,
115 &arch_info_struct[6],
116 },
117 {
118 64, /* bits in a word */
119 64, /* bits in an address */
120 8, /* bits in a byte */
121 bfd_arch_sparc,
122 bfd_mach_sparc_v9a,
123 "sparc",
124 "sparc:v9a",
125 3,
126 FALSE,
127 bfd_default_compatible,
128 bfd_default_scan,
129 bfd_arch_default_fill,
130 &arch_info_struct[7],
131 },
132 {
133 32, /* bits in a word */
134 32, /* bits in an address */
135 8, /* bits in a byte */
136 bfd_arch_sparc,
137 bfd_mach_sparc_v8plusb,
138 "sparc",
139 "sparc:v8plusb",
140 3,
141 FALSE,
142 bfd_default_compatible,
143 bfd_default_scan,
144 bfd_arch_default_fill,
145 &arch_info_struct[8],
146 },
147 {
148 64, /* bits in a word */
149 64, /* bits in an address */
150 8, /* bits in a byte */
151 bfd_arch_sparc,
152 bfd_mach_sparc_v9b,
153 "sparc",
154 "sparc:v9b",
155 3,
156 FALSE,
157 bfd_default_compatible,
158 bfd_default_scan,
159 bfd_arch_default_fill,
160 &arch_info_struct[9],
161 },
162 {
163 32, /* bits in a word */
164 32, /* bits in an address */
165 8, /* bits in a byte */
166 bfd_arch_sparc,
167 bfd_mach_sparc_v8plusc,
168 "sparc",
169 "sparc:v8plusc",
170 3,
171 FALSE,
172 bfd_default_compatible,
173 bfd_default_scan,
174 bfd_arch_default_fill,
175 &arch_info_struct[10],
176 },
177 {
178 64, /* bits in a word */
179 64, /* bits in an address */
180 8, /* bits in a byte */
181 bfd_arch_sparc,
182 bfd_mach_sparc_v9c,
183 "sparc",
184 "sparc:v9c",
185 3,
186 FALSE,
187 bfd_default_compatible,
188 bfd_default_scan,
189 bfd_arch_default_fill,
190 &arch_info_struct[11],
191 },
192 {
193 32, /* bits in a word */
194 32, /* bits in an address */
195 8, /* bits in a byte */
196 bfd_arch_sparc,
197 bfd_mach_sparc_v8plusd,
198 "sparc",
199 "sparc:v8plusd",
200 3,
201 FALSE,
202 bfd_default_compatible,
203 bfd_default_scan,
204 bfd_arch_default_fill,
205 &arch_info_struct[12],
206 },
207 {
208 64, /* bits in a word */
209 64, /* bits in an address */
210 8, /* bits in a byte */
211 bfd_arch_sparc,
212 bfd_mach_sparc_v9d,
213 "sparc",
214 "sparc:v9d",
215 3,
216 FALSE,
217 bfd_default_compatible,
218 bfd_default_scan,
219 bfd_arch_default_fill,
220 &arch_info_struct[13],
221 },
222 {
223 32, /* bits in a word */
224 32, /* bits in an address */
225 8, /* bits in a byte */
226 bfd_arch_sparc,
227 bfd_mach_sparc_v8pluse,
228 "sparc",
229 "sparc:v8pluse",
230 3,
231 FALSE,
232 bfd_default_compatible,
233 bfd_default_scan,
234 bfd_arch_default_fill,
235 &arch_info_struct[14],
236 },
237 {
238 64, /* bits in a word */
239 64, /* bits in an address */
240 8, /* bits in a byte */
241 bfd_arch_sparc,
242 bfd_mach_sparc_v9e,
243 "sparc",
244 "sparc:v9e",
245 3,
246 FALSE,
247 bfd_default_compatible,
248 bfd_default_scan,
249 bfd_arch_default_fill,
250 &arch_info_struct[15],
251 },
252 {
253 32, /* bits in a word */
254 32, /* bits in an address */
255 8, /* bits in a byte */
256 bfd_arch_sparc,
257 bfd_mach_sparc_v8plusv,
258 "sparc",
259 "sparc:v8plusv",
260 3,
261 FALSE,
262 bfd_default_compatible,
263 bfd_default_scan,
264 bfd_arch_default_fill,
265 &arch_info_struct[16],
266 },
267 {
268 64, /* bits in a word */
269 64, /* bits in an address */
270 8, /* bits in a byte */
271 bfd_arch_sparc,
272 bfd_mach_sparc_v9v,
273 "sparc",
274 "sparc:v9v",
275 3,
276 FALSE,
277 bfd_default_compatible,
278 bfd_default_scan,
279 bfd_arch_default_fill,
280 &arch_info_struct[17],
281 },
282 {
283 32, /* bits in a word */
284 32, /* bits in an address */
285 8, /* bits in a byte */
286 bfd_arch_sparc,
287 bfd_mach_sparc_v8plusm,
288 "sparc",
289 "sparc:v8plusm",
290 3,
291 FALSE,
292 bfd_default_compatible,
293 bfd_default_scan,
294 bfd_arch_default_fill,
295 &arch_info_struct[18],
296 },
297 {
298 64, /* bits in a word */
299 64, /* bits in an address */
300 8, /* bits in a byte */
301 bfd_arch_sparc,
302 bfd_mach_sparc_v9m,
303 "sparc",
304 "sparc:v9m",
305 3,
306 FALSE,
307 bfd_default_compatible,
308 bfd_default_scan,
309 bfd_arch_default_fill,
310 &arch_info_struct[19],
311 },
312 {
313 32, /* bits in a word */
314 32, /* bits in an address */
315 8, /* bits in a byte */
316 bfd_arch_sparc,
317 bfd_mach_sparc_v8plusm8,
318 "sparc",
319 "sparc:v8plusm8",
320 3,
321 FALSE,
322 bfd_default_compatible,
323 bfd_default_scan,
324 bfd_arch_default_fill,
325 &arch_info_struct[20],
326 },
327 {
328 64, /* bits in a word */
329 64, /* bits in an address */
330 8, /* bits in a byte */
331 bfd_arch_sparc,
332 bfd_mach_sparc_v9m8,
333 "sparc",
334 "sparc:v9m8",
335 3,
336 FALSE,
337 bfd_default_compatible,
338 bfd_default_scan,
339 bfd_arch_default_fill,
340 0,
341 }
342 };
343
344 const bfd_arch_info_type bfd_sparc_arch =
345 {
346 32, /* bits in a word */
347 32, /* bits in an address */
348 8, /* bits in a byte */
349 bfd_arch_sparc,
350 bfd_mach_sparc,
351 "sparc",
352 "sparc",
353 3,
354 TRUE, /* the default */
355 bfd_default_compatible,
356 bfd_default_scan,
357 bfd_arch_default_fill,
358 &arch_info_struct[0],
359 };