@@ -449,14 +449,21 @@ def FeatureSMEI64 : SubtargetFeature<"sme-i64", "HasSMEI64", "true",
449
449
def FeatureAppleA7SysReg : SubtargetFeature<"apple-a7-sysreg", "HasAppleA7SysReg", "true",
450
450
"Apple A7 (the CPU formerly known as Cyclone)">;
451
451
452
+ def FeatureEL2VMSA : SubtargetFeature<"el2vmsa", "HasEL2VMSA", "true",
453
+ "Enable Exception Level 2 Virtual Memory System Architecture">;
454
+
455
+ def FeatureEL3 : SubtargetFeature<"el3", "HasEL3", "true",
456
+ "Enable Exception Level 3">;
452
457
453
458
//===----------------------------------------------------------------------===//
454
459
// Architectures.
455
460
//
461
+ def HasV8_0aOps : SubtargetFeature<"v8a", "HasV8_0aOps", "true",
462
+ "Support ARM v8.0a instructions", [FeatureEL2VMSA, FeatureEL3]>;
456
463
457
464
def HasV8_1aOps : SubtargetFeature<"v8.1a", "HasV8_1aOps", "true",
458
- "Support ARM v8.1a instructions", [FeatureCRC, FeatureLSE, FeatureRDM ,
459
- FeaturePAN, FeatureLOR, FeatureVH]>;
465
+ "Support ARM v8.1a instructions", [HasV8_0aOps, FeatureCRC, FeatureLSE ,
466
+ FeatureRDM, FeaturePAN, FeatureLOR, FeatureVH]>;
460
467
461
468
def HasV8_2aOps : SubtargetFeature<"v8.2a", "HasV8_2aOps", "true",
462
469
"Support ARM v8.2a instructions", [HasV8_1aOps, FeaturePsUAO,
@@ -898,8 +905,8 @@ def TuneTSV110 : SubtargetFeature<"tsv110", "ARMProcFamily", "TSV110",
898
905
899
906
900
907
def ProcessorFeatures {
901
- list<SubtargetFeature> A53 = [FeatureCRC, FeatureCrypto, FeatureFPARMv8 ,
902
- FeatureNEON, FeaturePerfMon];
908
+ list<SubtargetFeature> A53 = [HasV8_0aOps, FeatureCRC, FeatureCrypto ,
909
+ FeatureFPARMv8, FeatureNEON, FeaturePerfMon];
903
910
list<SubtargetFeature> A55 = [HasV8_2aOps, FeatureCrypto, FeatureFPARMv8,
904
911
FeatureNEON, FeatureFullFP16, FeatureDotProd,
905
912
FeatureRCPC, FeaturePerfMon];
@@ -934,11 +941,11 @@ def ProcessorFeatures {
934
941
FeatureSVE, FeatureComplxNum];
935
942
list<SubtargetFeature> Carmel = [HasV8_2aOps, FeatureNEON, FeatureCrypto,
936
943
FeatureFullFP16];
937
- list<SubtargetFeature> AppleA7 = [FeatureCrypto, FeatureFPARMv8, FeatureNEON ,
938
- FeaturePerfMon, FeatureAppleA7SysReg];
939
- list<SubtargetFeature> AppleA10 = [FeatureCrypto, FeatureFPARMv8, FeatureNEON ,
940
- FeaturePerfMon, FeatureCRC, FeatureRDM ,
941
- FeaturePAN, FeatureLOR, FeatureVH];
944
+ list<SubtargetFeature> AppleA7 = [HasV8_0aOps, FeatureCrypto, FeatureFPARMv8 ,
945
+ FeatureNEON, FeaturePerfMon, FeatureAppleA7SysReg];
946
+ list<SubtargetFeature> AppleA10 = [HasV8_0aOps, FeatureCrypto, FeatureFPARMv8 ,
947
+ FeatureNEON, FeaturePerfMon, FeatureCRC ,
948
+ FeatureRDM, FeaturePAN, FeatureLOR, FeatureVH];
942
949
list<SubtargetFeature> AppleA11 = [HasV8_2aOps, FeatureCrypto, FeatureFPARMv8,
943
950
FeatureNEON, FeaturePerfMon, FeatureFullFP16];
944
951
list<SubtargetFeature> AppleA12 = [HasV8_3aOps, FeatureCrypto, FeatureFPARMv8,
@@ -952,11 +959,13 @@ def ProcessorFeatures {
952
959
FeaturePredRes, FeatureCacheDeepPersist,
953
960
FeatureFullFP16, FeatureFP16FML, FeatureSHA3,
954
961
FeatureAltFPCmp];
955
- list<SubtargetFeature> ExynosM3 = [FeatureCRC, FeatureCrypto, FeaturePerfMon];
962
+ list<SubtargetFeature> ExynosM3 = [HasV8_0aOps, FeatureCRC, FeatureCrypto,
963
+ FeaturePerfMon];
956
964
list<SubtargetFeature> ExynosM4 = [HasV8_2aOps, FeatureCrypto, FeatureDotProd,
957
965
FeatureFullFP16, FeaturePerfMon];
958
- list<SubtargetFeature> Falkor = [FeatureCRC, FeatureCrypto, FeatureFPARMv8,
959
- FeatureNEON, FeaturePerfMon, FeatureRDM];
966
+ list<SubtargetFeature> Falkor = [HasV8_0aOps, FeatureCRC, FeatureCrypto,
967
+ FeatureFPARMv8, FeatureNEON, FeaturePerfMon,
968
+ FeatureRDM];
960
969
list<SubtargetFeature> NeoverseE1 = [HasV8_2aOps, FeatureCrypto, FeatureDotProd,
961
970
FeatureFPARMv8, FeatureFullFP16, FeatureNEON,
962
971
FeatureRCPC, FeatureSSBS];
@@ -973,8 +982,8 @@ def ProcessorFeatures {
973
982
FeatureSSBS, FeatureSVE];
974
983
list<SubtargetFeature> Saphira = [HasV8_4aOps, FeatureCrypto, FeatureFPARMv8,
975
984
FeatureNEON, FeatureSPE, FeaturePerfMon];
976
- list<SubtargetFeature> ThunderX = [FeatureCRC, FeatureCrypto, FeatureFPARMv8 ,
977
- FeaturePerfMon, FeatureNEON];
985
+ list<SubtargetFeature> ThunderX = [HasV8_0aOps, FeatureCRC, FeatureCrypto ,
986
+ FeatureFPARMv8, FeaturePerfMon, FeatureNEON];
978
987
list<SubtargetFeature> ThunderX2T99 = [HasV8_1aOps, FeatureCRC, FeatureCrypto,
979
988
FeatureFPARMv8, FeatureNEON, FeatureLSE];
980
989
list<SubtargetFeature> ThunderX3T110 = [HasV8_3aOps, FeatureCRC, FeatureCrypto,
0 commit comments