@@ -75,17 +75,12 @@ class FMVOnlyExtension<string FMVBit, string Name, string Deps, int Priority>
75
75
}
76
76
77
77
def : FMVOnlyExtension<"FEAT_DGH", "dgh", "", 260>;
78
- def : FMVOnlyExtension<"FEAT_DPB", "dpb", "+ccpp", 190>;
79
- def : FMVOnlyExtension<"FEAT_DPB2", "dpb2", "+ccpp,+ccdp", 200>;
80
78
def : FMVOnlyExtension<"FEAT_EBF16", "ebf16", "+bf16", 290>;
81
- def : FMVOnlyExtension<"FEAT_FLAGM2", "flagm2", "+flagm,+altnzcv", 30>;
82
- def : FMVOnlyExtension<"FEAT_FRINTTS", "frintts", "+fptoint", 250>;
83
79
def : FMVOnlyExtension<"FEAT_LS64_ACCDATA", "ls64_accdata", "+ls64", 540>;
84
80
def : FMVOnlyExtension<"FEAT_LS64_V", "ls64_v", "", 530>;
85
81
def : FMVOnlyExtension<"FEAT_MEMTAG2", "memtag2", "+mte", 450>;
86
82
def : FMVOnlyExtension<"FEAT_MEMTAG3", "memtag3", "+mte", 460>;
87
83
def : FMVOnlyExtension<"FEAT_PMULL", "pmull", "+aes,+fp-armv8,+neon", 160>;
88
- def : FMVOnlyExtension<"FEAT_RCPC2", "rcpc2", "+rcpc", 240>;
89
84
def : FMVOnlyExtension<"FEAT_RPRES", "rpres", "", 300>;
90
85
def : FMVOnlyExtension<"FEAT_SHA1", "sha1", "+fp-armv8,+neon", 120>;
91
86
def : FMVOnlyExtension<"FEAT_SSBS2", "ssbs2", "+ssbs", 500>;
@@ -216,8 +211,10 @@ def FeaturePAN_RWV : SubtargetFeature<
216
211
def FeaturePsUAO : SubtargetFeature< "uaops", "HasPsUAO", "true",
217
212
"Enable v8.2 UAO PState (FEAT_UAO)">;
218
213
219
- def FeatureCCPP : SubtargetFeature<"ccpp", "HasCCPP",
220
- "true", "Enable v8.2 data Cache Clean to Point of Persistence (FEAT_DPB)" >;
214
+ let ArchExtKindSpelling = "AEK_DPB", MArchName = "dpb" in
215
+ def FeatureCCPP : Extension<"ccpp", "CCPP",
216
+ "Enable v8.2 data Cache Clean to Point of Persistence (FEAT_DPB)", [],
217
+ "FEAT_DPB", "+ccpp", 190>;
221
218
222
219
def FeatureSVE : Extension<"sve", "SVE",
223
220
"Enable Scalable Vector Extension (SVE) instructions (FEAT_SVE)", [FeatureFullFP16],
@@ -491,9 +488,10 @@ def FeatureFlagM : Extension<
491
488
"FEAT_FLAGM", "+flagm", 20>;
492
489
493
490
// 8.4 RCPC enchancements: LDAPR & STLR instructions with Immediate Offset
494
- def FeatureRCPC_IMMO : SubtargetFeature<"rcpc-immo", "HasRCPC_IMMO", "true",
491
+ let ArchExtKindSpelling = "AEK_RCPC2", MArchName = "rcpc2" in
492
+ def FeatureRCPC_IMMO : Extension<"rcpc-immo", "RCPC_IMMO",
495
493
"Enable v8.4-A RCPC instructions with Immediate Offsets (FEAT_LRCPC2)",
496
- [FeatureRCPC]>;
494
+ [FeatureRCPC], "FEAT_RCPC2", "+rcpc", 240 >;
497
495
498
496
def FeatureNoNegativeImmediates : SubtargetFeature<"no-neg-immediates",
499
497
"NegativeImmediates", "false",
@@ -525,12 +523,16 @@ def FeatureAggressiveFMA :
525
523
"true",
526
524
"Enable Aggressive FMA for floating-point.">;
527
525
528
- def FeatureAltFPCmp : SubtargetFeature<"altnzcv", "HasAlternativeNZCV", "true",
529
- "Enable alternative NZCV format for floating point comparisons (FEAT_FlagM2)">;
526
+ let ArchExtKindSpelling = "AEK_FLAGM2", MArchName = "flagm2" in
527
+ def FeatureAltFPCmp : Extension<"altnzcv", "AlternativeNZCV",
528
+ "Enable alternative NZCV format for floating point comparisons (FEAT_FlagM2)",
529
+ [FeatureFlagM], "FEAT_FLAGM2", "+flagm,+altnzcv", 30>;
530
530
531
- def FeatureFRInt3264 : SubtargetFeature<"fptoint", "HasFRInt3264", "true",
531
+ let ArchExtKindSpelling = "AEK_FRINTTS", MArchName = "frintts" in
532
+ def FeatureFRInt3264 : Extension<"fptoint", "FRInt3264",
532
533
"Enable FRInt[32|64][Z|X] instructions that round a floating-point number to "
533
- "an integer (in FP format) forcing it to fit into a 32- or 64-bit int (FEAT_FRINTTS)" >;
534
+ "an integer (in FP format) forcing it to fit into a 32- or 64-bit int (FEAT_FRINTTS)",
535
+ [], "FEAT_FRINTTS", "+fptoint", 250>;
534
536
535
537
def FeatureSpecRestrict : SubtargetFeature<"specrestrict", "HasSpecRestrict",
536
538
"true", "Enable architectural speculation restriction (FEAT_CSV2_2)">;
@@ -547,8 +549,10 @@ def FeaturePredRes : Extension<"predres", "PredRes",
547
549
"Enable v8.5a execution and data prediction invalidation instructions (FEAT_SPECRES)", [],
548
550
"FEAT_PREDRES", "+predres", 480>;
549
551
550
- def FeatureCacheDeepPersist : SubtargetFeature<"ccdp", "CCDP", "true",
551
- "Enable v8.5 Cache Clean to Point of Deep Persistence (FEAT_DPB2)" >;
552
+ let ArchExtKindSpelling = "AEK_DPB2", MArchName = "dpb2" in
553
+ def FeatureCacheDeepPersist : Extension<"ccdp", "CCDP",
554
+ "Enable v8.5 Cache Clean to Point of Deep Persistence (FEAT_DPB2)",
555
+ [FeatureCCPP], "FEAT_DPB2", "+ccpp,+ccdp", 200>;
552
556
553
557
let ArchExtKindSpelling = "AEK_NONE" in
554
558
def FeatureBranchTargetId : Extension<"bti", "BTI",
0 commit comments