mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 22:24:07 +00:00
Mark PPC MFTB and DST (and friends) as deprecated
Use the new instruction deprecation feature to mark mftb (now replaced with mfspr) and dst (along with the other Altivec cache control instructions) as deprecated when targeting cores supporting at least ISA v2.03. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190605 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -13,6 +13,7 @@
|
|||||||
#include "llvm/MC/MCStreamer.h"
|
#include "llvm/MC/MCStreamer.h"
|
||||||
#include "llvm/MC/MCExpr.h"
|
#include "llvm/MC/MCExpr.h"
|
||||||
#include "llvm/MC/MCInst.h"
|
#include "llvm/MC/MCInst.h"
|
||||||
|
#include "llvm/MC/MCInstrInfo.h"
|
||||||
#include "llvm/MC/MCRegisterInfo.h"
|
#include "llvm/MC/MCRegisterInfo.h"
|
||||||
#include "llvm/MC/MCSubtargetInfo.h"
|
#include "llvm/MC/MCSubtargetInfo.h"
|
||||||
#include "llvm/MC/MCParser/MCAsmLexer.h"
|
#include "llvm/MC/MCParser/MCAsmLexer.h"
|
||||||
@ -174,6 +175,7 @@ struct PPCOperand;
|
|||||||
class PPCAsmParser : public MCTargetAsmParser {
|
class PPCAsmParser : public MCTargetAsmParser {
|
||||||
MCSubtargetInfo &STI;
|
MCSubtargetInfo &STI;
|
||||||
MCAsmParser &Parser;
|
MCAsmParser &Parser;
|
||||||
|
const MCInstrInfo &MII;
|
||||||
bool IsPPC64;
|
bool IsPPC64;
|
||||||
|
|
||||||
MCAsmParser &getParser() const { return Parser; }
|
MCAsmParser &getParser() const { return Parser; }
|
||||||
@ -219,8 +221,8 @@ class PPCAsmParser : public MCTargetAsmParser {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
PPCAsmParser(MCSubtargetInfo &_STI, MCAsmParser &_Parser,
|
PPCAsmParser(MCSubtargetInfo &_STI, MCAsmParser &_Parser,
|
||||||
const MCInstrInfo &MII)
|
const MCInstrInfo &_MII)
|
||||||
: MCTargetAsmParser(), STI(_STI), Parser(_Parser) {
|
: MCTargetAsmParser(), STI(_STI), Parser(_Parser), MII(_MII) {
|
||||||
// Check for 64-bit vs. 32-bit pointer mode.
|
// Check for 64-bit vs. 32-bit pointer mode.
|
||||||
Triple TheTriple(STI.getTargetTriple());
|
Triple TheTriple(STI.getTargetTriple());
|
||||||
IsPPC64 = (TheTriple.getArch() == Triple::ppc64 ||
|
IsPPC64 = (TheTriple.getArch() == Triple::ppc64 ||
|
||||||
|
@ -88,6 +88,11 @@ def FeatureBookE : SubtargetFeature<"booke", "IsBookE", "true",
|
|||||||
def FeatureQPX : SubtargetFeature<"qpx","HasQPX", "true",
|
def FeatureQPX : SubtargetFeature<"qpx","HasQPX", "true",
|
||||||
"Enable QPX instructions">;
|
"Enable QPX instructions">;
|
||||||
|
|
||||||
|
def DeprecatedMFTB : SubtargetFeature<"", "DeprecatedMFTB", "true",
|
||||||
|
"Treat mftb as deprecated">;
|
||||||
|
def DeprecatedDST : SubtargetFeature<"", "DeprecatedDST", "true",
|
||||||
|
"Treat vector data stream cache control instructions as deprecated">;
|
||||||
|
|
||||||
// Note: Future features to add when support is extended to more
|
// Note: Future features to add when support is extended to more
|
||||||
// recent ISA levels:
|
// recent ISA levels:
|
||||||
//
|
//
|
||||||
@ -148,10 +153,10 @@ include "PPCInstrInfo.td"
|
|||||||
def : Processor<"generic", G3Itineraries, [Directive32]>;
|
def : Processor<"generic", G3Itineraries, [Directive32]>;
|
||||||
def : Processor<"440", PPC440Itineraries, [Directive440, FeatureISEL,
|
def : Processor<"440", PPC440Itineraries, [Directive440, FeatureISEL,
|
||||||
FeatureFRES, FeatureFRSQRTE,
|
FeatureFRES, FeatureFRSQRTE,
|
||||||
FeatureBookE]>;
|
FeatureBookE, DeprecatedMFTB]>;
|
||||||
def : Processor<"450", PPC440Itineraries, [Directive440, FeatureISEL,
|
def : Processor<"450", PPC440Itineraries, [Directive440, FeatureISEL,
|
||||||
FeatureFRES, FeatureFRSQRTE,
|
FeatureFRES, FeatureFRSQRTE,
|
||||||
FeatureBookE]>;
|
FeatureBookE, DeprecatedMFTB]>;
|
||||||
def : Processor<"601", G3Itineraries, [Directive601]>;
|
def : Processor<"601", G3Itineraries, [Directive601]>;
|
||||||
def : Processor<"602", G3Itineraries, [Directive602]>;
|
def : Processor<"602", G3Itineraries, [Directive602]>;
|
||||||
def : Processor<"603", G3Itineraries, [Directive603,
|
def : Processor<"603", G3Itineraries, [Directive603,
|
||||||
@ -187,13 +192,16 @@ def : ProcessorModel<"g5", G5Model,
|
|||||||
[Directive970, FeatureAltivec,
|
[Directive970, FeatureAltivec,
|
||||||
FeatureMFOCRF, FeatureFSqrt, FeatureSTFIWX,
|
FeatureMFOCRF, FeatureFSqrt, FeatureSTFIWX,
|
||||||
FeatureFRES, FeatureFRSQRTE,
|
FeatureFRES, FeatureFRSQRTE,
|
||||||
Feature64Bit /*, Feature64BitRegs */]>;
|
Feature64Bit /*, Feature64BitRegs */,
|
||||||
|
DeprecatedMFTB, DeprecatedDST]>;
|
||||||
def : ProcessorModel<"e500mc", PPCE500mcModel,
|
def : ProcessorModel<"e500mc", PPCE500mcModel,
|
||||||
[DirectiveE500mc, FeatureMFOCRF,
|
[DirectiveE500mc, FeatureMFOCRF,
|
||||||
FeatureSTFIWX, FeatureBookE, FeatureISEL]>;
|
FeatureSTFIWX, FeatureBookE, FeatureISEL,
|
||||||
|
DeprecatedMFTB]>;
|
||||||
def : ProcessorModel<"e5500", PPCE5500Model,
|
def : ProcessorModel<"e5500", PPCE5500Model,
|
||||||
[DirectiveE5500, FeatureMFOCRF, Feature64Bit,
|
[DirectiveE5500, FeatureMFOCRF, Feature64Bit,
|
||||||
FeatureSTFIWX, FeatureBookE, FeatureISEL]>;
|
FeatureSTFIWX, FeatureBookE, FeatureISEL,
|
||||||
|
DeprecatedMFTB]>;
|
||||||
def : ProcessorModel<"a2", PPCA2Model,
|
def : ProcessorModel<"a2", PPCA2Model,
|
||||||
[DirectiveA2, FeatureBookE, FeatureMFOCRF,
|
[DirectiveA2, FeatureBookE, FeatureMFOCRF,
|
||||||
FeatureFCPSGN, FeatureFSqrt, FeatureFRE, FeatureFRES,
|
FeatureFCPSGN, FeatureFSqrt, FeatureFRE, FeatureFRES,
|
||||||
@ -201,7 +209,7 @@ def : ProcessorModel<"a2", PPCA2Model,
|
|||||||
FeatureSTFIWX, FeatureLFIWAX,
|
FeatureSTFIWX, FeatureLFIWAX,
|
||||||
FeatureFPRND, FeatureFPCVT, FeatureISEL,
|
FeatureFPRND, FeatureFPCVT, FeatureISEL,
|
||||||
FeaturePOPCNTD, FeatureLDBRX, Feature64Bit
|
FeaturePOPCNTD, FeatureLDBRX, Feature64Bit
|
||||||
/*, Feature64BitRegs */]>;
|
/*, Feature64BitRegs */, DeprecatedMFTB]>;
|
||||||
def : ProcessorModel<"a2q", PPCA2Model,
|
def : ProcessorModel<"a2q", PPCA2Model,
|
||||||
[DirectiveA2, FeatureBookE, FeatureMFOCRF,
|
[DirectiveA2, FeatureBookE, FeatureMFOCRF,
|
||||||
FeatureFCPSGN, FeatureFSqrt, FeatureFRE, FeatureFRES,
|
FeatureFCPSGN, FeatureFSqrt, FeatureFRE, FeatureFRES,
|
||||||
@ -209,7 +217,7 @@ def : ProcessorModel<"a2q", PPCA2Model,
|
|||||||
FeatureSTFIWX, FeatureLFIWAX,
|
FeatureSTFIWX, FeatureLFIWAX,
|
||||||
FeatureFPRND, FeatureFPCVT, FeatureISEL,
|
FeatureFPRND, FeatureFPCVT, FeatureISEL,
|
||||||
FeaturePOPCNTD, FeatureLDBRX, Feature64Bit
|
FeaturePOPCNTD, FeatureLDBRX, Feature64Bit
|
||||||
/*, Feature64BitRegs */, FeatureQPX]>;
|
/*, Feature64BitRegs */, FeatureQPX, DeprecatedMFTB]>;
|
||||||
def : ProcessorModel<"pwr3", G5Model,
|
def : ProcessorModel<"pwr3", G5Model,
|
||||||
[DirectivePwr3, FeatureAltivec,
|
[DirectivePwr3, FeatureAltivec,
|
||||||
FeatureFRES, FeatureFRSQRTE, FeatureMFOCRF,
|
FeatureFRES, FeatureFRSQRTE, FeatureMFOCRF,
|
||||||
@ -222,24 +230,28 @@ def : ProcessorModel<"pwr5", G5Model,
|
|||||||
[DirectivePwr5, FeatureAltivec, FeatureMFOCRF,
|
[DirectivePwr5, FeatureAltivec, FeatureMFOCRF,
|
||||||
FeatureFSqrt, FeatureFRE, FeatureFRES,
|
FeatureFSqrt, FeatureFRE, FeatureFRES,
|
||||||
FeatureFRSQRTE, FeatureFRSQRTES,
|
FeatureFRSQRTE, FeatureFRSQRTES,
|
||||||
FeatureSTFIWX, Feature64Bit]>;
|
FeatureSTFIWX, Feature64Bit,
|
||||||
|
DeprecatedMFTB, DeprecatedDST]>;
|
||||||
def : ProcessorModel<"pwr5x", G5Model,
|
def : ProcessorModel<"pwr5x", G5Model,
|
||||||
[DirectivePwr5x, FeatureAltivec, FeatureMFOCRF,
|
[DirectivePwr5x, FeatureAltivec, FeatureMFOCRF,
|
||||||
FeatureFSqrt, FeatureFRE, FeatureFRES,
|
FeatureFSqrt, FeatureFRE, FeatureFRES,
|
||||||
FeatureFRSQRTE, FeatureFRSQRTES,
|
FeatureFRSQRTE, FeatureFRSQRTES,
|
||||||
FeatureSTFIWX, FeatureFPRND, Feature64Bit]>;
|
FeatureSTFIWX, FeatureFPRND, Feature64Bit,
|
||||||
|
DeprecatedMFTB, DeprecatedDST]>;
|
||||||
def : ProcessorModel<"pwr6", G5Model,
|
def : ProcessorModel<"pwr6", G5Model,
|
||||||
[DirectivePwr6, FeatureAltivec,
|
[DirectivePwr6, FeatureAltivec,
|
||||||
FeatureMFOCRF, FeatureFCPSGN, FeatureFSqrt, FeatureFRE,
|
FeatureMFOCRF, FeatureFCPSGN, FeatureFSqrt, FeatureFRE,
|
||||||
FeatureFRES, FeatureFRSQRTE, FeatureFRSQRTES,
|
FeatureFRES, FeatureFRSQRTE, FeatureFRSQRTES,
|
||||||
FeatureRecipPrec, FeatureSTFIWX, FeatureLFIWAX,
|
FeatureRecipPrec, FeatureSTFIWX, FeatureLFIWAX,
|
||||||
FeatureFPRND, Feature64Bit /*, Feature64BitRegs */]>;
|
FeatureFPRND, Feature64Bit /*, Feature64BitRegs */,
|
||||||
|
DeprecatedMFTB, DeprecatedDST]>;
|
||||||
def : ProcessorModel<"pwr6x", G5Model,
|
def : ProcessorModel<"pwr6x", G5Model,
|
||||||
[DirectivePwr5x, FeatureAltivec, FeatureMFOCRF,
|
[DirectivePwr5x, FeatureAltivec, FeatureMFOCRF,
|
||||||
FeatureFCPSGN, FeatureFSqrt, FeatureFRE, FeatureFRES,
|
FeatureFCPSGN, FeatureFSqrt, FeatureFRE, FeatureFRES,
|
||||||
FeatureFRSQRTE, FeatureFRSQRTES, FeatureRecipPrec,
|
FeatureFRSQRTE, FeatureFRSQRTES, FeatureRecipPrec,
|
||||||
FeatureSTFIWX, FeatureLFIWAX,
|
FeatureSTFIWX, FeatureLFIWAX,
|
||||||
FeatureFPRND, Feature64Bit]>;
|
FeatureFPRND, Feature64Bit,
|
||||||
|
DeprecatedMFTB, DeprecatedDST]>;
|
||||||
def : ProcessorModel<"pwr7", G5Model,
|
def : ProcessorModel<"pwr7", G5Model,
|
||||||
[DirectivePwr7, FeatureAltivec,
|
[DirectivePwr7, FeatureAltivec,
|
||||||
FeatureMFOCRF, FeatureFCPSGN, FeatureFSqrt, FeatureFRE,
|
FeatureMFOCRF, FeatureFCPSGN, FeatureFSqrt, FeatureFRE,
|
||||||
@ -247,7 +259,8 @@ def : ProcessorModel<"pwr7", G5Model,
|
|||||||
FeatureRecipPrec, FeatureSTFIWX, FeatureLFIWAX,
|
FeatureRecipPrec, FeatureSTFIWX, FeatureLFIWAX,
|
||||||
FeatureFPRND, FeatureFPCVT, FeatureISEL,
|
FeatureFPRND, FeatureFPCVT, FeatureISEL,
|
||||||
FeaturePOPCNTD, FeatureLDBRX,
|
FeaturePOPCNTD, FeatureLDBRX,
|
||||||
Feature64Bit /*, Feature64BitRegs */]>;
|
Feature64Bit /*, Feature64BitRegs */,
|
||||||
|
DeprecatedMFTB, DeprecatedDST]>;
|
||||||
def : Processor<"ppc", G3Itineraries, [Directive32]>;
|
def : Processor<"ppc", G3Itineraries, [Directive32]>;
|
||||||
def : ProcessorModel<"ppc64", G5Model,
|
def : ProcessorModel<"ppc64", G5Model,
|
||||||
[Directive64, FeatureAltivec,
|
[Directive64, FeatureAltivec,
|
||||||
|
@ -229,35 +229,45 @@ let Predicates = [HasAltivec] in {
|
|||||||
let isCodeGenOnly = 1 in {
|
let isCodeGenOnly = 1 in {
|
||||||
def DSS : DSS_Form<822, (outs),
|
def DSS : DSS_Form<822, (outs),
|
||||||
(ins u5imm:$ZERO0, u5imm:$STRM,u5imm:$ZERO1,u5imm:$ZERO2),
|
(ins u5imm:$ZERO0, u5imm:$STRM,u5imm:$ZERO1,u5imm:$ZERO2),
|
||||||
"dss $STRM", LdStLoad /*FIXME*/, []>;
|
"dss $STRM", LdStLoad /*FIXME*/, []>,
|
||||||
|
Deprecated<DeprecatedDST>;
|
||||||
def DSSALL : DSS_Form<822, (outs),
|
def DSSALL : DSS_Form<822, (outs),
|
||||||
(ins u5imm:$ONE, u5imm:$ZERO0,u5imm:$ZERO1,u5imm:$ZERO2),
|
(ins u5imm:$ONE, u5imm:$ZERO0,u5imm:$ZERO1,u5imm:$ZERO2),
|
||||||
"dssall", LdStLoad /*FIXME*/, []>;
|
"dssall", LdStLoad /*FIXME*/, []>,
|
||||||
|
Deprecated<DeprecatedDST>;
|
||||||
def DST : DSS_Form<342, (outs),
|
def DST : DSS_Form<342, (outs),
|
||||||
(ins u5imm:$ZERO, u5imm:$STRM, gprc:$rA, gprc:$rB),
|
(ins u5imm:$ZERO, u5imm:$STRM, gprc:$rA, gprc:$rB),
|
||||||
"dst $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>;
|
"dst $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>,
|
||||||
|
Deprecated<DeprecatedDST>;
|
||||||
def DSTT : DSS_Form<342, (outs),
|
def DSTT : DSS_Form<342, (outs),
|
||||||
(ins u5imm:$ONE, u5imm:$STRM, gprc:$rA, gprc:$rB),
|
(ins u5imm:$ONE, u5imm:$STRM, gprc:$rA, gprc:$rB),
|
||||||
"dstt $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>;
|
"dstt $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>,
|
||||||
|
Deprecated<DeprecatedDST>;
|
||||||
def DSTST : DSS_Form<374, (outs),
|
def DSTST : DSS_Form<374, (outs),
|
||||||
(ins u5imm:$ZERO, u5imm:$STRM, gprc:$rA, gprc:$rB),
|
(ins u5imm:$ZERO, u5imm:$STRM, gprc:$rA, gprc:$rB),
|
||||||
"dstst $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>;
|
"dstst $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>,
|
||||||
|
Deprecated<DeprecatedDST>;
|
||||||
def DSTSTT : DSS_Form<374, (outs),
|
def DSTSTT : DSS_Form<374, (outs),
|
||||||
(ins u5imm:$ONE, u5imm:$STRM, gprc:$rA, gprc:$rB),
|
(ins u5imm:$ONE, u5imm:$STRM, gprc:$rA, gprc:$rB),
|
||||||
"dststt $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>;
|
"dststt $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>,
|
||||||
|
Deprecated<DeprecatedDST>;
|
||||||
|
|
||||||
def DST64 : DSS_Form<342, (outs),
|
def DST64 : DSS_Form<342, (outs),
|
||||||
(ins u5imm:$ZERO, u5imm:$STRM, g8rc:$rA, gprc:$rB),
|
(ins u5imm:$ZERO, u5imm:$STRM, g8rc:$rA, gprc:$rB),
|
||||||
"dst $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>;
|
"dst $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>,
|
||||||
|
Deprecated<DeprecatedDST>;
|
||||||
def DSTT64 : DSS_Form<342, (outs),
|
def DSTT64 : DSS_Form<342, (outs),
|
||||||
(ins u5imm:$ONE, u5imm:$STRM, g8rc:$rA, gprc:$rB),
|
(ins u5imm:$ONE, u5imm:$STRM, g8rc:$rA, gprc:$rB),
|
||||||
"dstt $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>;
|
"dstt $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>,
|
||||||
|
Deprecated<DeprecatedDST>;
|
||||||
def DSTST64 : DSS_Form<374, (outs),
|
def DSTST64 : DSS_Form<374, (outs),
|
||||||
(ins u5imm:$ZERO, u5imm:$STRM, g8rc:$rA, gprc:$rB),
|
(ins u5imm:$ZERO, u5imm:$STRM, g8rc:$rA, gprc:$rB),
|
||||||
"dstst $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>;
|
"dstst $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>,
|
||||||
|
Deprecated<DeprecatedDST>;
|
||||||
def DSTSTT64 : DSS_Form<374, (outs),
|
def DSTSTT64 : DSS_Form<374, (outs),
|
||||||
(ins u5imm:$ONE, u5imm:$STRM, g8rc:$rA, gprc:$rB),
|
(ins u5imm:$ONE, u5imm:$STRM, g8rc:$rA, gprc:$rB),
|
||||||
"dststt $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>;
|
"dststt $rA, $rB, $STRM", LdStLoad /*FIXME*/, []>,
|
||||||
|
Deprecated<DeprecatedDST>;
|
||||||
}
|
}
|
||||||
|
|
||||||
def MFVSCR : VXForm_4<1540, (outs vrrc:$vD), (ins),
|
def MFVSCR : VXForm_4<1540, (outs vrrc:$vD), (ins),
|
||||||
|
@ -1867,7 +1867,7 @@ def MTSPR : XFXForm_1<31, 467, (outs), (ins i32imm:$SPR, gprc:$RT),
|
|||||||
"mtspr $SPR, $RT", SprMTSPR>;
|
"mtspr $SPR, $RT", SprMTSPR>;
|
||||||
|
|
||||||
def MFTB : XFXForm_1<31, 371, (outs gprc:$RT), (ins i32imm:$SPR),
|
def MFTB : XFXForm_1<31, 371, (outs gprc:$RT), (ins i32imm:$SPR),
|
||||||
"mftb $RT, $SPR", SprMFTB>;
|
"mftb $RT, $SPR", SprMFTB>, Deprecated<DeprecatedMFTB>;
|
||||||
|
|
||||||
let Uses = [CTR] in {
|
let Uses = [CTR] in {
|
||||||
def MFCTR : XFXForm_1_ext<31, 339, 9, (outs gprc:$rT), (ins),
|
def MFCTR : XFXForm_1_ext<31, 339, 9, (outs gprc:$rT), (ins),
|
||||||
|
@ -90,6 +90,8 @@ void PPCSubtarget::initializeEnvironment() {
|
|||||||
HasPOPCNTD = false;
|
HasPOPCNTD = false;
|
||||||
HasLDBRX = false;
|
HasLDBRX = false;
|
||||||
IsBookE = false;
|
IsBookE = false;
|
||||||
|
DeprecatedMFTB = false;
|
||||||
|
DeprecatedDST = false;
|
||||||
HasLazyResolverStubs = false;
|
HasLazyResolverStubs = false;
|
||||||
IsJITCodeModel = false;
|
IsJITCodeModel = false;
|
||||||
}
|
}
|
||||||
|
@ -88,6 +88,8 @@ protected:
|
|||||||
bool HasPOPCNTD;
|
bool HasPOPCNTD;
|
||||||
bool HasLDBRX;
|
bool HasLDBRX;
|
||||||
bool IsBookE;
|
bool IsBookE;
|
||||||
|
bool DeprecatedMFTB;
|
||||||
|
bool DeprecatedDST;
|
||||||
bool HasLazyResolverStubs;
|
bool HasLazyResolverStubs;
|
||||||
bool IsJITCodeModel;
|
bool IsJITCodeModel;
|
||||||
bool IsLittleEndian;
|
bool IsLittleEndian;
|
||||||
@ -190,6 +192,8 @@ public:
|
|||||||
bool hasPOPCNTD() const { return HasPOPCNTD; }
|
bool hasPOPCNTD() const { return HasPOPCNTD; }
|
||||||
bool hasLDBRX() const { return HasLDBRX; }
|
bool hasLDBRX() const { return HasLDBRX; }
|
||||||
bool isBookE() const { return IsBookE; }
|
bool isBookE() const { return IsBookE; }
|
||||||
|
bool isDeprecatedMFTB() const { return DeprecatedMFTB; }
|
||||||
|
bool isDeprecatedDST() const { return DeprecatedDST; }
|
||||||
|
|
||||||
const Triple &getTargetTriple() const { return TargetTriple; }
|
const Triple &getTargetTriple() const { return TargetTriple; }
|
||||||
|
|
||||||
|
12
test/MC/PowerPC/deprecated-p7.s
Normal file
12
test/MC/PowerPC/deprecated-p7.s
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# RUN: llvm-mc -triple powerpc64-unknown-linux-gnu -mcpu=pwr7 -show-encoding < %s 2>&1 | FileCheck %s
|
||||||
|
# RUN: llvm-mc -triple powerpc-unknown-linux-gnu -mcpu=601 -show-encoding < %s 2>&1 | FileCheck -check-prefix=CHECK-OLD %s
|
||||||
|
|
||||||
|
mftb 3
|
||||||
|
# CHECK: warning: deprecated
|
||||||
|
# CHECK: mftb 3
|
||||||
|
|
||||||
|
# CHECK-OLD-NOT: warning: deprecated
|
||||||
|
# CHECK-OLD: mftb 3
|
||||||
|
|
||||||
|
# FIXME: Test dst and friends once we can parse them.
|
||||||
|
|
Reference in New Issue
Block a user