31#define GET_INSTRINFO_MC_DESC
32#define ENABLE_INSTR_PREDICATE_VERIFIER
33#include "LanaiGenInstrInfo.inc"
35#define GET_SUBTARGETINFO_MC_DESC
36#include "LanaiGenSubtargetInfo.inc"
38#define GET_REGINFO_MC_DESC
39#include "LanaiGenRegisterInfo.inc"
45 InitLanaiMCInstrInfo(
X);
51 InitLanaiMCRegisterInfo(
X, Lanai::RCA, 0, 0, Lanai::PC);
57 std::string CPUName = std::string(CPU);
61 return createLanaiMCSubtargetInfoImpl(TT, CPUName, CPUName, FS);
65 std::unique_ptr<MCAsmBackend> &&MAB,
66 std::unique_ptr<MCObjectWriter> &&OW,
67 std::unique_ptr<MCCodeEmitter> &&
Emitter) {
68 if (!
T.isOSBinFormatELF())
76 unsigned SyntaxVariant,
80 if (SyntaxVariant == 0)
94 explicit LanaiMCInstrAnalysis(
const MCInstrInfo *Info)
95 : MCInstrAnalysis(
Info) {}
101 if (!isConditionalBranch(Inst) && !isUnconditionalBranch(Inst) &&
131 return new LanaiMCInstrAnalysis(Info);
static MCStreamer * createMCStreamer(const Triple &T, MCContext &Context, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter)
static MCTargetStreamer * createNullTargetStreamer(MCStreamer &S)
#define LLVM_EXTERNAL_VISIBILITY
dxil container DXContainer Global Emitter
static MCInstrAnalysis * createLanaiInstrAnalysis(const MCInstrInfo *Info)
static MCInstrInfo * createLanaiMCInstrInfo()
static MCSubtargetInfo * createLanaiMCSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS)
static MCStreamer * createMCStreamer(const Triple &T, MCContext &Context, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter)
static MCInstPrinter * createLanaiMCInstPrinter(const Triple &, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
static MCTargetStreamer * createNullTargetStreamer(MCStreamer &S)
static MCRelocationInfo * createLanaiElfRelocation(const Triple &TheTriple, MCContext &Ctx)
static MCRegisterInfo * createLanaiMCRegisterInfo(const Triple &)
LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeLanaiTargetMC()
MachineRegisterInfo & MRI
This class is intended to be used as a base class for asm properties and features specific to the tar...
Context object for machine code objects.
This is an instance of a target assembly language printer that converts an MCInst to valid target ass...
unsigned getNumOperands() const
unsigned getOpcode() const
const MCOperand & getOperand(unsigned i) const
Interface to description of machine instruction set.
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
Create MCExprs from relocations found in an object file.
Streaming machine code generation interface.
Generic base class for all target subtargets.
Target specific streamer interface.
Represent a constant reference to a string, i.e.
Triple - Helper class for working with autoconf configuration names.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
This is an optimization pass for GlobalISel generic memory operations.
MCCodeEmitter * createLanaiMCCodeEmitter(const MCInstrInfo &MCII, MCContext &Ctx)
LLVM_ABI MCStreamer * createELFStreamer(MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE)
Target & getTheLanaiTarget()
LLVM_ABI MCRelocationInfo * createMCRelocationInfo(const Triple &TT, MCContext &Ctx)
MCAsmBackend * createLanaiAsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
RegisterMCAsmInfo - Helper template for registering a target assembly info implementation.
static void RegisterMCRegInfo(Target &T, Target::MCRegInfoCtorFnTy Fn)
RegisterMCRegInfo - Register a MCRegisterInfo implementation for the given target.
static void RegisterMCAsmBackend(Target &T, Target::MCAsmBackendCtorTy Fn)
RegisterMCAsmBackend - Register a MCAsmBackend implementation for the given target.
static void RegisterMCCodeEmitter(Target &T, Target::MCCodeEmitterCtorTy Fn)
RegisterMCCodeEmitter - Register a MCCodeEmitter implementation for the given target.
static void RegisterMCSubtargetInfo(Target &T, Target::MCSubtargetInfoCtorFnTy Fn)
RegisterMCSubtargetInfo - Register a MCSubtargetInfo implementation for the given target.
static void RegisterMCInstrAnalysis(Target &T, Target::MCInstrAnalysisCtorFnTy Fn)
RegisterMCInstrAnalysis - Register a MCInstrAnalysis implementation for the given target.
static void RegisterELFStreamer(Target &T, Target::ELFStreamerCtorTy Fn)
static void RegisterNullTargetStreamer(Target &T, Target::NullTargetStreamerCtorTy Fn)
static void RegisterMCInstPrinter(Target &T, Target::MCInstPrinterCtorTy Fn)
RegisterMCInstPrinter - Register a MCInstPrinter implementation for the given target.
static void RegisterMCInstrInfo(Target &T, Target::MCInstrInfoCtorFnTy Fn)
RegisterMCInstrInfo - Register a MCInstrInfo implementation for the given target.
static void RegisterMCRelocationInfo(Target &T, Target::MCRelocationInfoCtorTy Fn)
RegisterMCRelocationInfo - Register an MCRelocationInfo implementation for the given target.