34#define GET_INSTRINFO_MC_DESC
35#define GET_INSTRINFO_MC_HELPERS
36#include "DirectXGenInstrInfo.inc"
38#define GET_SUBTARGETINFO_MC_DESC
39#include "DirectXGenSubtargetInfo.inc"
41#define GET_REGINFO_MC_DESC
42#include "DirectXGenRegisterInfo.inc"
56 std::pair<const char *, uint64_t>
58 return std::make_pair<const char *, uint64_t>(
"", 0ull);
66 DXILMCCodeEmitter() {}
78 ~DXILAsmBackend()
override =
default;
83 std::unique_ptr<MCObjectTargetWriter>
84 createObjectTargetWriter()
const override {
94class DirectXMCAsmInfo :
public MCAsmInfo {
103 unsigned SyntaxVariant,
107 if (SyntaxVariant == 0)
108 return new DXILInstPrinter(MAI, MII,
MRI);
114 return new DXILMCCodeEmitter();
121 return new DXILAsmBackend(STI);
126 return createDirectXMCSubtargetInfoImpl(TT, CPU, CPU, FS);
unsigned const MachineRegisterInfo * MRI
#define LLVM_EXTERNAL_VISIBILITY
MCAsmBackend * createDXILMCAsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
static MCRegisterInfo * createDirectXMCRegisterInfo(const Triple &Triple)
static MCSubtargetInfo * createDirectXMCSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS)
static MCInstrInfo * createDirectXMCInstrInfo()
static MCInstPrinter * createDXILMCInstPrinter(const Triple &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
MCCodeEmitter * createDXILMCCodeEmitter(const MCInstrInfo &MCII, MCContext &Ctx)
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeDirectXTargetMC()
This file contains DirectX target interface.
A common definition of LaneBitmask for use in TableGen and CodeGen.
static TableGen::Emitter::OptClass< SkeletonEmitter > X("gen-skeleton-class", "Generate example skeleton class")
StringRef getMnemonic(unsigned Opc)
Generic interface to target specific assembler backends.
This class is intended to be used as a base class for asm properties and features specific to the tar...
MCCodeEmitter - Generic instruction encoding interface.
Context object for machine code objects.
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
This is an instance of a target assembly language printer that converts an MCInst to valid target ass...
Instances of this class represent a single low-level machine instruction.
Interface to description of machine instruction set.
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
Generic base class for all target subtargets.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
StringRef - Represent a constant reference to a string, i.e.
Target - Wrapper for Target specific information.
Triple - Helper class for working with autoconf configuration names.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
Target & getTheDirectXTarget()
FunctionAddr VTableAddr Count
FunctionAddr VTableAddr uintptr_t uintptr_t Data
std::unique_ptr< MCObjectTargetWriter > createDXContainerTargetObjectWriter()
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 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.