arm-cores.def revision 169689
189051Sjake/* ARM CPU Cores
289051Sjake   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
3182916Smarius   Written by CodeSourcery, LLC
489051Sjake
589051Sjake   This file is part of GCC.
689051Sjake
789051Sjake   GCC is free software; you can redistribute it and/or modify it
889051Sjake   under the terms of the GNU General Public License as published by
989051Sjake   the Free Software Foundation; either version 2, or (at your option)
1089051Sjake   any later version.
1189051Sjake
1289051Sjake   GCC is distributed in the hope that it will be useful, but
1389051Sjake   WITHOUT ANY WARRANTY; without even the implied warranty of
1489051Sjake   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1589051Sjake   General Public License for more details.
1689051Sjake
1789051Sjake   You should have received a copy of the GNU General Public License
1889051Sjake   along with GCC; see the file COPYING.  If not, write to the Free
1989051Sjake   Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
2089051Sjake   02110-1301, USA.  */
2189051Sjake
2289051Sjake/* Before using #include to read this file, define a macro:
2389051Sjake
2489051Sjake      ARM_CORE(CORE_NAME, CORE_IDENT, ARCH, FLAGS, COSTS)
2589051Sjake
2689051Sjake   The CORE_NAME is the name of the core, represented as a string constant.
2789051Sjake   The CORE_IDENT is the name of the core, represented as an identifier.
28114188Sjake   ARCH is the architecture revision implemented by the chip.
29114188Sjake   FLAGS are the bitwise-or of the traits that apply to that core.
30114188Sjake   This need not include flags implied by the architecture.
3189051Sjake   COSTS is the name of the rtx_costs routine to use.
3289051Sjake
33207248Smarius   If you update this table, you must update the "tune" attribute in
3489051Sjake   arm.md.
3589051Sjake   
36166105Smarius   Some tools assume no whitespace up to the first "," in each entry.  */
37182730Smarius
3889051Sjake/* V2/V2A Architecture Processors */
3989051SjakeARM_CORE("arm2",   arm2,	2,	FL_CO_PROC | FL_MODE26, slowmul)
4089051SjakeARM_CORE("arm250", arm250,	2,	FL_CO_PROC | FL_MODE26, slowmul)
4189051SjakeARM_CORE("arm3",   arm3,	2,	FL_CO_PROC | FL_MODE26, slowmul)
4289051Sjake
4389051Sjake/* V3 Architecture Processors */
4491617SjakeARM_CORE("arm6",          arm6,		3,	FL_CO_PROC | FL_MODE26, slowmul)
45100899SjakeARM_CORE("arm60",         arm60,	3,	FL_CO_PROC | FL_MODE26, slowmul)
46182916SmariusARM_CORE("arm600",        arm600,	3,	FL_CO_PROC | FL_MODE26 | FL_WBUF, slowmul)
47203833SmariusARM_CORE("arm610",        arm610,	3,	             FL_MODE26 | FL_WBUF, slowmul)
48207248SmariusARM_CORE("arm620",        arm620,	3,	FL_CO_PROC | FL_MODE26 | FL_WBUF, slowmul)
49203833SmariusARM_CORE("arm7",          arm7,		3,	FL_CO_PROC | FL_MODE26, slowmul)
50203833SmariusARM_CORE("arm7d",         arm7d,	3,	FL_CO_PROC | FL_MODE26, slowmul)
51203833SmariusARM_CORE("arm7di",        arm7di,	3,	FL_CO_PROC | FL_MODE26, slowmul)
52203833SmariusARM_CORE("arm70",         arm70,	3,	FL_CO_PROC | FL_MODE26, slowmul)
53182916SmariusARM_CORE("arm700",        arm700,	3,	FL_CO_PROC | FL_MODE26 | FL_WBUF, slowmul)
54182916SmariusARM_CORE("arm700i",       arm700i,	3,	FL_CO_PROC | FL_MODE26 | FL_WBUF, slowmul)
55207248SmariusARM_CORE("arm710",        arm710,	3,	             FL_MODE26 | FL_WBUF, slowmul)
56182916SmariusARM_CORE("arm720",        arm720,	3,	             FL_MODE26 | FL_WBUF, slowmul)
57182916SmariusARM_CORE("arm710c",       arm710c,	3,	             FL_MODE26 | FL_WBUF, slowmul)
58182916SmariusARM_CORE("arm7100",       arm7100,	3,	             FL_MODE26 | FL_WBUF, slowmul)
59182916SmariusARM_CORE("arm7500",       arm7500,	3,	             FL_MODE26 | FL_WBUF, slowmul)
60182916Smarius/* Doesn't have an external co-proc, but does have embedded fpa.  */
61182916SmariusARM_CORE("arm7500fe",     arm7500fe,	3,	FL_CO_PROC | FL_MODE26 | FL_WBUF, slowmul)
62182916Smarius
63182916Smarius/* V3M Architecture Processors */
64182916Smarius/* arm7m doesn't exist on its own, but only with D, ("and", and I), but
65182916Smarius   those don't alter the code, so arm7m is sometimes used.  */
66182916SmariusARM_CORE("arm7m",         arm7m,	3M,	FL_CO_PROC | FL_MODE26, fastmul)
67182916SmariusARM_CORE("arm7dm",        arm7dm,	3M,	FL_CO_PROC | FL_MODE26, fastmul)
68182916SmariusARM_CORE("arm7dmi",       arm7dmi,	3M,	FL_CO_PROC | FL_MODE26, fastmul)
69182916Smarius
70182916Smarius/* V4 Architecture Processors */
71182916SmariusARM_CORE("arm8",          arm8,		4,	             FL_MODE26 | FL_LDSCHED, fastmul)
72182916SmariusARM_CORE("arm810",        arm810,	4,	             FL_MODE26 | FL_LDSCHED, fastmul)
73203833SmariusARM_CORE("strongarm",     strongarm,	4,	             FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
74182916SmariusARM_CORE("strongarm110",  strongarm110,	4,	             FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
75182916SmariusARM_CORE("strongarm1100", strongarm1100, 4,	             FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
76182916SmariusARM_CORE("strongarm1110", strongarm1110, 4,	             FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
77182916Smarius
78182916Smarius/* V4T Architecture Processors */
79182916SmariusARM_CORE("arm7tdmi",      arm7tdmi,	4T,	FL_CO_PROC          , fastmul)
80182916SmariusARM_CORE("arm7tdmi-s",    arm7tdmis,	4T,	FL_CO_PROC          , fastmul)
81182916SmariusARM_CORE("arm710t",       arm710t,	4T,	             FL_WBUF, fastmul)
82182916SmariusARM_CORE("arm720t",       arm720t,	4T,	             FL_WBUF, fastmul)
83182916SmariusARM_CORE("arm740t",       arm740t,	4T,	             FL_WBUF, fastmul)
84182916SmariusARM_CORE("arm9",          arm9,		4T,	                         FL_LDSCHED, fastmul)
85182916SmariusARM_CORE("arm9tdmi",      arm9tdmi,	4T,	                         FL_LDSCHED, fastmul)
86182916SmariusARM_CORE("arm920",        arm920,	4T,	                         FL_LDSCHED, fastmul)
87182916SmariusARM_CORE("arm920t",       arm920t,	4T,	                         FL_LDSCHED, fastmul)
88182916SmariusARM_CORE("arm922t",       arm922t,	4T,	                         FL_LDSCHED, fastmul)
89182916SmariusARM_CORE("arm940t",       arm940t,	4T,	                         FL_LDSCHED, fastmul)
90182916SmariusARM_CORE("ep9312",        ep9312,	4T,	                         FL_LDSCHED |             FL_CIRRUS, fastmul)
91182916Smarius
92182916Smarius/* V5T Architecture Processors */
93182916SmariusARM_CORE("arm10tdmi",     arm10tdmi,	5T,	                         FL_LDSCHED, fastmul)
94182916SmariusARM_CORE("arm1020t",      arm1020t,	5T,	                         FL_LDSCHED, fastmul)
95182916Smarius
96182916Smarius/* V5TE Architecture Processors */
97182916SmariusARM_CORE("arm9e",         arm9e,	5TE,	                         FL_LDSCHED, 9e)
98182916SmariusARM_CORE("arm946e-s",     arm946es,	5TE,	                         FL_LDSCHED, 9e)
99203833SmariusARM_CORE("arm966e-s",     arm966es,	5TE,	                         FL_LDSCHED, 9e)
100182916SmariusARM_CORE("arm968e-s",     arm968es,	5TE,	                         FL_LDSCHED, 9e)
101182916SmariusARM_CORE("arm10e",        arm10e,	5TE,				 FL_LDSCHED, fastmul)
102182916SmariusARM_CORE("arm1020e",      arm1020e,	5TE,				 FL_LDSCHED, fastmul)
103182916SmariusARM_CORE("arm1022e",      arm1022e,	5TE,				 FL_LDSCHED, fastmul)
104182916SmariusARM_CORE("xscale",        xscale,	5TE,	                         FL_LDSCHED | FL_STRONG | FL_XSCALE, xscale)
105182916SmariusARM_CORE("iwmmxt",        iwmmxt,	5TE,	                         FL_LDSCHED | FL_STRONG | FL_XSCALE | FL_IWMMXT, xscale)
106182916Smarius
107182916Smarius/* V5TEJ Architecture Processors */
108182916SmariusARM_CORE("arm926ej-s",    arm926ejs,	5TEJ,	                         FL_LDSCHED, 9e)
109182916SmariusARM_CORE("arm1026ej-s",   arm1026ejs,	5TEJ,	                         FL_LDSCHED, 9e)
110182916Smarius
111182916Smarius/* V6 Architecture Processors */
112182916SmariusARM_CORE("arm1136j-s",    arm1136js,	6J,	                         FL_LDSCHED, 9e)
113182916SmariusARM_CORE("arm1136jf-s",   arm1136jfs,	6J,	                         FL_LDSCHED | FL_VFPV2, 9e)
114182916SmariusARM_CORE("arm1176jz-s",	  arm1176jzs,	6ZK,				 FL_LDSCHED, 9e)
115182916SmariusARM_CORE("arm1176jzf-s",  arm1176jzfs,	6ZK,				 FL_LDSCHED | FL_VFPV2, 9e)
116182916SmariusARM_CORE("mpcorenovfp",	  mpcorenovfp,	6K,				 FL_LDSCHED, 9e)
11791617SjakeARM_CORE("mpcore",	  mpcore,	6K,				 FL_LDSCHED | FL_VFPV2, 9e)
118182916Smarius