Check unit->addr_size to read in the proper number of prologue bytes.
[deliverable/binutils-gdb.git] / bfd / cpu-sparc.c
1 /* BFD support for the SPARC architecture.
2 Copyright 1992, 1995, 1996, 1998, 2000, 2002
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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
20
21 #include "bfd.h"
22 #include "sysdep.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 &arch_info_struct[1],
40 },
41 {
42 32, /* bits in a word */
43 32, /* bits in an address */
44 8, /* bits in a byte */
45 bfd_arch_sparc,
46 bfd_mach_sparc_sparclite,
47 "sparc",
48 "sparc:sparclite",
49 3,
50 false,
51 bfd_default_compatible,
52 bfd_default_scan,
53 &arch_info_struct[2],
54 },
55 {
56 32, /* bits in a word */
57 32, /* bits in an address */
58 8, /* bits in a byte */
59 bfd_arch_sparc,
60 bfd_mach_sparc_v8plus,
61 "sparc",
62 "sparc:v8plus",
63 3,
64 false,
65 bfd_default_compatible,
66 bfd_default_scan,
67 &arch_info_struct[3],
68 },
69 {
70 32, /* bits in a word */
71 32, /* bits in an address */
72 8, /* bits in a byte */
73 bfd_arch_sparc,
74 bfd_mach_sparc_v8plusa,
75 "sparc",
76 "sparc:v8plusa",
77 3,
78 false,
79 bfd_default_compatible,
80 bfd_default_scan,
81 &arch_info_struct[4],
82 },
83 {
84 32, /* bits in a word */
85 32, /* bits in an address */
86 8, /* bits in a byte */
87 bfd_arch_sparc,
88 bfd_mach_sparc_sparclite_le,
89 "sparc",
90 "sparc:sparclite_le",
91 3,
92 false,
93 bfd_default_compatible,
94 bfd_default_scan,
95 &arch_info_struct[5],
96 },
97 {
98 64, /* bits in a word */
99 64, /* bits in an address */
100 8, /* bits in a byte */
101 bfd_arch_sparc,
102 bfd_mach_sparc_v9,
103 "sparc",
104 "sparc:v9",
105 3,
106 false,
107 bfd_default_compatible,
108 bfd_default_scan,
109 &arch_info_struct[6],
110 },
111 {
112 64, /* bits in a word */
113 64, /* bits in an address */
114 8, /* bits in a byte */
115 bfd_arch_sparc,
116 bfd_mach_sparc_v9a,
117 "sparc",
118 "sparc:v9a",
119 3,
120 false,
121 bfd_default_compatible,
122 bfd_default_scan,
123 &arch_info_struct[7],
124 },
125 {
126 32, /* bits in a word */
127 32, /* bits in an address */
128 8, /* bits in a byte */
129 bfd_arch_sparc,
130 bfd_mach_sparc_v8plusb,
131 "sparc",
132 "sparc:v8plusb",
133 3,
134 false,
135 bfd_default_compatible,
136 bfd_default_scan,
137 &arch_info_struct[8],
138 },
139 {
140 64, /* bits in a word */
141 64, /* bits in an address */
142 8, /* bits in a byte */
143 bfd_arch_sparc,
144 bfd_mach_sparc_v9b,
145 "sparc",
146 "sparc:v9b",
147 3,
148 false,
149 bfd_default_compatible,
150 bfd_default_scan,
151 0,
152 }
153 };
154
155 const bfd_arch_info_type bfd_sparc_arch =
156 {
157 32, /* bits in a word */
158 32, /* bits in an address */
159 8, /* bits in a byte */
160 bfd_arch_sparc,
161 bfd_mach_sparc,
162 "sparc",
163 "sparc",
164 3,
165 true, /* the default */
166 bfd_default_compatible,
167 bfd_default_scan,
168 &arch_info_struct[0],
169 };
This page took 0.034885 seconds and 4 git commands to generate.