1 |
709 |
jeremybenn |
/* IBM RS/6000 CPU names..
|
2 |
|
|
Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
3 |
|
|
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
4 |
|
|
Free Software Foundation, Inc.
|
5 |
|
|
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
|
6 |
|
|
|
7 |
|
|
This file is part of GCC.
|
8 |
|
|
|
9 |
|
|
GCC is free software; you can redistribute it and/or modify it
|
10 |
|
|
under the terms of the GNU General Public License as published
|
11 |
|
|
by the Free Software Foundation; either version 3, or (at your
|
12 |
|
|
option) any later version.
|
13 |
|
|
|
14 |
|
|
GCC is distributed in the hope that it will be useful, but WITHOUT
|
15 |
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
16 |
|
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
17 |
|
|
License for more details.
|
18 |
|
|
|
19 |
|
|
You should have received a copy of the GNU General Public License
|
20 |
|
|
along with GCC; see the file COPYING3. If not see
|
21 |
|
|
. */
|
22 |
|
|
|
23 |
|
|
/* This table occasionally claims that a processor does not support a
|
24 |
|
|
particular feature even though it does, but the feature is slower than the
|
25 |
|
|
alternative. Thus, it shouldn't be relied on as a complete description of
|
26 |
|
|
the processor's support.
|
27 |
|
|
|
28 |
|
|
Please keep this list in order, and don't forget to update the documentation
|
29 |
|
|
in invoke.texi when adding a new processor or flag.
|
30 |
|
|
|
31 |
|
|
Before including this file, define a macro:
|
32 |
|
|
|
33 |
|
|
RS6000_CPU (NAME, CPU, FLAGS)
|
34 |
|
|
|
35 |
|
|
where the arguments are the fields of struct rs6000_ptt. */
|
36 |
|
|
|
37 |
|
|
RS6000_CPU ("401", PROCESSOR_PPC403, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
|
38 |
|
|
RS6000_CPU ("403", PROCESSOR_PPC403,
|
39 |
|
|
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_STRICT_ALIGN)
|
40 |
|
|
RS6000_CPU ("405", PROCESSOR_PPC405,
|
41 |
|
|
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_MULHW | MASK_DLMZB)
|
42 |
|
|
RS6000_CPU ("405fp", PROCESSOR_PPC405,
|
43 |
|
|
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB)
|
44 |
|
|
RS6000_CPU ("440", PROCESSOR_PPC440,
|
45 |
|
|
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_MULHW | MASK_DLMZB)
|
46 |
|
|
RS6000_CPU ("440fp", PROCESSOR_PPC440,
|
47 |
|
|
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB)
|
48 |
|
|
RS6000_CPU ("464", PROCESSOR_PPC440,
|
49 |
|
|
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_MULHW | MASK_DLMZB)
|
50 |
|
|
RS6000_CPU ("464fp", PROCESSOR_PPC440,
|
51 |
|
|
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB)
|
52 |
|
|
RS6000_CPU ("476", PROCESSOR_PPC476,
|
53 |
|
|
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_PPC_GFXOPT | MASK_MFCRF
|
54 |
|
|
| MASK_POPCNTB | MASK_FPRND | MASK_CMPB | MASK_MULHW | MASK_DLMZB)
|
55 |
|
|
RS6000_CPU ("476fp", PROCESSOR_PPC476,
|
56 |
|
|
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_MFCRF | MASK_POPCNTB
|
57 |
|
|
| MASK_FPRND | MASK_CMPB | MASK_MULHW | MASK_DLMZB)
|
58 |
|
|
RS6000_CPU ("505", PROCESSOR_MPCCORE, POWERPC_BASE_MASK)
|
59 |
|
|
RS6000_CPU ("601", PROCESSOR_PPC601,
|
60 |
|
|
MASK_POWER | POWERPC_BASE_MASK | MASK_MULTIPLE | MASK_STRING)
|
61 |
|
|
RS6000_CPU ("602", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
|
62 |
|
|
RS6000_CPU ("603", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
|
63 |
|
|
RS6000_CPU ("603e", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
|
64 |
|
|
RS6000_CPU ("604", PROCESSOR_PPC604, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
|
65 |
|
|
RS6000_CPU ("604e", PROCESSOR_PPC604e, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
|
66 |
|
|
RS6000_CPU ("620", PROCESSOR_PPC620,
|
67 |
|
|
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64)
|
68 |
|
|
RS6000_CPU ("630", PROCESSOR_PPC630,
|
69 |
|
|
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64)
|
70 |
|
|
RS6000_CPU ("740", PROCESSOR_PPC750, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
|
71 |
|
|
RS6000_CPU ("7400", PROCESSOR_PPC7400, POWERPC_7400_MASK)
|
72 |
|
|
RS6000_CPU ("7450", PROCESSOR_PPC7450, POWERPC_7400_MASK)
|
73 |
|
|
RS6000_CPU ("750", PROCESSOR_PPC750, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
|
74 |
|
|
RS6000_CPU ("801", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
|
75 |
|
|
RS6000_CPU ("821", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
|
76 |
|
|
RS6000_CPU ("823", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
|
77 |
|
|
RS6000_CPU ("8540", PROCESSOR_PPC8540, POWERPC_BASE_MASK | MASK_STRICT_ALIGN
|
78 |
|
|
| MASK_ISEL)
|
79 |
|
|
/* 8548 has a dummy entry for now. */
|
80 |
|
|
RS6000_CPU ("8548", PROCESSOR_PPC8540, POWERPC_BASE_MASK | MASK_STRICT_ALIGN
|
81 |
|
|
| MASK_ISEL)
|
82 |
|
|
RS6000_CPU ("a2", PROCESSOR_PPCA2,
|
83 |
|
|
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64 | MASK_POPCNTB
|
84 |
|
|
| MASK_CMPB | MASK_NO_UPDATE)
|
85 |
|
|
RS6000_CPU ("e300c2", PROCESSOR_PPCE300C2, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
|
86 |
|
|
RS6000_CPU ("e300c3", PROCESSOR_PPCE300C3, POWERPC_BASE_MASK)
|
87 |
|
|
RS6000_CPU ("e500mc", PROCESSOR_PPCE500MC, POWERPC_BASE_MASK | MASK_PPC_GFXOPT
|
88 |
|
|
| MASK_ISEL)
|
89 |
|
|
RS6000_CPU ("e500mc64", PROCESSOR_PPCE500MC64,
|
90 |
|
|
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GFXOPT | MASK_ISEL)
|
91 |
|
|
RS6000_CPU ("860", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
|
92 |
|
|
RS6000_CPU ("970", PROCESSOR_POWER4,
|
93 |
|
|
POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64)
|
94 |
|
|
RS6000_CPU ("cell", PROCESSOR_CELL,
|
95 |
|
|
POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64)
|
96 |
|
|
RS6000_CPU ("common", PROCESSOR_COMMON, MASK_NEW_MNEMONICS)
|
97 |
|
|
RS6000_CPU ("ec603e", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
|
98 |
|
|
RS6000_CPU ("G3", PROCESSOR_PPC750, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
|
99 |
|
|
RS6000_CPU ("G4", PROCESSOR_PPC7450, POWERPC_7400_MASK)
|
100 |
|
|
RS6000_CPU ("G5", PROCESSOR_POWER4,
|
101 |
|
|
POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64)
|
102 |
|
|
RS6000_CPU ("titan", PROCESSOR_TITAN,
|
103 |
|
|
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB)
|
104 |
|
|
RS6000_CPU ("power", PROCESSOR_POWER, MASK_POWER | MASK_MULTIPLE | MASK_STRING)
|
105 |
|
|
RS6000_CPU ("power2", PROCESSOR_POWER,
|
106 |
|
|
MASK_POWER | MASK_POWER2 | MASK_MULTIPLE | MASK_STRING)
|
107 |
|
|
RS6000_CPU ("power3", PROCESSOR_PPC630,
|
108 |
|
|
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64)
|
109 |
|
|
RS6000_CPU ("power4", PROCESSOR_POWER4,
|
110 |
|
|
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT
|
111 |
|
|
| MASK_PPC_GFXOPT | MASK_MFCRF)
|
112 |
|
|
RS6000_CPU ("power5", PROCESSOR_POWER5,
|
113 |
|
|
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT
|
114 |
|
|
| MASK_PPC_GFXOPT | MASK_MFCRF | MASK_POPCNTB)
|
115 |
|
|
RS6000_CPU ("power5+", PROCESSOR_POWER5,
|
116 |
|
|
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT
|
117 |
|
|
| MASK_PPC_GFXOPT | MASK_MFCRF | MASK_POPCNTB | MASK_FPRND)
|
118 |
|
|
RS6000_CPU ("power6", PROCESSOR_POWER6,
|
119 |
|
|
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT
|
120 |
|
|
| MASK_PPC_GFXOPT | MASK_MFCRF | MASK_POPCNTB | MASK_FPRND
|
121 |
|
|
| MASK_CMPB | MASK_DFP | MASK_RECIP_PRECISION)
|
122 |
|
|
RS6000_CPU ("power6x", PROCESSOR_POWER6,
|
123 |
|
|
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT
|
124 |
|
|
| MASK_PPC_GFXOPT | MASK_MFCRF | MASK_POPCNTB | MASK_FPRND
|
125 |
|
|
| MASK_CMPB | MASK_DFP | MASK_MFPGPR | MASK_RECIP_PRECISION)
|
126 |
|
|
RS6000_CPU ("power7", PROCESSOR_POWER7, /* Don't add MASK_ISEL by default */
|
127 |
|
|
POWERPC_7400_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT | MASK_MFCRF
|
128 |
|
|
| MASK_POPCNTB | MASK_FPRND | MASK_CMPB | MASK_DFP | MASK_POPCNTD
|
129 |
|
|
| MASK_VSX | MASK_RECIP_PRECISION)
|
130 |
|
|
RS6000_CPU ("powerpc", PROCESSOR_POWERPC, POWERPC_BASE_MASK)
|
131 |
|
|
RS6000_CPU ("powerpc64", PROCESSOR_POWERPC64,
|
132 |
|
|
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64)
|
133 |
|
|
RS6000_CPU ("rios", PROCESSOR_RIOS1, MASK_POWER | MASK_MULTIPLE | MASK_STRING)
|
134 |
|
|
RS6000_CPU ("rios1", PROCESSOR_RIOS1, MASK_POWER | MASK_MULTIPLE | MASK_STRING)
|
135 |
|
|
RS6000_CPU ("rios2", PROCESSOR_RIOS2,
|
136 |
|
|
MASK_POWER | MASK_POWER2 | MASK_MULTIPLE | MASK_STRING)
|
137 |
|
|
RS6000_CPU ("rsc", PROCESSOR_PPC601, MASK_POWER | MASK_MULTIPLE | MASK_STRING)
|
138 |
|
|
RS6000_CPU ("rsc1", PROCESSOR_PPC601, MASK_POWER | MASK_MULTIPLE | MASK_STRING)
|
139 |
|
|
RS6000_CPU ("rs64", PROCESSOR_RS64A,
|
140 |
|
|
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64)
|