00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "bfd.h"
00027 #include "sysdep.h"
00028 #include "libbfd.h"
00029
00030
00031
00032 static const bfd_arch_info_type *powerpc_compatible
00033 PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *));
00034
00035 static const bfd_arch_info_type *
00036 powerpc_compatible (a,b)
00037 const bfd_arch_info_type *a;
00038 const bfd_arch_info_type *b;
00039 {
00040 BFD_ASSERT (a->arch == bfd_arch_powerpc);
00041 switch (b->arch)
00042 {
00043 default:
00044 return NULL;
00045 case bfd_arch_powerpc:
00046 return bfd_default_compatible (a, b);
00047 case bfd_arch_rs6000:
00048 if (b->mach == bfd_mach_rs6k)
00049 return a;
00050 return NULL;
00051 }
00052
00053 }
00054
00055 const bfd_arch_info_type bfd_powerpc_archs[] =
00056 {
00057 #if BFD_DEFAULT_TARGET_SIZE == 64
00058
00059 {
00060 64,
00061 64,
00062 8,
00063 bfd_arch_powerpc,
00064 bfd_mach_ppc64,
00065 "powerpc",
00066 "powerpc:common64",
00067 3,
00068 TRUE,
00069 powerpc_compatible,
00070 bfd_default_scan,
00071 &bfd_powerpc_archs[1]
00072 },
00073
00074
00075 {
00076 32,
00077 32,
00078 8,
00079 bfd_arch_powerpc,
00080 bfd_mach_ppc,
00081 "powerpc",
00082 "powerpc:common",
00083 3,
00084 FALSE,
00085 powerpc_compatible,
00086 bfd_default_scan,
00087 &bfd_powerpc_archs[2],
00088 },
00089 #else
00090
00091 {
00092 32,
00093 32,
00094 8,
00095 bfd_arch_powerpc,
00096 bfd_mach_ppc,
00097 "powerpc",
00098 "powerpc:common",
00099 3,
00100 TRUE,
00101 powerpc_compatible,
00102 bfd_default_scan,
00103 &bfd_powerpc_archs[1],
00104 },
00105
00106
00107 {
00108 64,
00109 64,
00110 8,
00111 bfd_arch_powerpc,
00112 bfd_mach_ppc64,
00113 "powerpc",
00114 "powerpc:common64",
00115 3,
00116 FALSE,
00117 powerpc_compatible,
00118 bfd_default_scan,
00119 &bfd_powerpc_archs[2]
00120 },
00121 #endif
00122 {
00123 32,
00124 32,
00125 8,
00126 bfd_arch_powerpc,
00127 bfd_mach_ppc_603,
00128 "powerpc",
00129 "powerpc:603",
00130 3,
00131 FALSE,
00132 powerpc_compatible,
00133 bfd_default_scan,
00134 &bfd_powerpc_archs[3]
00135 },
00136 {
00137 32,
00138 32,
00139 8,
00140 bfd_arch_powerpc,
00141 bfd_mach_ppc_ec603e,
00142 "powerpc",
00143 "powerpc:EC603e",
00144 3,
00145 FALSE,
00146 powerpc_compatible,
00147 bfd_default_scan,
00148 &bfd_powerpc_archs[4]
00149 },
00150 {
00151 32,
00152 32,
00153 8,
00154 bfd_arch_powerpc,
00155 bfd_mach_ppc_604,
00156 "powerpc",
00157 "powerpc:604",
00158 3,
00159 FALSE,
00160 powerpc_compatible,
00161 bfd_default_scan,
00162 &bfd_powerpc_archs[5]
00163 },
00164 {
00165 32,
00166 32,
00167 8,
00168 bfd_arch_powerpc,
00169 bfd_mach_ppc_403,
00170 "powerpc",
00171 "powerpc:403",
00172 3,
00173 FALSE,
00174 powerpc_compatible,
00175 bfd_default_scan,
00176 &bfd_powerpc_archs[6]
00177 },
00178 {
00179 32,
00180 32,
00181 8,
00182 bfd_arch_powerpc,
00183 bfd_mach_ppc_601,
00184 "powerpc",
00185 "powerpc:601",
00186 3,
00187 FALSE,
00188 powerpc_compatible,
00189 bfd_default_scan,
00190 &bfd_powerpc_archs[7]
00191 },
00192 {
00193 64,
00194 64,
00195 8,
00196 bfd_arch_powerpc,
00197 bfd_mach_ppc_620,
00198 "powerpc",
00199 "powerpc:620",
00200 3,
00201 FALSE,
00202 powerpc_compatible,
00203 bfd_default_scan,
00204 &bfd_powerpc_archs[8]
00205 },
00206 {
00207 64,
00208 64,
00209 8,
00210 bfd_arch_powerpc,
00211 bfd_mach_ppc_630,
00212 "powerpc",
00213 "powerpc:630",
00214 3,
00215 FALSE,
00216 powerpc_compatible,
00217 bfd_default_scan,
00218 &bfd_powerpc_archs[9]
00219 },
00220 {
00221 64,
00222 64,
00223 8,
00224 bfd_arch_powerpc,
00225 bfd_mach_ppc_a35,
00226 "powerpc",
00227 "powerpc:a35",
00228 3,
00229 FALSE,
00230 powerpc_compatible,
00231 bfd_default_scan,
00232 &bfd_powerpc_archs[10]
00233 },
00234 {
00235 64,
00236 64,
00237 8,
00238 bfd_arch_powerpc,
00239 bfd_mach_ppc_rs64ii,
00240 "powerpc",
00241 "powerpc:rs64ii",
00242 3,
00243 FALSE,
00244 powerpc_compatible,
00245 bfd_default_scan,
00246 &bfd_powerpc_archs[11]
00247 },
00248 {
00249 64,
00250 64,
00251 8,
00252 bfd_arch_powerpc,
00253 bfd_mach_ppc_rs64iii,
00254 "powerpc",
00255 "powerpc:rs64iii",
00256 3,
00257 FALSE,
00258 powerpc_compatible,
00259 bfd_default_scan,
00260 &bfd_powerpc_archs[12]
00261 },
00262 {
00263 32,
00264 32,
00265 8,
00266 bfd_arch_powerpc,
00267 bfd_mach_ppc_7400,
00268 "powerpc",
00269 "powerpc:7400",
00270 3,
00271 FALSE,
00272 powerpc_compatible,
00273 bfd_default_scan,
00274 &bfd_powerpc_archs[13]
00275 },
00276 {
00277 32,
00278 32,
00279 8,
00280 bfd_arch_powerpc,
00281 bfd_mach_ppc_e500,
00282 "powerpc",
00283 "powerpc:e500",
00284 3,
00285 FALSE,
00286 powerpc_compatible,
00287 bfd_default_scan,
00288 &bfd_powerpc_archs[14]
00289 },
00290 {
00291 32,
00292 32,
00293 8,
00294 bfd_arch_powerpc,
00295 bfd_mach_ppc_860,
00296 "powerpc",
00297 "powerpc:MPC8XX",
00298 3,
00299 FALSE,
00300 powerpc_compatible,
00301 bfd_default_scan,
00302 0
00303 }
00304 };