aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2003-10-20 06:27:32 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2003-10-20 06:27:32 +0000
commit81f9037c86a32ea5123a5aed141dec59bfda2f5e (patch)
tree98f15b28c3d1a9b72edaeea9c16d9b2171298db7
parent5a13d72876d36de81e44f01d7f292d2d70470c28 (diff)
downloadgcc-81f9037c86a32ea5123a5aed141dec59bfda2f5e.zip
gcc-81f9037c86a32ea5123a5aed141dec59bfda2f5e.tar.gz
gcc-81f9037c86a32ea5123a5aed141dec59bfda2f5e.tar.bz2
config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js, arm1136jfs, and armv6j.
* config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js, arm1136jfs, and armv6j. * config/arm/arm.c (FL_ARCH6J): New macro. (FL_VFPV2): Likewise. (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js, and arm1136jfs. (all_architectures): Add entry for armv6j. (arm_override_options): Add entries for arm926ejs, arm1026ejs, arm1136js, and arm1136jfs. * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro. (TARGET_CPU_arm1026ej_s): Likewise. (TARGET_CPU_arm1136j_s): Likewise. (TARGET_CPU_arm1136jf_s): Likewise. * doc/invoke.texi: Document new ARM cores and architecture variants. From-SVN: r72694
-rw-r--r--gcc/ChangeLog18
-rw-r--r--gcc/config.gcc6
-rw-r--r--gcc/config/arm/arm.c16
-rw-r--r--gcc/config/arm/arm.h4
4 files changed, 40 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5dc8b68..4ebb882 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,21 @@
+2003-10-19 Mark Mitchell <mark@codesourcery.com>
+
+ * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js,
+ arm1136jfs, and armv6j.
+ * config/arm/arm.c (FL_ARCH6J): New macro.
+ (FL_VFPV2): Likewise.
+ (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js,
+ and arm1136jfs.
+ (all_architectures): Add entry for armv6j.
+ (arm_override_options): Add entries for arm926ejs, arm1026ejs,
+ arm1136js, and arm1136jfs.
+ * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro.
+ (TARGET_CPU_arm1026ej_s): Likewise.
+ (TARGET_CPU_arm1136j_s): Likewise.
+ (TARGET_CPU_arm1136jf_s): Likewise.
+ * doc/invoke.texi: Document new ARM cores and architecture
+ variants.
+
2003-10-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
* Makefile.in (toplev.o): Add value-prof.h dependency.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index ee4a2cc..7e4c820 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -2330,9 +2330,9 @@ fi
| arm7m | arm7dm | arm7dmi | arm[79]tdmi \
| arm70 | arm700i | arm710t | arm720 \
| arm720t | arm740t | arm710c | arm920 \
- | arm920t | arm940t | arm9e | arm10tdmi \
+ | arm920t | arm926ejs | arm940t | arm9e | arm10tdmi \
| arm7100 | arm7500 | arm7500fe | arm810 \
- | arm1020t \
+ | arm1026ejs | arm1020t | arm1136js | arm1136jfs \
| xscale | iwmmxt \
| ep9312 \
| strongarm | strongarm110 | strongarm11[01]0)
@@ -2348,7 +2348,7 @@ fi
case "$with_arch" in
"" \
| armv[2345] | armv2a | armv3m | armv4t | armv5t \
- | armv5te | ep9312)
+ | armv5te | armv6j | ep9312)
# OK
;;
*)
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index dbdde4a..42f4f17 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -281,6 +281,9 @@ int arm_structure_size_boundary = DEFAULT_STRUCTURE_SIZE_BOUNDARY;
#define FL_XSCALE (1 << 10) /* XScale */
#define FL_CIRRUS (1 << 11) /* Cirrus/DSP. */
#define FL_IWMMXT (1 << 29) /* XScale v2 or "Intel Wireless MMX technology". */
+#define FL_ARCH6J (1 << 12) /* Architecture rel 6. Adds
+ media instructions. */
+#define FL_VFPV2 (1 << 13) /* Vector Floating Point V2. */
/* The bits in this mask specify which
instructions we are allowed to generate. */
@@ -406,6 +409,7 @@ static const struct processors all_cores[] =
{"arm7500", FL_MODE26 | FL_MODE32 },
/* Doesn't have an external co-proc, but does have embedded fpa. */
{"arm7500fe", FL_CO_PROC | FL_MODE26 | FL_MODE32 },
+ /* V4 Architecture Processors */
{"arm7tdmi", FL_CO_PROC | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB },
{"arm710t", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB },
{"arm720t", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB },
@@ -423,11 +427,16 @@ static const struct processors all_cores[] =
{"strongarm110", FL_MODE26 | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_LDSCHED | FL_STRONG },
{"strongarm1100", FL_MODE26 | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_LDSCHED | FL_STRONG },
{"strongarm1110", FL_MODE26 | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_LDSCHED | FL_STRONG },
+ /* V5 Architecture Processors */
{"arm10tdmi", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED | FL_ARCH5 },
{"arm1020t", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED | FL_ARCH5 },
+ {"arm926ejs", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 | FL_ARCH5E },
+ {"arm1026ejs", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 | FL_ARCH5E },
{"xscale", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED | FL_STRONG | FL_ARCH5 | FL_ARCH5E | FL_XSCALE },
{"iwmmxt", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED | FL_STRONG | FL_ARCH5 | FL_ARCH5E | FL_XSCALE | FL_IWMMXT },
-
+ /* V6 Architecture Processors */
+ {"arm1136js", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 | FL_ARCH5E | FL_ARCH6J },
+ {"arm1136jfs", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 | FL_ARCH5E | FL_ARCH6J | FL_VFPV2 },
{NULL, 0}
};
@@ -446,6 +455,7 @@ static const struct processors all_architectures[] =
{ "armv5", FL_CO_PROC | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 },
{ "armv5t", FL_CO_PROC | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 },
{ "armv5te", FL_CO_PROC | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 | FL_ARCH5E },
+ { "armv6j", FL_CO_PROC | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 | FL_ARCH5E | FL_ARCH6J },
{ "ep9312", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_LDSCHED | FL_CIRRUS },
{"iwmmxt", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED | FL_STRONG | FL_ARCH5 | FL_ARCH5E | FL_XSCALE | FL_IWMMXT },
{ NULL, 0 }
@@ -546,6 +556,10 @@ arm_override_options (void)
{ TARGET_CPU_xscale, "xscale" },
{ TARGET_CPU_ep9312, "ep9312" },
{ TARGET_CPU_iwmmxt, "iwmmxt" },
+ { TARGET_CPU_arm926ej_s, "arm926ej-s" },
+ { TARGET_CPU_arm1026ej_s, "arm1026ej-s" },
+ { TARGET_CPU_arm1136j_s, "arm1136j_s" },
+ { TARGET_CPU_arm1136jf_s, "arm1136jf_s" },
{ TARGET_CPU_generic, "arm" },
{ 0, 0 }
};
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 7f64d87..f757ead 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -98,6 +98,10 @@
#define TARGET_CPU_xscale 0x0100
#define TARGET_CPU_ep9312 0x0200
#define TARGET_CPU_iwmmxt 0x0400
+#define TARGET_CPU_arm926ej_s 0x0800
+#define TARGET_CPU_arm1026ej_s 0x1000
+#define TARGET_CPU_arm1136j_s 0x2000
+#define TARGET_CPU_arm1136jf_s 0x4000
/* Configure didn't specify. */
#define TARGET_CPU_generic 0x8000