* config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js,
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Oct 2003 06:27:32 +0000 (06:27 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Oct 2003 06:27:32 +0000 (06:27 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72694 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config.gcc
gcc/config/arm/arm.c
gcc/config/arm/arm.h

index 5dc8b68..4ebb882 100644 (file)
@@ -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.
index ee4a2cc..7e4c820 100644 (file)
@@ -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
                        ;;
                *)
index dbdde4a..42f4f17 100644 (file)
@@ -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 }
       };
index 7f64d87..f757ead 100644 (file)
 #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