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