29 #define GET_INSTRINFO_MC_DESC
30 #include "PPCGenInstrInfo.inc"
32 #define GET_SUBTARGETINFO_MC_DESC
33 #include "PPCGenSubtargetInfo.inc"
35 #define GET_REGINFO_MC_DESC
36 #include "PPCGenRegisterInfo.inc"
45 InitPPCMCInstrInfo(X);
53 unsigned Flavour = isPPC64 ? 0 : 1;
54 unsigned RA = isPPC64 ? PPC::LR8 : PPC::LR;
57 InitPPCMCRegisterInfo(X, RA, Flavour, Flavour);
64 InitPPCMCSubtargetInfo(X, TT, CPU, FS);
80 unsigned Reg = isPPC64 ? PPC::X1 : PPC::R1;
116 virtual void emitTCEntry(
const MCSymbol &S) {
126 virtual void emitTCEntry(
const MCSymbol &S) {
128 Streamer->EmitSymbolValue(&S, 8);
140 if (
Triple(TT).isOSDarwin())
149 bool isVerboseAsm,
bool useLoc,
bool useCFI,
155 useDwarfDirectory, InstPrint, CE, TAB,
160 unsigned SyntaxVariant,
int getDwarfRegNum(unsigned RegNum, bool isEH) const
Map a target register to an equivalent dwarf register number. Returns -1 if there is no equivalent va...
static MCCodeGenInfo * createPPCMCCodeGenInfo(StringRef TT, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
MCStreamer * createMCAsmStreamer(MCContext &Ctx, formatted_raw_ostream &OS, bool isVerboseAsm, bool useLoc, bool useCFI, bool useDwarfDirectory, MCInstPrinter *InstPrint, MCCodeEmitter *CE, MCAsmBackend *TAB, bool ShowInst)
static void RegisterMCInstPrinter(Target &T, Target::MCInstPrinterCtorTy Fn)
MCStreamer * createELFStreamer(MCContext &Ctx, MCTargetStreamer *TargetStreamer, MCAsmBackend &TAB, raw_ostream &OS, MCCodeEmitter *CE, bool RelaxAll, bool NoExecStack)
MCStreamer * createMachOStreamer(MCContext &Ctx, MCAsmBackend &TAB, raw_ostream &OS, MCCodeEmitter *CE, bool RelaxAll=false)
MCCodeEmitter * createPPCMCCodeEmitter(const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
void addInitialFrameState(const MCCFIInstruction &Inst)
void InitMCCodeGenInfo(Reloc::Model RM=Reloc::Default, CodeModel::Model CM=CodeModel::Default, CodeGenOpt::Level OL=CodeGenOpt::Default)
ArchType getArch() const
getArch - Get the parsed architecture type of this triple.
void LLVMInitializePowerPCTargetMC()
virtual ~PPCTargetStreamer()
static MCRegisterInfo * createPPCMCRegisterInfo(StringRef TT)
static void RegisterMCAsmBackend(Target &T, Target::MCAsmBackendCtorTy Fn)
static MCStreamer * createMCStreamer(const Target &T, StringRef TT, MCContext &Ctx, MCAsmBackend &MAB, raw_ostream &OS, MCCodeEmitter *Emitter, bool RelaxAll, bool NoExecStack)
static MCCFIInstruction createDefCfa(MCSymbol *L, unsigned Register, int Offset)
.cfi_def_cfa defines a rule for computing CFA as: take address from Register and add Offset to it...
static void RegisterMCObjectStreamer(Target &T, Target::MCObjectStreamerCtorTy Fn)
MCAsmBackend * createPPCAsmBackend(const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
MCCodeEmitter - Generic instruction encoding interface.
static void RegisterAsmStreamer(Target &T, Target::AsmStreamerCtorTy Fn)
static void RegisterMCCodeGenInfo(Target &T, Target::MCCodeGenInfoCtorFnTy Fn)
StringRef getTargetTriple() const
getTargetTriple - Return the target triple string.
static MCInstPrinter * createPPCMCInstPrinter(const Target &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI)
static void RegisterMCSubtargetInfo(Target &T, Target::MCSubtargetInfoCtorFnTy Fn)
static MCInstrInfo * createPPCMCInstrInfo()
bool isOSDarwin() const
isOSDarwin - Is this a "Darwin" OS (OS X or iOS).
static void RegisterMCCodeEmitter(Target &T, Target::MCCodeEmitterCtorTy Fn)
MCStreamer * createAsmStreamer(MCContext &Ctx, MCTargetStreamer *TargetStreamer, formatted_raw_ostream &OS, bool isVerboseAsm, bool useLoc, bool useCFI, bool useDwarfDirectory, MCInstPrinter *InstPrint=0, MCCodeEmitter *CE=0, MCAsmBackend *TAB=0, bool ShowInst=false)
static MCAsmInfo * createPPCMCAsmInfo(const MCRegisterInfo &MRI, StringRef TT)
static void RegisterMCRegInfo(Target &T, Target::MCRegInfoCtorFnTy Fn)
StringRef getName() const
getName - Get the symbol name.
static void RegisterMCInstrInfo(Target &T, Target::MCInstrInfoCtorFnTy Fn)
MCAsmBackend - Generic interface to target specific assembler backends.
cl::opt< bool > RelaxAll("mc-relax-all", cl::desc("When used with filetype=obj, ""relax all fixups in the emitted object file"))
const MCRegisterInfo & MRI
static RegisterPass< NVPTXAllocaHoisting > X("alloca-hoisting","Hoisting alloca instructions in non-entry ""blocks to the entry block")
static MCSubtargetInfo * createPPCMCSubtargetInfo(StringRef TT, StringRef CPU, StringRef FS)