arm-cores.def revision 259065
1274714Sbr/* ARM CPU Cores
2274714Sbr   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
3274714Sbr   Written by CodeSourcery, LLC
4274714Sbr
5274714Sbr   This file is part of GCC.
6274714Sbr
7274714Sbr   GCC is free software; you can redistribute it and/or modify it
8274714Sbr   under the terms of the GNU General Public License as published by
9274714Sbr   the Free Software Foundation; either version 2, or (at your option)
10274714Sbr   any later version.
11274714Sbr
12274714Sbr   GCC is distributed in the hope that it will be useful, but
13274714Sbr   WITHOUT ANY WARRANTY; without even the implied warranty of
14274714Sbr   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15274714Sbr   General Public License for more details.
16274714Sbr
17274714Sbr   You should have received a copy of the GNU General Public License
18274714Sbr   along with GCC; see the file COPYING.  If not, write to the Free
19274714Sbr   Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
20274714Sbr   02110-1301, USA.  */
21274714Sbr
22274714Sbr/* Before using #include to read this file, define a macro:
23274714Sbr
24274714Sbr      ARM_CORE(CORE_NAME, CORE_IDENT, ARCH, FLAGS, COSTS)
25274714Sbr
26274714Sbr   The CORE_NAME is the name of the core, represented as a string constant.
27274714Sbr   The CORE_IDENT is the name of the core, represented as an identifier.
28274714Sbr   ARCH is the architecture revision implemented by the chip.
29274714Sbr   FLAGS are the bitwise-or of the traits that apply to that core.
30274714Sbr   This need not include flags implied by the architecture.
31274714Sbr   COSTS is the name of the rtx_costs routine to use.
32274714Sbr
33275647Sbr   If you update this table, you must update the "tune" attribute in
34275647Sbr   arm.md.
35275647Sbr   
36275647Sbr   Some tools assume no whitespace up to the first "," in each entry.  */
37275647Sbr
38/* V2/V2A Architecture Processors */
39ARM_CORE("arm2",   arm2,	2,	FL_CO_PROC | FL_MODE26, slowmul)
40ARM_CORE("arm250", arm250,	2,	FL_CO_PROC | FL_MODE26, slowmul)
41ARM_CORE("arm3",   arm3,	2,	FL_CO_PROC | FL_MODE26, slowmul)
42
43/* V3 Architecture Processors */
44ARM_CORE("arm6",          arm6,		3,	FL_CO_PROC | FL_MODE26, slowmul)
45ARM_CORE("arm60",         arm60,	3,	FL_CO_PROC | FL_MODE26, slowmul)
46ARM_CORE("arm600",        arm600,	3,	FL_CO_PROC | FL_MODE26 | FL_WBUF, slowmul)
47ARM_CORE("arm610",        arm610,	3,	             FL_MODE26 | FL_WBUF, slowmul)
48ARM_CORE("arm620",        arm620,	3,	FL_CO_PROC | FL_MODE26 | FL_WBUF, slowmul)
49ARM_CORE("arm7",          arm7,		3,	FL_CO_PROC | FL_MODE26, slowmul)
50ARM_CORE("arm7d",         arm7d,	3,	FL_CO_PROC | FL_MODE26, slowmul)
51ARM_CORE("arm7di",        arm7di,	3,	FL_CO_PROC | FL_MODE26, slowmul)
52ARM_CORE("arm70",         arm70,	3,	FL_CO_PROC | FL_MODE26, slowmul)
53ARM_CORE("arm700",        arm700,	3,	FL_CO_PROC | FL_MODE26 | FL_WBUF, slowmul)
54ARM_CORE("arm700i",       arm700i,	3,	FL_CO_PROC | FL_MODE26 | FL_WBUF, slowmul)
55ARM_CORE("arm710",        arm710,	3,	             FL_MODE26 | FL_WBUF, slowmul)
56ARM_CORE("arm720",        arm720,	3,	             FL_MODE26 | FL_WBUF, slowmul)
57ARM_CORE("arm710c",       arm710c,	3,	             FL_MODE26 | FL_WBUF, slowmul)
58ARM_CORE("arm7100",       arm7100,	3,	             FL_MODE26 | FL_WBUF, slowmul)
59ARM_CORE("arm7500",       arm7500,	3,	             FL_MODE26 | FL_WBUF, slowmul)
60/* Doesn't have an external co-proc, but does have embedded fpa.  */
61ARM_CORE("arm7500fe",     arm7500fe,	3,	FL_CO_PROC | FL_MODE26 | FL_WBUF, slowmul)
62
63/* V3M Architecture Processors */
64/* arm7m doesn't exist on its own, but only with D, ("and", and I), but
65   those don't alter the code, so arm7m is sometimes used.  */
66ARM_CORE("arm7m",         arm7m,	3M,	FL_CO_PROC | FL_MODE26, fastmul)
67ARM_CORE("arm7dm",        arm7dm,	3M,	FL_CO_PROC | FL_MODE26, fastmul)
68ARM_CORE("arm7dmi",       arm7dmi,	3M,	FL_CO_PROC | FL_MODE26, fastmul)
69
70/* V4 Architecture Processors */
71ARM_CORE("arm8",          arm8,		4,	             FL_MODE26 | FL_LDSCHED, fastmul)
72ARM_CORE("arm810",        arm810,	4,	             FL_MODE26 | FL_LDSCHED, fastmul)
73ARM_CORE("strongarm",     strongarm,	4,	             FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
74ARM_CORE("strongarm110",  strongarm110,	4,	             FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
75ARM_CORE("strongarm1100", strongarm1100, 4,	             FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
76ARM_CORE("strongarm1110", strongarm1110, 4,	             FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
77
78/* V4T Architecture Processors */
79ARM_CORE("arm7tdmi",      arm7tdmi,	4T,	FL_CO_PROC          , fastmul)
80ARM_CORE("arm7tdmi-s",    arm7tdmis,	4T,	FL_CO_PROC          , fastmul)
81ARM_CORE("arm710t",       arm710t,	4T,	             FL_WBUF, fastmul)
82ARM_CORE("arm720t",       arm720t,	4T,	             FL_WBUF, fastmul)
83ARM_CORE("arm740t",       arm740t,	4T,	             FL_WBUF, fastmul)
84ARM_CORE("arm9",          arm9,		4T,	                         FL_LDSCHED, fastmul)
85ARM_CORE("arm9tdmi",      arm9tdmi,	4T,	                         FL_LDSCHED, fastmul)
86ARM_CORE("arm920",        arm920,	4T,	                         FL_LDSCHED, fastmul)
87ARM_CORE("arm920t",       arm920t,	4T,	                         FL_LDSCHED, fastmul)
88ARM_CORE("arm922t",       arm922t,	4T,	                         FL_LDSCHED, fastmul)
89ARM_CORE("arm940t",       arm940t,	4T,	                         FL_LDSCHED, fastmul)
90ARM_CORE("ep9312",        ep9312,	4T,	                         FL_LDSCHED |             FL_CIRRUS, fastmul)
91
92/* V5T Architecture Processors */
93ARM_CORE("arm10tdmi",     arm10tdmi,	5T,	                         FL_LDSCHED, fastmul)
94ARM_CORE("arm1020t",      arm1020t,	5T,	                         FL_LDSCHED, fastmul)
95
96/* V5TE Architecture Processors */
97ARM_CORE("arm9e",         arm9e,	5TE,	                         FL_LDSCHED, 9e)
98ARM_CORE("arm946e-s",     arm946es,	5TE,	                         FL_LDSCHED, 9e)
99ARM_CORE("arm966e-s",     arm966es,	5TE,	                         FL_LDSCHED, 9e)
100ARM_CORE("arm968e-s",     arm968es,	5TE,	                         FL_LDSCHED, 9e)
101ARM_CORE("arm10e",        arm10e,	5TE,				 FL_LDSCHED, fastmul)
102ARM_CORE("arm1020e",      arm1020e,	5TE,				 FL_LDSCHED, fastmul)
103ARM_CORE("arm1022e",      arm1022e,	5TE,				 FL_LDSCHED, fastmul)
104ARM_CORE("xscale",        xscale,	5TE,	                         FL_LDSCHED | FL_STRONG | FL_XSCALE, xscale)
105ARM_CORE("iwmmxt",        iwmmxt,	5TE,	                         FL_LDSCHED | FL_STRONG | FL_XSCALE | FL_IWMMXT, xscale)
106
107/* V5TEJ Architecture Processors */
108ARM_CORE("arm926ej-s",    arm926ejs,	5TEJ,	                         FL_LDSCHED, 9e)
109ARM_CORE("arm1026ej-s",   arm1026ejs,	5TEJ,	                         FL_LDSCHED, 9e)
110
111/* V6 Architecture Processors */
112ARM_CORE("arm1136j-s",    arm1136js,	6J,	                         FL_LDSCHED, 9e)
113ARM_CORE("arm1136jf-s",   arm1136jfs,	6J,	                         FL_LDSCHED | FL_VFPV2, 9e)
114ARM_CORE("arm1176jz-s",	  arm1176jzs,	6ZK,				 FL_LDSCHED, 9e)
115ARM_CORE("arm1176jzf-s",  arm1176jzfs,	6ZK,				 FL_LDSCHED | FL_VFPV2, 9e)
116ARM_CORE("mpcorenovfp",	  mpcorenovfp,	6K,				 FL_LDSCHED, 9e)
117ARM_CORE("mpcore",	  mpcore,	6K,				 FL_LDSCHED | FL_VFPV2, 9e)
118