daily update
[platform/upstream/binutils.git] / bfd / cpu-sparc.c
1 /* BFD support for the SPARC architecture.
2    Copyright 1992, 1995, 1996, 1998, 2000, 2002, 2007
3    Free Software Foundation, Inc.
4
5    This file is part of BFD, the Binary File Descriptor library.
6
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 3 of the License, or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with this program; if not, write to the Free Software
19    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20    MA 02110-1301, USA.  */
21
22 #include "sysdep.h"
23 #include "bfd.h"
24 #include "libbfd.h"
25
26 static const bfd_arch_info_type arch_info_struct[] =
27 {
28   {
29     32, /* bits in a word */
30     32, /* bits in an address */
31     8,  /* bits in a byte */
32     bfd_arch_sparc,
33     bfd_mach_sparc_sparclet,
34     "sparc",
35     "sparc:sparclet",
36     3,
37     FALSE,
38     bfd_default_compatible,
39     bfd_default_scan,
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     &arch_info_struct[2],
55   },
56   {
57     32, /* bits in a word */
58     32, /* bits in an address */
59     8,  /* bits in a byte */
60     bfd_arch_sparc,
61     bfd_mach_sparc_v8plus,
62     "sparc",
63     "sparc:v8plus",
64     3,
65     FALSE,
66     bfd_default_compatible,
67     bfd_default_scan,
68     &arch_info_struct[3],
69   },
70   {
71     32, /* bits in a word */
72     32, /* bits in an address */
73     8,  /* bits in a byte */
74     bfd_arch_sparc,
75     bfd_mach_sparc_v8plusa,
76     "sparc",
77     "sparc:v8plusa",
78     3,
79     FALSE,
80     bfd_default_compatible,
81     bfd_default_scan,
82     &arch_info_struct[4],
83   },
84   {
85     32, /* bits in a word */
86     32, /* bits in an address */
87     8,  /* bits in a byte */
88     bfd_arch_sparc,
89     bfd_mach_sparc_sparclite_le,
90     "sparc",
91     "sparc:sparclite_le",
92     3,
93     FALSE,
94     bfd_default_compatible,
95     bfd_default_scan,
96     &arch_info_struct[5],
97   },
98   {
99     64, /* bits in a word */
100     64, /* bits in an address */
101     8,  /* bits in a byte */
102     bfd_arch_sparc,
103     bfd_mach_sparc_v9,
104     "sparc",
105     "sparc:v9",
106     3,
107     FALSE,
108     bfd_default_compatible,
109     bfd_default_scan,
110     &arch_info_struct[6],
111   },
112   {
113     64, /* bits in a word */
114     64, /* bits in an address */
115     8,  /* bits in a byte */
116     bfd_arch_sparc,
117     bfd_mach_sparc_v9a,
118     "sparc",
119     "sparc:v9a",
120     3,
121     FALSE,
122     bfd_default_compatible,
123     bfd_default_scan,
124     &arch_info_struct[7],
125   },
126   {
127     32, /* bits in a word */
128     32, /* bits in an address */
129     8,  /* bits in a byte */
130     bfd_arch_sparc,
131     bfd_mach_sparc_v8plusb,
132     "sparc",
133     "sparc:v8plusb",
134     3,
135     FALSE,
136     bfd_default_compatible,
137     bfd_default_scan,
138     &arch_info_struct[8],
139   },
140   {
141     64, /* bits in a word */
142     64, /* bits in an address */
143     8,  /* bits in a byte */
144     bfd_arch_sparc,
145     bfd_mach_sparc_v9b,
146     "sparc",
147     "sparc:v9b",
148     3,
149     FALSE,
150     bfd_default_compatible,
151     bfd_default_scan,
152     0,
153   }
154 };
155
156 const bfd_arch_info_type bfd_sparc_arch =
157   {
158     32, /* bits in a word */
159     32, /* bits in an address */
160     8,  /* bits in a byte */
161     bfd_arch_sparc,
162     bfd_mach_sparc,
163     "sparc",
164     "sparc",
165     3,
166     TRUE, /* the default */
167     bfd_default_compatible,
168     bfd_default_scan,
169     &arch_info_struct[0],
170   };