xref: /openbsd-src/gnu/usr.bin/binutils/bfd/cpu-sparc.c (revision c074d1c999f3e07019cd5e9a2f190b057ef3b935)
12159047fSniklas /* BFD support for the SPARC architecture.
2*c074d1c9Sdrahn    Copyright 1992, 1995, 1996, 1998, 2000, 2002
3*c074d1c9Sdrahn    Free Software Foundation, Inc.
42159047fSniklas 
52159047fSniklas This file is part of BFD, the Binary File Descriptor library.
62159047fSniklas 
72159047fSniklas This program is free software; you can redistribute it and/or modify
82159047fSniklas it under the terms of the GNU General Public License as published by
92159047fSniklas the Free Software Foundation; either version 2 of the License, or
102159047fSniklas (at your option) any later version.
112159047fSniklas 
122159047fSniklas This program is distributed in the hope that it will be useful,
132159047fSniklas but WITHOUT ANY WARRANTY; without even the implied warranty of
142159047fSniklas MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
152159047fSniklas GNU General Public License for more details.
162159047fSniklas 
172159047fSniklas You should have received a copy of the GNU General Public License
182159047fSniklas along with this program; if not, write to the Free Software
192159047fSniklas Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
202159047fSniklas 
212159047fSniklas #include "bfd.h"
222159047fSniklas #include "sysdep.h"
232159047fSniklas #include "libbfd.h"
242159047fSniklas 
25c88b1d6cSniklas static const bfd_arch_info_type arch_info_struct[] =
26c88b1d6cSniklas {
27c88b1d6cSniklas   {
28c88b1d6cSniklas     32,	/* bits in a word */
29c88b1d6cSniklas     32,	/* bits in an address */
30c88b1d6cSniklas     8,	/* bits in a byte */
31c88b1d6cSniklas     bfd_arch_sparc,
32c88b1d6cSniklas     bfd_mach_sparc_sparclet,
33c88b1d6cSniklas     "sparc",
34c88b1d6cSniklas     "sparc:sparclet",
35c88b1d6cSniklas     3,
36*c074d1c9Sdrahn     FALSE,
37*c074d1c9Sdrahn     bfd_default_compatible,
38c88b1d6cSniklas     bfd_default_scan,
39c88b1d6cSniklas     &arch_info_struct[1],
40c88b1d6cSniklas   },
41c88b1d6cSniklas   {
42c88b1d6cSniklas     32,	/* bits in a word */
43c88b1d6cSniklas     32,	/* bits in an address */
44c88b1d6cSniklas     8,	/* bits in a byte */
45c88b1d6cSniklas     bfd_arch_sparc,
46c88b1d6cSniklas     bfd_mach_sparc_sparclite,
47c88b1d6cSniklas     "sparc",
48c88b1d6cSniklas     "sparc:sparclite",
49c88b1d6cSniklas     3,
50*c074d1c9Sdrahn     FALSE,
51*c074d1c9Sdrahn     bfd_default_compatible,
52c88b1d6cSniklas     bfd_default_scan,
53c88b1d6cSniklas     &arch_info_struct[2],
54c88b1d6cSniklas   },
55c88b1d6cSniklas   {
56c88b1d6cSniklas     32,	/* bits in a word */
57c88b1d6cSniklas     32,	/* bits in an address */
58c88b1d6cSniklas     8,	/* bits in a byte */
59c88b1d6cSniklas     bfd_arch_sparc,
60c88b1d6cSniklas     bfd_mach_sparc_v8plus,
61c88b1d6cSniklas     "sparc",
62c88b1d6cSniklas     "sparc:v8plus",
63c88b1d6cSniklas     3,
64*c074d1c9Sdrahn     FALSE,
65*c074d1c9Sdrahn     bfd_default_compatible,
66c88b1d6cSniklas     bfd_default_scan,
67c88b1d6cSniklas     &arch_info_struct[3],
68c88b1d6cSniklas   },
69c88b1d6cSniklas   {
70c88b1d6cSniklas     32,	/* bits in a word */
71c88b1d6cSniklas     32,	/* bits in an address */
72c88b1d6cSniklas     8,	/* bits in a byte */
73c88b1d6cSniklas     bfd_arch_sparc,
74c88b1d6cSniklas     bfd_mach_sparc_v8plusa,
75c88b1d6cSniklas     "sparc",
76c88b1d6cSniklas     "sparc:v8plusa",
77c88b1d6cSniklas     3,
78*c074d1c9Sdrahn     FALSE,
79*c074d1c9Sdrahn     bfd_default_compatible,
80c88b1d6cSniklas     bfd_default_scan,
81c88b1d6cSniklas     &arch_info_struct[4],
82c88b1d6cSniklas   },
83c88b1d6cSniklas   {
84b305b0f1Sespie     32,	/* bits in a word */
85b305b0f1Sespie     32,	/* bits in an address */
86b305b0f1Sespie     8,	/* bits in a byte */
87b305b0f1Sespie     bfd_arch_sparc,
88b305b0f1Sespie     bfd_mach_sparc_sparclite_le,
89b305b0f1Sespie     "sparc",
90b305b0f1Sespie     "sparc:sparclite_le",
91b305b0f1Sespie     3,
92*c074d1c9Sdrahn     FALSE,
93*c074d1c9Sdrahn     bfd_default_compatible,
94b305b0f1Sespie     bfd_default_scan,
95b305b0f1Sespie     &arch_info_struct[5],
96b305b0f1Sespie   },
97b305b0f1Sespie   {
98c88b1d6cSniklas     64,	/* bits in a word */
99c88b1d6cSniklas     64,	/* bits in an address */
100c88b1d6cSniklas     8,	/* bits in a byte */
101c88b1d6cSniklas     bfd_arch_sparc,
102c88b1d6cSniklas     bfd_mach_sparc_v9,
103c88b1d6cSniklas     "sparc",
104c88b1d6cSniklas     "sparc:v9",
105c88b1d6cSniklas     3,
106*c074d1c9Sdrahn     FALSE,
107*c074d1c9Sdrahn     bfd_default_compatible,
108c88b1d6cSniklas     bfd_default_scan,
109b305b0f1Sespie     &arch_info_struct[6],
110c88b1d6cSniklas   },
111c88b1d6cSniklas   {
112c88b1d6cSniklas     64,	/* bits in a word */
113c88b1d6cSniklas     64,	/* bits in an address */
114c88b1d6cSniklas     8,	/* bits in a byte */
115c88b1d6cSniklas     bfd_arch_sparc,
116c88b1d6cSniklas     bfd_mach_sparc_v9a,
117c88b1d6cSniklas     "sparc",
118c88b1d6cSniklas     "sparc:v9a",
119c88b1d6cSniklas     3,
120*c074d1c9Sdrahn     FALSE,
121*c074d1c9Sdrahn     bfd_default_compatible,
122c88b1d6cSniklas     bfd_default_scan,
123b55d4692Sfgsch     &arch_info_struct[7],
124b55d4692Sfgsch   },
125b55d4692Sfgsch   {
126b55d4692Sfgsch     32,	/* bits in a word */
127b55d4692Sfgsch     32,	/* bits in an address */
128b55d4692Sfgsch     8,	/* bits in a byte */
129b55d4692Sfgsch     bfd_arch_sparc,
130b55d4692Sfgsch     bfd_mach_sparc_v8plusb,
131b55d4692Sfgsch     "sparc",
132b55d4692Sfgsch     "sparc:v8plusb",
133b55d4692Sfgsch     3,
134*c074d1c9Sdrahn     FALSE,
135*c074d1c9Sdrahn     bfd_default_compatible,
136b55d4692Sfgsch     bfd_default_scan,
137b55d4692Sfgsch     &arch_info_struct[8],
138b55d4692Sfgsch   },
139b55d4692Sfgsch   {
140b55d4692Sfgsch     64,	/* bits in a word */
141b55d4692Sfgsch     64,	/* bits in an address */
142b55d4692Sfgsch     8,	/* bits in a byte */
143b55d4692Sfgsch     bfd_arch_sparc,
144b55d4692Sfgsch     bfd_mach_sparc_v9b,
145b55d4692Sfgsch     "sparc",
146b55d4692Sfgsch     "sparc:v9b",
147b55d4692Sfgsch     3,
148*c074d1c9Sdrahn     FALSE,
149*c074d1c9Sdrahn     bfd_default_compatible,
150b55d4692Sfgsch     bfd_default_scan,
151c88b1d6cSniklas     0,
152c88b1d6cSniklas   }
153c88b1d6cSniklas };
154c88b1d6cSniklas 
155c88b1d6cSniklas const bfd_arch_info_type bfd_sparc_arch =
1562159047fSniklas   {
1572159047fSniklas     32,	/* bits in a word */
1582159047fSniklas     32,	/* bits in an address */
1592159047fSniklas     8,	/* bits in a byte */
1602159047fSniklas     bfd_arch_sparc,
1612159047fSniklas     bfd_mach_sparc,
1622159047fSniklas     "sparc",
1632159047fSniklas     "sparc",
1642159047fSniklas     3,
165*c074d1c9Sdrahn     TRUE, /* the default */
166*c074d1c9Sdrahn     bfd_default_compatible,
1672159047fSniklas     bfd_default_scan,
168c88b1d6cSniklas     &arch_info_struct[0],
1692159047fSniklas   };
170