Add copyright notices
[deliverable/binutils-gdb.git] / bfd / cpu-rs6000.c
CommitLineData
252b5132 1/* BFD back-end for rs6000 support
2c3fc389 2 Copyright 1990, 1991, 1993, 1995, 2000, 2002, 2003, 2005, 2007, 2012
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
252b5132 31static const bfd_arch_info_type *
2c3fc389
NC
32rs6000_compatible (const bfd_arch_info_type *a,
33 const bfd_arch_info_type *b)
252b5132
RH
34{
35 BFD_ASSERT (a->arch == bfd_arch_rs6000);
36 switch (b->arch)
37 {
38 default:
39 return NULL;
40 case bfd_arch_rs6000:
41 return bfd_default_compatible (a, b);
42 case bfd_arch_powerpc:
3f8b3ef3 43 if (a->mach == bfd_mach_rs6k)
252b5132
RH
44 return b;
45 return NULL;
46 }
47 /*NOTREACHED*/
48}
49
87f33987
ND
50static const bfd_arch_info_type arch_info_struct[] =
51{
52 {
53 32, /* 32 bits in a word */
54 32, /* 32 bits in an address */
55 8, /* 8 bits in a byte */
56 bfd_arch_rs6000,
57 bfd_mach_rs6k_rs1,
58 "rs6000",
59 "rs6000:rs1",
60 3,
b34976b6 61 FALSE, /* not the default */
87f33987
ND
62 rs6000_compatible,
63 bfd_default_scan,
b7761f11 64 bfd_arch_default_fill,
87f33987
ND
65 &arch_info_struct[1]
66 },
67 {
68 32, /* 32 bits in a word */
69 32, /* 32 bits in an address */
70 8, /* 8 bits in a byte */
71 bfd_arch_rs6000,
72 bfd_mach_rs6k_rsc,
73 "rs6000",
74 "rs6000:rsc",
75 3,
b34976b6 76 FALSE, /* not the default */
87f33987
ND
77 rs6000_compatible,
78 bfd_default_scan,
b7761f11 79 bfd_arch_default_fill,
87f33987
ND
80 &arch_info_struct[2]
81 },
82 {
83 32, /* 32 bits in a word */
84 32, /* 32 bits in an address */
85 8, /* 8 bits in a byte */
86 bfd_arch_rs6000,
87 bfd_mach_rs6k_rs2,
88 "rs6000",
89 "rs6000:rs2",
90 3,
b34976b6 91 FALSE, /* not the default */
87f33987
ND
92 rs6000_compatible,
93 bfd_default_scan,
b7761f11 94 bfd_arch_default_fill,
87f33987
ND
95 0
96 }
97};
98
252b5132
RH
99const bfd_arch_info_type bfd_rs6000_arch =
100 {
101 32, /* 32 bits in a word */
102 32, /* 32 bits in an address */
103 8, /* 8 bits in a byte */
104 bfd_arch_rs6000,
87f33987 105 bfd_mach_rs6k, /* POWER common architecture */
252b5132
RH
106 "rs6000",
107 "rs6000:6000",
108 3,
b34976b6 109 TRUE, /* the default */
252b5132
RH
110 rs6000_compatible,
111 bfd_default_scan,
b7761f11 112 bfd_arch_default_fill,
87f33987 113 &arch_info_struct[0]
252b5132 114 };
This page took 0.603861 seconds and 4 git commands to generate.