@@ -74,7 +74,7 @@ def Feature64BitRegs : SubtargetFeature<"64bitregs","Use64BitRegs", "true",
7474
7575// Specify if we should store and manipulate i1 values in the individual
7676// condition register bits.
77- def FeatureCRBits : SubtargetFeature<"crbits", "UseCRBits ", "true",
77+ def FeatureCRBits : SubtargetFeature<"crbits", "HasCRBits ", "true",
7878 "Use condition-register bits individually">;
7979def FeatureFPU : SubtargetFeature<"fpu","HasFPU","true",
8080 "Enable classic FPU instructions",
@@ -390,6 +390,7 @@ def ProcessorFeatures {
390390 FeatureFPCVT,
391391 FeatureISEL,
392392 FeaturePOPCNTD,
393+ FeatureCRBits,
393394 FeatureCMPB,
394395 FeatureLDBRX,
395396 Feature64Bit,
@@ -577,79 +578,82 @@ include "GISel/PPCRegisterBanks.td"
577578//
578579
579580def : Processor<"generic", G3Itineraries, [Directive32, FeatureHardFloat,
580- FeatureMFTB]>;
581+ FeatureMFTB, FeatureCRBits ]>;
581582def : ProcessorModel<"440", PPC440Model, [Directive440, FeatureISEL,
582583 FeatureFRES, FeatureFRSQRTE,
583584 FeatureICBT, FeatureBookE,
584- FeatureMSYNC, FeatureMFTB]>;
585+ FeatureMSYNC, FeatureMFTB,
586+ FeatureCRBits]>;
585587def : ProcessorModel<"450", PPC440Model, [Directive440, FeatureISEL,
586588 FeatureFRES, FeatureFRSQRTE,
587589 FeatureICBT, FeatureBookE,
588- FeatureMSYNC, FeatureMFTB]>;
589- def : Processor<"601", G3Itineraries, [Directive601, FeatureFPU]>;
590+ FeatureMSYNC, FeatureMFTB,
591+ FeatureCRBits]>;
592+ def : Processor<"601", G3Itineraries, [Directive601, FeatureFPU,
593+ FeatureCRBits]>;
590594def : Processor<"602", G3Itineraries, [Directive602, FeatureFPU,
591- FeatureMFTB]>;
592- def : Processor<"603", G3Itineraries, [Directive603,
593- FeatureFRES, FeatureFRSQRTE ,
594- FeatureMFTB ]>;
595- def : Processor<"603e", G3Itineraries, [Directive603,
596- FeatureFRES, FeatureFRSQRTE ,
597- FeatureMFTB ]>;
595+ FeatureMFTB, FeatureCRBits ]>;
596+ def : Processor<"603", G3Itineraries, [Directive603, FeatureFRES,
597+ FeatureFRSQRTE, FeatureMFTB ,
598+ FeatureCRBits ]>;
599+ def : Processor<"603e", G3Itineraries, [Directive603, FeatureFRES,
600+ FeatureFRSQRTE, FeatureMFTB ,
601+ FeatureCRBits ]>;
598602def : Processor<"603ev", G3Itineraries, [Directive603,
599603 FeatureFRES, FeatureFRSQRTE,
600- FeatureMFTB]>;
604+ FeatureMFTB, FeatureCRBits ]>;
601605def : Processor<"604", G3Itineraries, [Directive604,
602606 FeatureFRES, FeatureFRSQRTE,
603- FeatureMFTB]>;
607+ FeatureMFTB, FeatureCRBits ]>;
604608def : Processor<"604e", G3Itineraries, [Directive604,
605609 FeatureFRES, FeatureFRSQRTE,
606- FeatureMFTB]>;
610+ FeatureMFTB, FeatureCRBits ]>;
607611def : Processor<"620", G3Itineraries, [Directive620,
608612 FeatureFRES, FeatureFRSQRTE,
609- FeatureMFTB]>;
613+ FeatureMFTB, FeatureCRBits ]>;
610614def : Processor<"750", G4Itineraries, [Directive750,
611615 FeatureFRES, FeatureFRSQRTE,
612- FeatureMFTB]>;
616+ FeatureMFTB, FeatureCRBits ]>;
613617def : Processor<"g3", G3Itineraries, [Directive750,
614618 FeatureFRES, FeatureFRSQRTE,
615- FeatureMFTB]>;
619+ FeatureMFTB, FeatureCRBits ]>;
616620def : Processor<"7400", G4Itineraries, [Directive7400, FeatureAltivec,
617621 FeatureFRES, FeatureFRSQRTE,
618- FeatureMFTB]>;
622+ FeatureMFTB, FeatureCRBits ]>;
619623def : Processor<"g4", G4Itineraries, [Directive7400, FeatureAltivec,
620624 FeatureFRES, FeatureFRSQRTE,
621- FeatureMFTB]>;
625+ FeatureMFTB, FeatureCRBits ]>;
622626def : Processor<"7450", G4PlusItineraries, [Directive7400, FeatureAltivec,
623627 FeatureFRES, FeatureFRSQRTE,
624- FeatureMFTB]>;
628+ FeatureMFTB, FeatureCRBits ]>;
625629def : Processor<"g4+", G4PlusItineraries, [Directive7400, FeatureAltivec,
626630 FeatureFRES, FeatureFRSQRTE,
627- FeatureMFTB]>;
631+ FeatureMFTB, FeatureCRBits ]>;
628632
629633def : ProcessorModel<"970", G5Model,
630634 [Directive970, FeatureAltivec,
631635 FeatureMFOCRF, FeatureFSqrt,
632636 FeatureFRES, FeatureFRSQRTE, FeatureSTFIWX,
633637 Feature64Bit /*, Feature64BitRegs */,
634- FeatureMFTB]>;
638+ FeatureMFTB, FeatureCRBits ]>;
635639def : ProcessorModel<"g5", G5Model,
636640 [Directive970, FeatureAltivec,
637641 FeatureMFOCRF, FeatureFSqrt, FeatureSTFIWX,
638642 FeatureFRES, FeatureFRSQRTE,
639643 Feature64Bit /*, Feature64BitRegs */,
640- FeatureMFTB, DeprecatedDST]>;
644+ FeatureMFTB, DeprecatedDST, FeatureCRBits ]>;
641645def : ProcessorModel<"e500", PPCE500Model,
642- [DirectiveE500,
643- FeatureICBT, FeatureBookE ,
644- FeatureISEL, FeatureMFTB, FeatureMSYNC, FeatureSPE ]>;
646+ [DirectiveE500, FeatureICBT, FeatureBookE,
647+ FeatureISEL, FeatureMFTB, FeatureMSYNC ,
648+ FeatureSPE, FeatureCRBits ]>;
645649def : ProcessorModel<"e500mc", PPCE500mcModel,
646650 [DirectiveE500mc,
647651 FeatureSTFIWX, FeatureICBT, FeatureBookE,
648- FeatureISEL, FeatureMFTB]>;
652+ FeatureISEL, FeatureMFTB, FeatureCRBits ]>;
649653def : ProcessorModel<"e5500", PPCE5500Model,
650654 [DirectiveE5500, FeatureMFOCRF, Feature64Bit,
651655 FeatureSTFIWX, FeatureICBT, FeatureBookE,
652- FeatureISEL, FeatureMFTB]>;
656+ FeatureISEL, FeatureMFTB, FeatureCRBits ]>;
653657def : ProcessorModel<"a2", PPCA2Model,
654658 [DirectiveA2, FeatureICBT, FeatureBookE, FeatureMFOCRF,
655659 FeatureFCPSGN, FeatureFSqrt, FeatureFRE, FeatureFRES,
@@ -658,41 +662,41 @@ def : ProcessorModel<"a2", PPCA2Model,
658662 FeatureFPRND, FeatureFPCVT, FeatureISEL,
659663 FeatureSlowPOPCNTD, FeatureCMPB, FeatureLDBRX,
660664 Feature64Bit /*, Feature64BitRegs */, FeatureMFTB,
661- FeatureISA2_06]>;
665+ FeatureISA2_06, FeatureCRBits ]>;
662666def : ProcessorModel<"pwr3", G5Model,
663667 [DirectivePwr3, FeatureAltivec,
664668 FeatureFRES, FeatureFRSQRTE, FeatureMFOCRF,
665- FeatureSTFIWX, Feature64Bit]>;
669+ FeatureSTFIWX, Feature64Bit, FeatureCRBits ]>;
666670def : ProcessorModel<"pwr4", G5Model,
667671 [DirectivePwr4, FeatureAltivec, FeatureMFOCRF,
668672 FeatureFSqrt, FeatureFRES, FeatureFRSQRTE,
669- FeatureSTFIWX, Feature64Bit, FeatureMFTB]>;
673+ FeatureSTFIWX, Feature64Bit, FeatureMFTB, FeatureCRBits ]>;
670674def : ProcessorModel<"pwr5", G5Model,
671675 [DirectivePwr5, FeatureAltivec, FeatureMFOCRF,
672676 FeatureFSqrt, FeatureFRE, FeatureFRES,
673677 FeatureFRSQRTE, FeatureFRSQRTES,
674678 FeatureSTFIWX, Feature64Bit,
675- FeatureMFTB, DeprecatedDST]>;
679+ FeatureMFTB, DeprecatedDST, FeatureCRBits ]>;
676680def : ProcessorModel<"pwr5x", G5Model,
677681 [DirectivePwr5x, FeatureAltivec, FeatureMFOCRF,
678682 FeatureFSqrt, FeatureFRE, FeatureFRES,
679683 FeatureFRSQRTE, FeatureFRSQRTES,
680684 FeatureSTFIWX, FeatureFPRND, Feature64Bit,
681- FeatureMFTB, DeprecatedDST]>;
685+ FeatureMFTB, DeprecatedDST, FeatureCRBits ]>;
682686def : ProcessorModel<"pwr6", G5Model,
683687 [DirectivePwr6, FeatureAltivec,
684688 FeatureMFOCRF, FeatureFCPSGN, FeatureFSqrt, FeatureFRE,
685689 FeatureFRES, FeatureFRSQRTE, FeatureFRSQRTES,
686690 FeatureRecipPrec, FeatureSTFIWX, FeatureLFIWAX, FeatureCMPB,
687691 FeatureFPRND, Feature64Bit /*, Feature64BitRegs */,
688- FeatureMFTB, DeprecatedDST]>;
692+ FeatureMFTB, DeprecatedDST, FeatureCRBits ]>;
689693def : ProcessorModel<"pwr6x", G5Model,
690694 [DirectivePwr5x, FeatureAltivec, FeatureMFOCRF,
691695 FeatureFCPSGN, FeatureFSqrt, FeatureFRE, FeatureFRES,
692696 FeatureFRSQRTE, FeatureFRSQRTES, FeatureRecipPrec,
693697 FeatureSTFIWX, FeatureLFIWAX, FeatureCMPB,
694698 FeatureFPRND, Feature64Bit,
695- FeatureMFTB, DeprecatedDST]>;
699+ FeatureMFTB, DeprecatedDST, FeatureCRBits ]>;
696700def : ProcessorModel<"pwr7", P7Model, ProcessorFeatures.P7Features>;
697701def : ProcessorModel<"pwr8", P8Model, ProcessorFeatures.P8Features>;
698702def : ProcessorModel<"pwr9", P9Model, ProcessorFeatures.P9Features>;
@@ -702,15 +706,15 @@ def : ProcessorModel<"pwr11", P10Model, ProcessorFeatures.P11Features>;
702706def : ProcessorModel<"future", NoSchedModel,
703707 ProcessorFeatures.FutureFeatures>;
704708def : Processor<"ppc", G3Itineraries, [Directive32, FeatureHardFloat,
705- FeatureMFTB]>;
709+ FeatureMFTB, FeatureCRBits ]>;
706710def : Processor<"ppc32", G3Itineraries, [Directive32, FeatureHardFloat,
707- FeatureMFTB]>;
711+ FeatureMFTB, FeatureCRBits ]>;
708712def : ProcessorModel<"ppc64", G5Model,
709713 [Directive64, FeatureAltivec,
710714 FeatureMFOCRF, FeatureFSqrt, FeatureFRES,
711715 FeatureFRSQRTE, FeatureSTFIWX,
712716 Feature64Bit /*, Feature64BitRegs */,
713- FeatureMFTB]>;
717+ FeatureMFTB, FeatureCRBits ]>;
714718def : ProcessorModel<"ppc64le", P8Model, ProcessorFeatures.P8Features>;
715719
716720//===----------------------------------------------------------------------===//
0 commit comments