mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Rename the PPC target feature gpul to mfocrf.
The PPC target feature gpul (IsGigaProcessor) was only used for one thing: To enable the generation of the MFOCRF instruction. Furthermore, this instruction is available on other PPC cores outside of the G5 line. This feature now corresponds to the HasMFOCRF flag. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158323 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9770be91de
commit
bd5cafd9bb
@ -44,8 +44,8 @@ def Feature64BitRegs : SubtargetFeature<"64bitregs","Use64BitRegs", "true",
|
||||
"Enable 64-bit registers usage for ppc32 [beta]">;
|
||||
def FeatureAltivec : SubtargetFeature<"altivec","HasAltivec", "true",
|
||||
"Enable Altivec instructions">;
|
||||
def FeatureGPUL : SubtargetFeature<"gpul","IsGigaProcessor", "true",
|
||||
"Enable GPUL instructions">;
|
||||
def FeatureMFOCRF : SubtargetFeature<"mfocrf","HasMFOCRF", "true",
|
||||
"Enable the MFOCRF instruction">;
|
||||
def FeatureFSqrt : SubtargetFeature<"fsqrt","HasFSQRT", "true",
|
||||
"Enable the fsqrt instruction">;
|
||||
def FeatureSTFIWX : SubtargetFeature<"stfiwx","HasSTFIWX", "true",
|
||||
@ -84,11 +84,11 @@ def : Processor<"g4+", G4PlusItineraries, [Directive750, FeatureAltivec]>;
|
||||
def : Processor<"750", G4Itineraries, [Directive750, FeatureAltivec]>;
|
||||
def : Processor<"970", G5Itineraries,
|
||||
[Directive970, FeatureAltivec,
|
||||
FeatureGPUL, FeatureFSqrt, FeatureSTFIWX,
|
||||
FeatureMFOCRF, FeatureFSqrt, FeatureSTFIWX,
|
||||
Feature64Bit /*, Feature64BitRegs */]>;
|
||||
def : Processor<"g5", G5Itineraries,
|
||||
[Directive970, FeatureAltivec,
|
||||
FeatureGPUL, FeatureFSqrt, FeatureSTFIWX,
|
||||
FeatureMFOCRF, FeatureFSqrt, FeatureSTFIWX,
|
||||
Feature64Bit /*, Feature64BitRegs */]>;
|
||||
def : Processor<"a2", PPCA2Itineraries, [DirectiveA2, FeatureBookE,
|
||||
FeatureFSqrt, FeatureSTFIWX,
|
||||
@ -96,16 +96,16 @@ def : Processor<"a2", PPCA2Itineraries, [DirectiveA2, FeatureBookE,
|
||||
/*, Feature64BitRegs */]>;
|
||||
def : Processor<"pwr6", G5Itineraries,
|
||||
[DirectivePwr6, FeatureAltivec,
|
||||
FeatureGPUL, FeatureFSqrt, FeatureSTFIWX,
|
||||
FeatureMFOCRF, FeatureFSqrt, FeatureSTFIWX,
|
||||
Feature64Bit /*, Feature64BitRegs */]>;
|
||||
def : Processor<"pwr7", G5Itineraries,
|
||||
[DirectivePwr7, FeatureAltivec,
|
||||
FeatureGPUL, FeatureFSqrt, FeatureSTFIWX,
|
||||
FeatureMFOCRF, FeatureFSqrt, FeatureSTFIWX,
|
||||
Feature64Bit /*, Feature64BitRegs */]>;
|
||||
def : Processor<"ppc", G3Itineraries, [Directive32]>;
|
||||
def : Processor<"ppc64", G5Itineraries,
|
||||
[Directive64, FeatureAltivec,
|
||||
FeatureGPUL, FeatureFSqrt, FeatureSTFIWX,
|
||||
FeatureMFOCRF, FeatureFSqrt, FeatureSTFIWX,
|
||||
Feature64Bit /*, Feature64BitRegs */]>;
|
||||
|
||||
|
||||
|
@ -457,7 +457,7 @@ void PPCDarwinAsmPrinter::EmitStartOfAsmFile(Module &M) {
|
||||
};
|
||||
|
||||
unsigned Directive = Subtarget.getDarwinDirective();
|
||||
if (Subtarget.isGigaProcessor() && Directive < PPC::DIR_970)
|
||||
if (Subtarget.hasMFOCRF() && Directive < PPC::DIR_970)
|
||||
Directive = PPC::DIR_970;
|
||||
if (Subtarget.hasAltivec() && Directive < PPC::DIR_7400)
|
||||
Directive = PPC::DIR_7400;
|
||||
|
@ -697,7 +697,7 @@ SDNode *PPCDAGToDAGISel::SelectSETCC(SDNode *N) {
|
||||
CCReg = CurDAG->getCopyToReg(CurDAG->getEntryNode(), dl, CR7Reg, CCReg,
|
||||
InFlag).getValue(1);
|
||||
|
||||
if (PPCSubTarget.isGigaProcessor() && OtherCondIdx == -1)
|
||||
if (PPCSubTarget.hasMFOCRF() && OtherCondIdx == -1)
|
||||
IntCR = SDValue(CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, CR7Reg,
|
||||
CCReg), 0);
|
||||
else
|
||||
@ -833,7 +833,7 @@ SDNode *PPCDAGToDAGISel::Select(SDNode *N) {
|
||||
case PPCISD::MFCR: {
|
||||
SDValue InFlag = N->getOperand(1);
|
||||
// Use MFOCRF if supported.
|
||||
if (PPCSubTarget.isGigaProcessor())
|
||||
if (PPCSubTarget.hasMFOCRF())
|
||||
return CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32,
|
||||
N->getOperand(0), InFlag);
|
||||
else
|
||||
|
@ -162,7 +162,7 @@ PPCSubtarget::PPCSubtarget(const std::string &TT, const std::string &CPU,
|
||||
: PPCGenSubtargetInfo(TT, CPU, FS)
|
||||
, StackAlignment(16)
|
||||
, DarwinDirective(PPC::DIR_NONE)
|
||||
, IsGigaProcessor(false)
|
||||
, HasMFOCRF(false)
|
||||
, Has64BitSupport(false)
|
||||
, Use64BitRegs(false)
|
||||
, IsPPC64(is64Bit)
|
||||
|
@ -63,7 +63,7 @@ protected:
|
||||
unsigned DarwinDirective;
|
||||
|
||||
/// Used by the ISel to turn in optimizations for POWER4-derived architectures
|
||||
bool IsGigaProcessor;
|
||||
bool HasMFOCRF;
|
||||
bool Has64BitSupport;
|
||||
bool Use64BitRegs;
|
||||
bool IsPPC64;
|
||||
@ -140,7 +140,7 @@ public:
|
||||
bool hasFSQRT() const { return HasFSQRT; }
|
||||
bool hasSTFIWX() const { return HasSTFIWX; }
|
||||
bool hasAltivec() const { return HasAltivec; }
|
||||
bool isGigaProcessor() const { return IsGigaProcessor; }
|
||||
bool hasMFOCRF() const { return HasMFOCRF; }
|
||||
bool isBookE() const { return IsBookE; }
|
||||
|
||||
const Triple &getTargetTriple() const { return TargetTriple; }
|
||||
|
Loading…
Reference in New Issue
Block a user