New "find" command.
[deliverable/binutils-gdb.git] / bfd / cpu-rs6000.c
CommitLineData
252b5132 1/* BFD back-end for rs6000 support
3db64b00 2 Copyright 1990, 1991, 1993, 1995, 2000, 2002, 2003, 2007
b34976b6 3 Free Software Foundation, Inc.
2ce18a16 4 Written by Mimi Phuong-Thao Vo of IBM
252b5132
RH
5 and John Gilmore of Cygnus Support.
6
cd123cb7 7 This file is part of BFD, the Binary File Descriptor library.
252b5132 8
cd123cb7
NC
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
11 the Free Software Foundation; either version 3 of the License, or
12 (at your option) any later version.
252b5132 13
cd123cb7
NC
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
252b5132 18
cd123cb7
NC
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
21 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
22 MA 02110-1301, USA. */
252b5132 23
252b5132 24#include "sysdep.h"
3db64b00 25#include "bfd.h"
252b5132
RH
26#include "libbfd.h"
27
28/* The RS/6000 architecture is compatible with the PowerPC common
29 architecture. */
30
31static const bfd_arch_info_type *rs6000_compatible
32 PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *));
33
34static const bfd_arch_info_type *
35rs6000_compatible (a,b)
36 const bfd_arch_info_type *a;
37 const bfd_arch_info_type *b;
38{
39 BFD_ASSERT (a->arch == bfd_arch_rs6000);
40 switch (b->arch)
41 {
42 default:
43 return NULL;
44 case bfd_arch_rs6000:
45 return bfd_default_compatible (a, b);
46 case bfd_arch_powerpc:
3f8b3ef3 47 if (a->mach == bfd_mach_rs6k)
252b5132
RH
48 return b;
49 return NULL;
50 }
51 /*NOTREACHED*/
52}
53
87f33987
ND
54static const bfd_arch_info_type arch_info_struct[] =
55{
56 {
57 32, /* 32 bits in a word */
58 32, /* 32 bits in an address */
59 8, /* 8 bits in a byte */
60 bfd_arch_rs6000,
61 bfd_mach_rs6k_rs1,
62 "rs6000",
63 "rs6000:rs1",
64 3,
b34976b6 65 FALSE, /* not the default */
87f33987
ND
66 rs6000_compatible,
67 bfd_default_scan,
68 &arch_info_struct[1]
69 },
70 {
71 32, /* 32 bits in a word */
72 32, /* 32 bits in an address */
73 8, /* 8 bits in a byte */
74 bfd_arch_rs6000,
75 bfd_mach_rs6k_rsc,
76 "rs6000",
77 "rs6000:rsc",
78 3,
b34976b6 79 FALSE, /* not the default */
87f33987
ND
80 rs6000_compatible,
81 bfd_default_scan,
82 &arch_info_struct[2]
83 },
84 {
85 32, /* 32 bits in a word */
86 32, /* 32 bits in an address */
87 8, /* 8 bits in a byte */
88 bfd_arch_rs6000,
89 bfd_mach_rs6k_rs2,
90 "rs6000",
91 "rs6000:rs2",
92 3,
b34976b6 93 FALSE, /* not the default */
87f33987
ND
94 rs6000_compatible,
95 bfd_default_scan,
96 0
97 }
98};
99
252b5132
RH
100const bfd_arch_info_type bfd_rs6000_arch =
101 {
102 32, /* 32 bits in a word */
103 32, /* 32 bits in an address */
104 8, /* 8 bits in a byte */
105 bfd_arch_rs6000,
87f33987 106 bfd_mach_rs6k, /* POWER common architecture */
252b5132
RH
107 "rs6000",
108 "rs6000:6000",
109 3,
b34976b6 110 TRUE, /* the default */
252b5132
RH
111 rs6000_compatible,
112 bfd_default_scan,
87f33987 113 &arch_info_struct[0]
252b5132 114 };
This page took 0.389451 seconds and 4 git commands to generate.