OLD | NEW |
1 /* BFD back-end for rs6000 support | 1 /* BFD back-end for rs6000 support |
2 Copyright 1990, 1991, 1993, 1995, 2000, 2002, 2003, 2005, 2007 | 2 Copyright 1990, 1991, 1993, 1995, 2000, 2002, 2003, 2005, 2007, 2012 |
3 Free Software Foundation, Inc. | 3 Free Software Foundation, Inc. |
4 Written by Mimi Phuong-Thao Vo of IBM | 4 Written by Mimi Phuong-Thao Vo of IBM |
5 and John Gilmore of Cygnus Support. | 5 and John Gilmore of Cygnus Support. |
6 | 6 |
7 This file is part of BFD, the Binary File Descriptor library. | 7 This file is part of BFD, the Binary File Descriptor library. |
8 | 8 |
9 This program is free software; you can redistribute it and/or modify | 9 This program is free software; you can redistribute it and/or modify |
10 it under the terms of the GNU General Public License as published by | 10 it under the terms of the GNU General Public License as published by |
11 the Free Software Foundation; either version 3 of the License, or | 11 the Free Software Foundation; either version 3 of the License, or |
12 (at your option) any later version. | 12 (at your option) any later version. |
13 | 13 |
14 This program is distributed in the hope that it will be useful, | 14 This program is distributed in the hope that it will be useful, |
15 but WITHOUT ANY WARRANTY; without even the implied warranty of | 15 but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
17 GNU General Public License for more details. | 17 GNU General Public License for more details. |
18 | 18 |
19 You should have received a copy of the GNU General Public License | 19 You should have received a copy of the GNU General Public License |
20 along with this program; if not, write to the Free Software | 20 along with this program; if not, write to the Free Software |
21 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, | 21 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, |
22 MA 02110-1301, USA. */ | 22 MA 02110-1301, USA. */ |
23 | 23 |
24 #include "sysdep.h" | 24 #include "sysdep.h" |
25 #include "bfd.h" | 25 #include "bfd.h" |
26 #include "libbfd.h" | 26 #include "libbfd.h" |
27 | 27 |
28 /* The RS/6000 architecture is compatible with the PowerPC common | 28 /* The RS/6000 architecture is compatible with the PowerPC common |
29 architecture. */ | 29 architecture. */ |
30 | 30 |
31 static const bfd_arch_info_type *rs6000_compatible | |
32 PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *)); | |
33 | |
34 static const bfd_arch_info_type * | 31 static const bfd_arch_info_type * |
35 rs6000_compatible (a,b) | 32 rs6000_compatible (const bfd_arch_info_type *a, |
36 const bfd_arch_info_type *a; | 33 » » const bfd_arch_info_type *b) |
37 const bfd_arch_info_type *b; | |
38 { | 34 { |
39 BFD_ASSERT (a->arch == bfd_arch_rs6000); | 35 BFD_ASSERT (a->arch == bfd_arch_rs6000); |
40 switch (b->arch) | 36 switch (b->arch) |
41 { | 37 { |
42 default: | 38 default: |
43 return NULL; | 39 return NULL; |
44 case bfd_arch_rs6000: | 40 case bfd_arch_rs6000: |
45 return bfd_default_compatible (a, b); | 41 return bfd_default_compatible (a, b); |
46 case bfd_arch_powerpc: | 42 case bfd_arch_powerpc: |
47 if (a->mach == bfd_mach_rs6k) | 43 if (a->mach == bfd_mach_rs6k) |
(...skipping 10 matching lines...) Expand all Loading... |
58 32, /* 32 bits in an address */ | 54 32, /* 32 bits in an address */ |
59 8, /* 8 bits in a byte */ | 55 8, /* 8 bits in a byte */ |
60 bfd_arch_rs6000, | 56 bfd_arch_rs6000, |
61 bfd_mach_rs6k_rs1, | 57 bfd_mach_rs6k_rs1, |
62 "rs6000", | 58 "rs6000", |
63 "rs6000:rs1", | 59 "rs6000:rs1", |
64 3, | 60 3, |
65 FALSE, /* not the default */ | 61 FALSE, /* not the default */ |
66 rs6000_compatible, | 62 rs6000_compatible, |
67 bfd_default_scan, | 63 bfd_default_scan, |
| 64 bfd_arch_default_fill, |
68 &arch_info_struct[1] | 65 &arch_info_struct[1] |
69 }, | 66 }, |
70 { | 67 { |
71 32, /* 32 bits in a word */ | 68 32, /* 32 bits in a word */ |
72 32, /* 32 bits in an address */ | 69 32, /* 32 bits in an address */ |
73 8, /* 8 bits in a byte */ | 70 8, /* 8 bits in a byte */ |
74 bfd_arch_rs6000, | 71 bfd_arch_rs6000, |
75 bfd_mach_rs6k_rsc, | 72 bfd_mach_rs6k_rsc, |
76 "rs6000", | 73 "rs6000", |
77 "rs6000:rsc", | 74 "rs6000:rsc", |
78 3, | 75 3, |
79 FALSE, /* not the default */ | 76 FALSE, /* not the default */ |
80 rs6000_compatible, | 77 rs6000_compatible, |
81 bfd_default_scan, | 78 bfd_default_scan, |
| 79 bfd_arch_default_fill, |
82 &arch_info_struct[2] | 80 &arch_info_struct[2] |
83 }, | 81 }, |
84 { | 82 { |
85 32, /* 32 bits in a word */ | 83 32, /* 32 bits in a word */ |
86 32, /* 32 bits in an address */ | 84 32, /* 32 bits in an address */ |
87 8, /* 8 bits in a byte */ | 85 8, /* 8 bits in a byte */ |
88 bfd_arch_rs6000, | 86 bfd_arch_rs6000, |
89 bfd_mach_rs6k_rs2, | 87 bfd_mach_rs6k_rs2, |
90 "rs6000", | 88 "rs6000", |
91 "rs6000:rs2", | 89 "rs6000:rs2", |
92 3, | 90 3, |
93 FALSE, /* not the default */ | 91 FALSE, /* not the default */ |
94 rs6000_compatible, | 92 rs6000_compatible, |
95 bfd_default_scan, | 93 bfd_default_scan, |
| 94 bfd_arch_default_fill, |
96 0 | 95 0 |
97 } | 96 } |
98 }; | 97 }; |
99 | 98 |
100 const bfd_arch_info_type bfd_rs6000_arch = | 99 const bfd_arch_info_type bfd_rs6000_arch = |
101 { | 100 { |
102 32, /* 32 bits in a word */ | 101 32, /* 32 bits in a word */ |
103 32, /* 32 bits in an address */ | 102 32, /* 32 bits in an address */ |
104 8, /* 8 bits in a byte */ | 103 8, /* 8 bits in a byte */ |
105 bfd_arch_rs6000, | 104 bfd_arch_rs6000, |
106 bfd_mach_rs6k, /* POWER common architecture */ | 105 bfd_mach_rs6k, /* POWER common architecture */ |
107 "rs6000", | 106 "rs6000", |
108 "rs6000:6000", | 107 "rs6000:6000", |
109 3, | 108 3, |
110 TRUE, /* the default */ | 109 TRUE, /* the default */ |
111 rs6000_compatible, | 110 rs6000_compatible, |
112 bfd_default_scan, | 111 bfd_default_scan, |
| 112 bfd_arch_default_fill, |
113 &arch_info_struct[0] | 113 &arch_info_struct[0] |
114 }; | 114 }; |
OLD | NEW |