ArchV6T2, V7A, and V7M implies Thumb2; Archv7A implies NEON.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 11 Aug 2010 06:57:53 +0000 (06:57 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 11 Aug 2010 06:57:53 +0000 (06:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110796 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARM.td

index f0d7c33c381e7222439b365dc31ac414497f421a..bf95e99d8d724e80ed59e88973edec3ecd24f553 100644 (file)
@@ -71,13 +71,14 @@ def ArchV6M     : SubtargetFeature<"v6m", "ARMArchVersion", "V6M",
                                    "ARM v6m",
                                    [FeatureDB]>;
 def ArchV6T2    : SubtargetFeature<"v6t2", "ARMArchVersion", "V6T2",
-                                   "ARM v6t2">;
+                                   "ARM v6t2",
+                                   [FeatureThumb2]>;
 def ArchV7A     : SubtargetFeature<"v7a", "ARMArchVersion", "V7A",
                                    "ARM v7A",
-                                   [FeatureDB]>;
+                                   [FeatureThumb2, FeatureNEON, FeatureDB]>;
 def ArchV7M     : SubtargetFeature<"v7m", "ARMArchVersion", "V7M",
                                    "ARM v7M",
-                                   [FeatureDB]>;
+                                   [FeatureThumb2, FeatureDB]>;
 
 //===----------------------------------------------------------------------===//
 // ARM Processors supported.
@@ -139,21 +140,19 @@ def : Processor<"mpcore",           ARMV6Itineraries, [ArchV6, FeatureVFP2]>;
 def : Processor<"cortex-m0",        ARMV6Itineraries, [ArchV6M]>;
 
 // V6T2 Processors.
-def : Processor<"arm1156t2-s",     ARMV6Itineraries,
-                 [ArchV6T2, FeatureThumb2]>;
-def : Processor<"arm1156t2f-s",    ARMV6Itineraries,
-                 [ArchV6T2, FeatureThumb2, FeatureVFP2]>;
+def : Processor<"arm1156t2-s",      ARMV6Itineraries, [ArchV6T2]>;
+def : Processor<"arm1156t2f-s",     ARMV6Itineraries, [ArchV6T2, FeatureVFP2]>;
 
 // V7 Processors.
 def : Processor<"cortex-a8",        CortexA8Itineraries,
-                [ArchV7A, FeatureThumb2, FeatureNEON, FeatureHasSlowVMLx,
+                [ArchV7A, FeatureHasSlowVMLx,
                  FeatureSlowFPBrcc, FeatureNEONForFP, FeatureT2XtPk]>;
 def : Processor<"cortex-a9",        CortexA9Itineraries,
-                [ArchV7A, FeatureThumb2, FeatureNEON, FeatureT2XtPk]>;
+                [ArchV7A, FeatureT2XtPk]>;
 
 // V7M Processors.
-def : ProcNoItin<"cortex-m3",       [ArchV7M, FeatureThumb2, FeatureHWDiv]>;
-def : ProcNoItin<"cortex-m4",       [ArchV7M, FeatureThumb2, FeatureHWDiv]>;
+def : ProcNoItin<"cortex-m3",       [ArchV7M, FeatureHWDiv]>;
+def : ProcNoItin<"cortex-m4",       [ArchV7M, FeatureHWDiv]>;
 
 //===----------------------------------------------------------------------===//
 // Register File Description