113 lines
5.2 KiB
Modula-2
113 lines
5.2 KiB
Modula-2
/* ARM CPU Cores
|
|
Copyright (C) 2003 Free Software Foundation, Inc.
|
|
Written by CodeSourcery, LLC
|
|
|
|
This file is part of GCC.
|
|
|
|
GCC is free software; you can redistribute it and/or modify it
|
|
under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2, or (at your option)
|
|
any later version.
|
|
|
|
GCC is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with GCC; see the file COPYING. If not, write to the Free
|
|
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
|
02111-1307, USA. */
|
|
|
|
/* Before using #include to read this file, define a macro:
|
|
|
|
ARM_CORE(CORE_NAME, ARCH, FLAGS, COSTS)
|
|
|
|
The CORE_NAME is the name of the core, represented as an identifier
|
|
rather than a string constant.
|
|
ARCH is the architecture revision implemeted by the chip.
|
|
FLAGS are the bitwise-or of the traits that apply to that core.
|
|
This need not include flags implied by the architecture.
|
|
COSTS is the name of the rtx_costs routine to use.
|
|
|
|
If you update this table, you must update the "tune" attribute in
|
|
arm.md.
|
|
|
|
Some tools assume no whitespace up to the first "," in each entry. */
|
|
|
|
/* V2/V2A Architecture Processors */
|
|
ARM_CORE(arm2, 2, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm250, 2, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm3, 2, FL_CO_PROC | FL_MODE26, slowmul)
|
|
|
|
/* V3 Architecture Processors */
|
|
ARM_CORE(arm6, 3, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm60, 3, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm600, 3, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm610, 3, FL_MODE26, slowmul)
|
|
ARM_CORE(arm620, 3, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm7, 3, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm7d, 3, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm7di, 3, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm70, 3, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm700, 3, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm700i, 3, FL_CO_PROC | FL_MODE26, slowmul)
|
|
ARM_CORE(arm710, 3, FL_MODE26, slowmul)
|
|
ARM_CORE(arm720, 3, FL_MODE26, slowmul)
|
|
ARM_CORE(arm710c, 3, FL_MODE26, slowmul)
|
|
ARM_CORE(arm7100, 3, FL_MODE26, slowmul)
|
|
ARM_CORE(arm7500, 3, FL_MODE26, slowmul)
|
|
/* Doesn't have an external co-proc, but does have embedded fpa. */
|
|
ARM_CORE(arm7500fe, 3, FL_CO_PROC | FL_MODE26, slowmul)
|
|
|
|
/* V3M Architecture Processors */
|
|
/* arm7m doesn't exist on its own, but only with D, (and I), but
|
|
those don't alter the code, so arm7m is sometimes used. */
|
|
ARM_CORE(arm7m, 3M, FL_CO_PROC | FL_MODE26, fastmul)
|
|
ARM_CORE(arm7dm, 3M, FL_CO_PROC | FL_MODE26, fastmul)
|
|
ARM_CORE(arm7dmi, 3M, FL_CO_PROC | FL_MODE26, fastmul)
|
|
|
|
/* V4 Architecture Processors */
|
|
ARM_CORE(arm8, 4, FL_MODE26 | FL_LDSCHED, fastmul)
|
|
ARM_CORE(arm810, 4, FL_MODE26 | FL_LDSCHED, fastmul)
|
|
ARM_CORE(strongarm, 4, FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
|
|
ARM_CORE(strongarm110, 4, FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
|
|
ARM_CORE(strongarm1100, 4, FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
|
|
ARM_CORE(strongarm1110, 4, FL_MODE26 | FL_LDSCHED | FL_STRONG, fastmul)
|
|
|
|
/* V4T Architecture Processors */
|
|
ARM_CORE(arm7tdmi, 4T, FL_CO_PROC , fastmul)
|
|
ARM_CORE(arm710t, 4T, 0 , fastmul)
|
|
ARM_CORE(arm720t, 4T, 0 , fastmul)
|
|
ARM_CORE(arm740t, 4T, 0 , fastmul)
|
|
ARM_CORE(arm9, 4T, FL_LDSCHED, fastmul)
|
|
ARM_CORE(arm9tdmi, 4T, FL_LDSCHED, fastmul)
|
|
ARM_CORE(arm920, 4T, FL_LDSCHED, fastmul)
|
|
ARM_CORE(arm920t, 4T, FL_LDSCHED, fastmul)
|
|
ARM_CORE(arm922t, 4T, FL_LDSCHED, fastmul)
|
|
ARM_CORE(arm940t, 4T, FL_LDSCHED, fastmul)
|
|
ARM_CORE(ep9312, 4T, FL_LDSCHED | FL_CIRRUS, fastmul)
|
|
|
|
/* V5T Architecture Processors */
|
|
ARM_CORE(arm10tdmi, 5T, FL_LDSCHED, fastmul)
|
|
ARM_CORE(arm1020t, 5T, FL_LDSCHED, fastmul)
|
|
|
|
/* V5TE Architecture Processors */
|
|
ARM_CORE(arm9e, 5TE, FL_LDSCHED, 9e)
|
|
ARM_CORE(arm946es, 5TE, FL_LDSCHED, 9e)
|
|
ARM_CORE(arm966es, 5TE, FL_LDSCHED, 9e)
|
|
ARM_CORE(arm968es, 5TE, FL_LDSCHED, 9e)
|
|
ARM_CORE(arm10e, 5TE, FL_LDSCHED, fastmul)
|
|
ARM_CORE(arm1020e, 5TE, FL_LDSCHED, fastmul)
|
|
ARM_CORE(arm1022e, 5TE, FL_LDSCHED, fastmul)
|
|
ARM_CORE(xscale, 5TE, FL_LDSCHED | FL_STRONG | FL_XSCALE, xscale)
|
|
ARM_CORE(iwmmxt, 5TE, FL_LDSCHED | FL_STRONG | FL_XSCALE | FL_IWMMXT, xscale)
|
|
|
|
/* V5TEJ Architecture Processors */
|
|
ARM_CORE(arm926ejs, 5TEJ, 0, 9e)
|
|
ARM_CORE(arm1026ejs, 5TEJ, 0, 9e)
|
|
|
|
/* V6 Architecture Processors */
|
|
ARM_CORE(arm1136js, 6J, 0, 9e)
|
|
ARM_CORE(arm1136jfs, 6J, FL_VFPV2, 9e)
|