28 #define GET_REGINFO_MC_DESC
29 #include "AArch64GenRegisterInfo.inc"
31 #define GET_INSTRINFO_MC_DESC
32 #include "AArch64GenInstrInfo.inc"
34 #define GET_SUBTARGETINFO_MC_DESC
35 #include "AArch64GenSubtargetInfo.inc"
43 InitAArch64MCSubtargetInfo(X, TT, CPU, FS);
50 InitAArch64MCInstrInfo(X);
56 InitAArch64MCRegisterInfo(X, AArch64::X30);
109 unsigned SyntaxVariant,
114 if (SyntaxVariant == 0)
125 virtual bool isUnconditionalBranch(
const MCInst &Inst)
const {
132 virtual bool isConditionalBranch(
const MCInst &Inst)
const {
139 bool evaluateBranch(
const MCInst &Inst, uint64_t Addr,
140 uint64_t Size, uint64_t &
Target)
const {
141 unsigned LblOperand = Inst.
getOpcode() == AArch64::Bcc ? 1 : 0;
156 return new AArch64MCInstrAnalysis(Info);
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...
MCCodeEmitter * createAArch64MCCodeEmitter(const MCInstrInfo &MCII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
static void RegisterMCInstrAnalysis(Target &T, Target::MCInstrAnalysisCtorFnTy Fn)
static MCRegisterInfo * createAArch64MCRegisterInfo(StringRef Triple)
static MCInstrInfo * createAArch64MCInstrInfo()
static void RegisterMCInstPrinter(Target &T, Target::MCInstPrinterCtorTy Fn)
MCSubtargetInfo * createAArch64MCSubtargetInfo(StringRef TT, StringRef CPU, StringRef FS)
MCAsmBackend * createAArch64AsmBackend(const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
This file implements a class to represent arbitrary precision integral constant values and operations...
void addInitialFrameState(const MCCFIInstruction &Inst)
static MCInstPrinter * createAArch64MCInstPrinter(const Target &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI)
void InitMCCodeGenInfo(Reloc::Model RM=Reloc::Default, CodeModel::Model CM=CodeModel::Default, CodeGenOpt::Level OL=CodeGenOpt::Default)
virtual bool isUnconditionalBranch(const MCInst &Inst) const
static void RegisterMCAsmBackend(Target &T, Target::MCAsmBackendCtorTy Fn)
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)
MCCodeEmitter - Generic instruction encoding interface.
static MCAsmInfo * createAArch64MCAsmInfo(const MCRegisterInfo &MRI, StringRef TT)
static MCCodeGenInfo * createAArch64MCCodeGenInfo(StringRef TT, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
static void RegisterMCCodeGenInfo(Target &T, Target::MCCodeGenInfoCtorFnTy Fn)
static MCInstrAnalysis * createAArch64MCInstrAnalysis(const MCInstrInfo *Info)
static void RegisterMCSubtargetInfo(Target &T, Target::MCSubtargetInfoCtorFnTy Fn)
virtual bool isConditionalBranch(const MCInst &Inst) const
static void RegisterMCCodeEmitter(Target &T, Target::MCCodeEmitterCtorTy Fn)
static void RegisterMCRegInfo(Target &T, Target::MCRegInfoCtorFnTy Fn)
unsigned getOpcode() const
MCELFStreamer * createAArch64ELFStreamer(MCContext &Context, MCAsmBackend &TAB, raw_ostream &OS, MCCodeEmitter *Emitter, bool RelaxAll, bool NoExecStack)
static void RegisterMCInstrInfo(Target &T, Target::MCInstrInfoCtorFnTy Fn)
static MCStreamer * createMCStreamer(const Target &T, StringRef TT, MCContext &Ctx, MCAsmBackend &MAB, raw_ostream &OS, MCCodeEmitter *Emitter, bool RelaxAll, bool NoExecStack)
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")
const MCOperand & getOperand(unsigned i) const
void LLVMInitializeAArch64TargetMC()