[llvm-commits] [llvm-gcc-4.2] r110746 - in /llvm-gcc-4.2/trunk/gcc/config/arm: arm-cores.def arm.c arm.h

Jim Grosbach grosbach at apple.com
Tue Aug 10 16:33:20 PDT 2010


Author: grosbach
Date: Tue Aug 10 18:33:20 2010
New Revision: 110746

URL: http://llvm.org/viewvc/llvm-project?rev=110746&view=rev
Log:
pass long cortex-m* to the backend when it's selected

Modified:
    llvm-gcc-4.2/trunk/gcc/config/arm/arm-cores.def
    llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
    llvm-gcc-4.2/trunk/gcc/config/arm/arm.h

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm-cores.def
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm-cores.def?rev=110746&r1=110745&r2=110746&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm-cores.def (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm-cores.def Tue Aug 10 18:33:20 2010
@@ -126,4 +126,5 @@
 /* LLVM LOCAL end */
 ARM_CORE("cortex-r4",	  cortexr4,	7R,				 FL_LDSCHED, 9e)
 ARM_CORE("cortex-m3",	  cortexm3,	7M,				 FL_LDSCHED, 9e)
+ARM_CORE("cortex-m4",	  cortexm4,	7M,				 FL_LDSCHED, 9e)
 /* APPLE LOCAL end v7 support. Merge from mainline */

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm.c?rev=110746&r1=110745&r2=110746&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm.c Tue Aug 10 18:33:20 2010
@@ -683,6 +683,8 @@
 /* Nonzero if this chip supports the ARM 7A extensions.  */
 int arm_arch7a = 0;
 /* APPLE LOCAL end 6093388 -mfpu=neon default for v7a */
+/* Nonzero if this chip supports the ARM 7M extensions.  */
+int arm_arch7m= 0;
 
 /* APPLE LOCAL begin v7 support. Merge from mainline */
 /* Nonzero if instructions not present in the 'M' profile can be used.  */
@@ -846,6 +848,9 @@
   {"armv6t2", arm1156t2s, "6T2", FL_CO_PROC |             FL_FOR_ARCH6T2, NULL},
   {"armv7",   cortexa8,	  "7",	 FL_CO_PROC |		  FL_FOR_ARCH7, NULL},
   {"armv7a",  cortexa8,	  "7A",	 FL_CO_PROC |		  FL_FOR_ARCH7A, NULL},
+  {"armv7m",  cortexm3,	  "7M",	 FL_CO_PROC |		  FL_FOR_ARCH7M, NULL},
+  {"armv7m3", cortexm3,	  "7M",	 FL_CO_PROC |		  FL_FOR_ARCH7M, NULL},
+  {"armv7m4", cortexm4,  "7M",	 FL_CO_PROC |		  FL_FOR_ARCH7M, NULL},
 /* APPLE LOCAL begin v7 support. Merge from Codesourcery */
   {"armv7r",  cortexr4,	  "7R",	 FL_CO_PROC |		  FL_FOR_ARCH7R, NULL},
   {"armv7m",  cortexm3,	  "7M",	 FL_CO_PROC |		  FL_FOR_ARCH7M, NULL},
@@ -853,6 +858,8 @@
   {"armv7-a", cortexa8,	  "7A",	 FL_CO_PROC |		  FL_FOR_ARCH7A, NULL},
   {"armv7-r", cortexr4,	  "7R",	 FL_CO_PROC |		  FL_FOR_ARCH7R, NULL},
   {"armv7-m", cortexm3,	  "7M",	 FL_CO_PROC |		  FL_FOR_ARCH7M, NULL},
+  {"armv7-m3", cortexm3,  "7M",	 FL_CO_PROC |		  FL_FOR_ARCH7M, NULL},
+  {"armv7-m4", cortexm4,  "7M",	 FL_CO_PROC |		  FL_FOR_ARCH7M, NULL},
 /* APPLE LOCAL end v7 support. Merge from mainline */
   {"ep9312",  ep9312,     "4T",  FL_LDSCHED | FL_CIRRUS | FL_FOR_ARCH4, NULL},
   {"iwmmxt",  iwmmxt,     "5TE", FL_LDSCHED | FL_STRONG | FL_FOR_ARCH5TE | FL_XSCALE | FL_IWMMXT , NULL},
@@ -1561,6 +1568,7 @@
   /* APPLE LOCAL 6093388 -mfpu=neon default for v7a */
   arm_arch7a = (insn_flags & FL_FOR_ARCH7A) == FL_FOR_ARCH7A;
   /* APPLE LOCAL begin v7 support. Merge from mainline */
+  arm_arch7m = (insn_flags & FL_FOR_ARCH7M) == FL_FOR_ARCH7M;
   arm_arch_notm = (insn_flags & FL_NOTM) != 0;
   arm_arch_thumb2 = (insn_flags & FL_THUMB2) != 0;
   /* APPLE LOCAL end v7 support. Merge from mainline */
@@ -24464,7 +24472,7 @@
 void
 arm_darwin_subtarget_conditional_register_usage (void)
 {
-  if (!(arm_arch6 && !darwin_reserve_r9_on_v6) && !arm_arch7a)
+  if (!(arm_arch6 && !darwin_reserve_r9_on_v6) && !(arm_arch7a || arm_arch7m))
     fixed_regs[9]   = 1;
   call_used_regs[9] = 1;
 

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm.h?rev=110746&r1=110745&r2=110746&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm.h Tue Aug 10 18:33:20 2010
@@ -449,8 +449,8 @@
 /* Nonzero if this chip supports the ARM Architecture 6 extensions.  */
 extern int arm_arch6;
 
-/* LLVM LOCAL Declare arm_arch7a for use when setting the target triple.  */
-extern int arm_arch7a;
+/* LLVM LOCAL Declare arm_arch7m for use when setting the target triple.  */
+extern int arm_arch7m;
 
 /* APPLE LOCAL begin 6258536 Atomic builtins */
 /* Nonzero if this chip supports the ARM Architecture 7a extensions.  */
@@ -3497,6 +3497,7 @@
     case cortexa9:      F.setCPU("cortex-a9"); break; \
     case cortexr4:      F.setCPU("cortex-r4"); break; \
     case cortexm3:      F.setCPU("cortex-m3"); break; \
+    case cortexm4:      F.setCPU("cortex-m4"); break; \
     default:						\
       F.setCPU("arm7tdmi"); \
       break; \
@@ -3528,16 +3529,18 @@
   (TARGET_THUMB                                                            \
    ? (arm_arch7a                                                           \
       ? "thumbv7"                                                          \
-      : (arm_arch_thumb2                                                   \
-         ? "thumbv6t2"                                                     \
-         : (arm_arch6                                                      \
-            ? "thumbv6"                                                    \
-            : (arm_arch5e                                                  \
-               ? "thumbv5e"                                                \
-               : (arm_arch5                                                \
-                  ? "thumbv5"                                              \
-                  : (arm_arch4t                                            \
-                     ? "thumbv4t" : ""))))))                               \
+      : (arm_arch7m                                                        \
+         ? "thumbv7m"                                                      \
+         : (arm_arch_thumb2                                                \
+           ? "thumbv6t2"                                                   \
+           : (arm_arch6                                                    \
+              ? "thumbv6"                                                  \
+              : (arm_arch5e                                                \
+                 ? "thumbv5e"                                              \
+                 : (arm_arch5                                              \
+                    ? "thumbv5"                                            \
+                    : (arm_arch4t                                          \
+                       ? "thumbv4t" : "")))))))                            \
    : (arm_arch7a                                                           \
       ? "armv7"                                                            \
       : (arm_arch_thumb2                                                   \





More information about the llvm-commits mailing list