Support arch-dependent fill
[external/binutils.git] / bfd / cpu-sparc.c
1 /* BFD support for the SPARC architecture.
2    Copyright 1992, 1995, 1996, 1998, 2000, 2002, 2005, 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     bfd_arch_default_fill,
41     &arch_info_struct[1],
42   },
43   {
44     32, /* bits in a word */
45     32, /* bits in an address */
46     8,  /* bits in a byte */
47     bfd_arch_sparc,
48     bfd_mach_sparc_sparclite,
49     "sparc",
50     "sparc:sparclite",
51     3,
52     FALSE,
53     bfd_default_compatible,
54     bfd_default_scan,
55     bfd_arch_default_fill,
56     &arch_info_struct[2],
57   },
58   {
59     32, /* bits in a word */
60     32, /* bits in an address */
61     8,  /* bits in a byte */
62     bfd_arch_sparc,
63     bfd_mach_sparc_v8plus,
64     "sparc",
65     "sparc:v8plus",
66     3,
67     FALSE,
68     bfd_default_compatible,
69     bfd_default_scan,
70     bfd_arch_default_fill,
71     &arch_info_struct[3],
72   },
73   {
74     32, /* bits in a word */
75     32, /* bits in an address */
76     8,  /* bits in a byte */
77     bfd_arch_sparc,
78     bfd_mach_sparc_v8plusa,
79     "sparc",
80     "sparc:v8plusa",
81     3,
82     FALSE,
83     bfd_default_compatible,
84     bfd_default_scan,
85     bfd_arch_default_fill,
86     &arch_info_struct[4],
87   },
88   {
89     32, /* bits in a word */
90     32, /* bits in an address */
91     8,  /* bits in a byte */
92     bfd_arch_sparc,
93     bfd_mach_sparc_sparclite_le,
94     "sparc",
95     "sparc:sparclite_le",
96     3,
97     FALSE,
98     bfd_default_compatible,
99     bfd_default_scan,
100     bfd_arch_default_fill,
101     &arch_info_struct[5],
102   },
103   {
104     64, /* bits in a word */
105     64, /* bits in an address */
106     8,  /* bits in a byte */
107     bfd_arch_sparc,
108     bfd_mach_sparc_v9,
109     "sparc",
110     "sparc:v9",
111     3,
112     FALSE,
113     bfd_default_compatible,
114     bfd_default_scan,
115     bfd_arch_default_fill,
116     &arch_info_struct[6],
117   },
118   {
119     64, /* bits in a word */
120     64, /* bits in an address */
121     8,  /* bits in a byte */
122     bfd_arch_sparc,
123     bfd_mach_sparc_v9a,
124     "sparc",
125     "sparc:v9a",
126     3,
127     FALSE,
128     bfd_default_compatible,
129     bfd_default_scan,
130     bfd_arch_default_fill,
131     &arch_info_struct[7],
132   },
133   {
134     32, /* bits in a word */
135     32, /* bits in an address */
136     8,  /* bits in a byte */
137     bfd_arch_sparc,
138     bfd_mach_sparc_v8plusb,
139     "sparc",
140     "sparc:v8plusb",
141     3,
142     FALSE,
143     bfd_default_compatible,
144     bfd_default_scan,
145     bfd_arch_default_fill,
146     &arch_info_struct[8],
147   },
148   {
149     64, /* bits in a word */
150     64, /* bits in an address */
151     8,  /* bits in a byte */
152     bfd_arch_sparc,
153     bfd_mach_sparc_v9b,
154     "sparc",
155     "sparc:v9b",
156     3,
157     FALSE,
158     bfd_default_compatible,
159     bfd_default_scan,
160     bfd_arch_default_fill,
161     0,
162   }
163 };
164
165 const bfd_arch_info_type bfd_sparc_arch =
166   {
167     32, /* bits in a word */
168     32, /* bits in an address */
169     8,  /* bits in a byte */
170     bfd_arch_sparc,
171     bfd_mach_sparc,
172     "sparc",
173     "sparc",
174     3,
175     TRUE, /* the default */
176     bfd_default_compatible,
177     bfd_default_scan,
178     bfd_arch_default_fill,
179     &arch_info_struct[0],
180   };