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