LLVM: lib/Target/DirectX/MCTargetDesc/DirectXMCTargetDesc.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
30#include
31
32using namespace llvm;
33
34#define GET_INSTRINFO_MC_DESC
35#define GET_INSTRINFO_MC_HELPERS
36#include "DirectXGenInstrInfo.inc"
37
38#define GET_SUBTARGETINFO_MC_DESC
39#include "DirectXGenSubtargetInfo.inc"
40
41#define GET_REGINFO_MC_DESC
42#include "DirectXGenRegisterInfo.inc"
43
44namespace {
45
46
48public:
52
55
56 std::pair<const char *, uint64_t>
58 return std::make_pair<const char *, uint64_t>("", 0ull);
59 }
60
61private:
62};
63
65public:
66 DXILMCCodeEmitter() {}
67
71};
72
74
75public:
78 ~DXILAsmBackend() override = default;
79
82
83 std::unique_ptr
84 createObjectTargetWriter() const override {
86 }
87
90 return true;
91 }
92};
93
94class DirectXMCAsmInfo : public MCAsmInfo {
95public:
98};
99
100}
101
103 unsigned SyntaxVariant,
107 if (SyntaxVariant == 0)
108 return new DXILInstPrinter(MAI, MII, MRI);
109 return nullptr;
110}
111
114 return new DXILMCCodeEmitter();
115}
116
121 return new DXILAsmBackend(STI);
122}
123
126 return createDirectXMCSubtargetInfoImpl(TT, CPU, CPU, FS);
127}
128
132
134
unsigned const MachineRegisterInfo * MRI
#define LLVM_EXTERNAL_VISIBILITY
MCAsmBackend * createDXILMCAsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
Definition DirectXMCTargetDesc.cpp:117
static MCRegisterInfo * createDirectXMCRegisterInfo(const Triple &Triple)
Definition DirectXMCTargetDesc.cpp:129
static MCSubtargetInfo * createDirectXMCSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS)
Definition DirectXMCTargetDesc.cpp:125
LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeDirectXTargetMC()
Definition DirectXMCTargetDesc.cpp:136
static MCInstrInfo * createDirectXMCInstrInfo()
Definition DirectXMCTargetDesc.cpp:133
static MCInstPrinter * createDXILMCInstPrinter(const Triple &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
Definition DirectXMCTargetDesc.cpp:102
MCCodeEmitter * createDXILMCCodeEmitter(const MCInstrInfo &MCII, MCContext &Ctx)
Definition DirectXMCTargetDesc.cpp:112
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.