cpu-sparc.c revision 130561
1184610Salfred/* BFD support for the SPARC architecture.
2184610Salfred   Copyright 1992, 1995, 1996, 1998, 2000, 2002
3184610Salfred   Free Software Foundation, Inc.
4184610Salfred
5184610SalfredThis file is part of BFD, the Binary File Descriptor library.
6184610Salfred
7184610SalfredThis program is free software; you can redistribute it and/or modify
8184610Salfredit under the terms of the GNU General Public License as published by
9184610Salfredthe Free Software Foundation; either version 2 of the License, or
10184610Salfred(at your option) any later version.
11184610Salfred
12184610SalfredThis program is distributed in the hope that it will be useful,
13184610Salfredbut WITHOUT ANY WARRANTY; without even the implied warranty of
14184610SalfredMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15184610SalfredGNU General Public License for more details.
16184610Salfred
17184610SalfredYou should have received a copy of the GNU General Public License
18184610Salfredalong with this program; if not, write to the Free Software
19184610SalfredFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
20184610Salfred
21184610Salfred#include "bfd.h"
22184610Salfred#include "sysdep.h"
23184610Salfred#include "libbfd.h"
24184610Salfred
25184610Salfredstatic const bfd_arch_info_type arch_info_struct[] =
26184610Salfred{
27184610Salfred  {
28184610Salfred    32,	/* bits in a word */
29184610Salfred    32,	/* bits in an address */
30184610Salfred    8,	/* bits in a byte */
31184610Salfred    bfd_arch_sparc,
32184610Salfred    bfd_mach_sparc_sparclet,
33184610Salfred    "sparc",
34184610Salfred    "sparc:sparclet",
35184610Salfred    3,
36184610Salfred    FALSE,
37184610Salfred    bfd_default_compatible,
38184610Salfred    bfd_default_scan,
39184610Salfred    &arch_info_struct[1],
40184610Salfred  },
41184610Salfred  {
42184610Salfred    32,	/* bits in a word */
43184610Salfred    32,	/* bits in an address */
44184610Salfred    8,	/* bits in a byte */
45184610Salfred    bfd_arch_sparc,
46184610Salfred    bfd_mach_sparc_sparclite,
47184610Salfred    "sparc",
48184610Salfred    "sparc:sparclite",
49184610Salfred    3,
50184610Salfred    FALSE,
51184610Salfred    bfd_default_compatible,
52184610Salfred    bfd_default_scan,
53184610Salfred    &arch_info_struct[2],
54184610Salfred  },
55184610Salfred  {
56184610Salfred    32,	/* bits in a word */
57184610Salfred    32,	/* bits in an address */
58184610Salfred    8,	/* bits in a byte */
59184610Salfred    bfd_arch_sparc,
60194230Sthompsa    bfd_mach_sparc_v8plus,
61194230Sthompsa    "sparc",
62184610Salfred    "sparc:v8plus",
63184610Salfred    3,
64184610Salfred    FALSE,
65184610Salfred    bfd_default_compatible,
66230204Shselasky    bfd_default_scan,
67184610Salfred    &arch_info_struct[3],
68184610Salfred  },
69184610Salfred  {
70184610Salfred    32,	/* bits in a word */
71184610Salfred    32,	/* bits in an address */
72184610Salfred    8,	/* bits in a byte */
73184610Salfred    bfd_arch_sparc,
74242619Shselasky    bfd_mach_sparc_v8plusa,
75184610Salfred    "sparc",
76192984Sthompsa    "sparc:v8plusa",
77192984Sthompsa    3,
78192984Sthompsa    FALSE,
79184610Salfred    bfd_default_compatible,
80184610Salfred    bfd_default_scan,
81188413Sthompsa    &arch_info_struct[4],
82194228Sthompsa  },
83194228Sthompsa  {
84184610Salfred    32,	/* bits in a word */
85184610Salfred    32,	/* bits in an address */
86192984Sthompsa    8,	/* bits in a byte */
87194228Sthompsa    bfd_arch_sparc,
88194228Sthompsa    bfd_mach_sparc_sparclite_le,
89194228Sthompsa    "sparc",
90194228Sthompsa    "sparc:sparclite_le",
91197570Sthompsa    3,
92194228Sthompsa    FALSE,
93194228Sthompsa    bfd_default_compatible,
94194228Sthompsa    bfd_default_scan,
95194228Sthompsa    &arch_info_struct[5],
96194228Sthompsa  },
97194228Sthompsa  {
98194228Sthompsa    64,	/* bits in a word */
99194228Sthompsa    64,	/* bits in an address */
100194228Sthompsa    8,	/* bits in a byte */
101194228Sthompsa    bfd_arch_sparc,
102214761Sn_hibma    bfd_mach_sparc_v9,
103197570Sthompsa    "sparc",
104239179Shselasky    "sparc:v9",
105184610Salfred    3,
106184610Salfred    FALSE,
107184610Salfred    bfd_default_compatible,
108184610Salfred    bfd_default_scan,
109184610Salfred    &arch_info_struct[6],
110184610Salfred  },
111184610Salfred  {
112184610Salfred    64,	/* bits in a word */
113184610Salfred    64,	/* bits in an address */
114184610Salfred    8,	/* bits in a byte */
115184610Salfred    bfd_arch_sparc,
116184610Salfred    bfd_mach_sparc_v9a,
117184610Salfred    "sparc",
118192984Sthompsa    "sparc:v9a",
119192984Sthompsa    3,
120192984Sthompsa    FALSE,
121187176Sthompsa    bfd_default_compatible,
122187176Sthompsa    bfd_default_scan,
123192984Sthompsa    &arch_info_struct[7],
124192984Sthompsa  },
125192984Sthompsa  {
126188413Sthompsa    32,	/* bits in a word */
127187176Sthompsa    32,	/* bits in an address */
128187176Sthompsa    8,	/* bits in a byte */
129192984Sthompsa    bfd_arch_sparc,
130192984Sthompsa    bfd_mach_sparc_v8plusb,
131230204Shselasky    "sparc",
132230204Shselasky    "sparc:v8plusb",
133239179Shselasky    3,
134239299Shselasky    FALSE,
135230209Shselasky    bfd_default_compatible,
136230204Shselasky    bfd_default_scan,
137230209Shselasky    &arch_info_struct[8],
138184610Salfred  },
139184610Salfred  {
140192984Sthompsa    64,	/* bits in a word */
141188413Sthompsa    64,	/* bits in an address */
142250576Seadler    8,	/* bits in a byte */
143188413Sthompsa    bfd_arch_sparc,
144188413Sthompsa    bfd_mach_sparc_v9b,
145188413Sthompsa    "sparc",
146188413Sthompsa    "sparc:v9b",
147188413Sthompsa    3,
148188413Sthompsa    FALSE,
149188413Sthompsa    bfd_default_compatible,
150188413Sthompsa    bfd_default_scan,
151188413Sthompsa    0,
152192984Sthompsa  }
153192984Sthompsa};
154192984Sthompsa
155192984Sthompsaconst bfd_arch_info_type bfd_sparc_arch =
156192984Sthompsa  {
157192984Sthompsa    32,	/* bits in a word */
158190742Sthompsa    32,	/* bits in an address */
159192984Sthompsa    8,	/* bits in a byte */
160192984Sthompsa    bfd_arch_sparc,
161192984Sthompsa    bfd_mach_sparc,
162184610Salfred    "sparc",
163188413Sthompsa    "sparc",
164184610Salfred    3,
165233774Shselasky    TRUE, /* the default */
166242619Shselasky    bfd_default_compatible,
167242619Shselasky    bfd_default_scan,
168184610Salfred    &arch_info_struct[0],
169197570Sthompsa  };
170184610Salfred