LLVM: lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCTARGETDESC_H
14#define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCTARGETDESC_H
15
17#include
18#include
19#include
20
21namespace llvm {
41
42
43
49
50
51
57
58namespace X86_MC {
60
62
64
65
66
68
69
70
71
73 const MCSubtargetInfo &STI);
74
75
76
77
79
80
81
82
83#ifndef NDEBUG
85#endif
86
87
89 int MemoryOperand, uint64_t TSFlags);
90
91
92
94 StringRef FS);
95
96void emitInstruction(MCObjectStreamer &, const MCInst &Inst,
97 const MCSubtargetInfo &STI);
98
99void emitPrefix(MCCodeEmitter &MCE, const MCInst &MI, SmallVectorImpl &CB,
100 const MCSubtargetInfo &STI);
101}
102
105
114
115
119
120
123
124
125
126
127
129 std::unique_ptr &&AB,
130 std::unique_ptr &&OW,
131 std::unique_ptr &&CE);
132
134 std::unique_ptr &&MAB,
135 std::unique_ptr &&MOW,
136 std::unique_ptr &&MCE);
137
138
139std::unique_ptr
141
142
143std::unique_ptr
145
146std::unique_ptr
148
149
150
151
152
153
155 bool High = false);
156}
157
158
159
160
161
162#define GET_REGINFO_ENUM
163#include "X86GenRegisterInfo.inc"
164
165
166
167#define GET_INSTRINFO_ENUM
168#define GET_INSTRINFO_MC_HELPER_DECLS
169#include "X86GenInstrInfo.inc"
170
171#define GET_SUBTARGETINFO_ENUM
172#include "X86GenSubtargetInfo.inc"
173
174#define GET_X86_MNEMONIC_TABLES_H
175#include "X86GenMnemonicTables.inc"
176
177#endif
unsigned const MachineRegisterInfo * MRI
This file defines the SmallVector class.
Generic interface to target specific assembler backends.
MCCodeEmitter - Generic instruction encoding interface.
Context object for machine code objects.
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.
Streaming object file generation interface.
Base class for classes that define behaviour that is specific to both the target and the object forma...
Defines the object file and target independent interfaces used by the assembler backend to write nati...
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
Wrapper class representing physical registers. Should be passed by value.
Streaming machine code generation interface.
Generic base class for all target subtargets.
Target specific streamer interface.
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.
formatted_raw_ostream - A raw_ostream that wraps another one and keeps track of line and column posit...
@ C
The default llvm calling convention, compatible with C.
Flavour of dwarf regnumbers.
Definition X86MCTargetDesc.h:44
@ X86_64
Definition X86MCTargetDesc.h:46
@ X86_32_DarwinEH
Definition X86MCTargetDesc.h:46
@ X86_32_Generic
Definition X86MCTargetDesc.h:46
Native X86 register numbers.
Definition X86MCTargetDesc.h:52
@ ESI
Definition X86MCTargetDesc.h:54
@ EBX
Definition X86MCTargetDesc.h:54
@ ESP
Definition X86MCTargetDesc.h:54
@ EAX
Definition X86MCTargetDesc.h:54
@ ECX
Definition X86MCTargetDesc.h:54
@ EBP
Definition X86MCTargetDesc.h:54
@ EDI
Definition X86MCTargetDesc.h:54
@ EDX
Definition X86MCTargetDesc.h:54
bool is32BitMemOperand(const MCInst &MI, unsigned Op)
bool is16BitMemOperand(const MCInst &MI, unsigned Op, const MCSubtargetInfo &STI)
bool hasLockPrefix(const MCInst &MI)
Returns true if this instruction has a LOCK prefix.
void initLLVMToSEHAndCVRegMapping(MCRegisterInfo *MRI)
bool needsAddressSizeOverride(const MCInst &MI, const MCSubtargetInfo &STI, int MemoryOperand, uint64_t TSFlags)
Returns true if this instruction needs an Address-Size override prefix.
void emitPrefix(MCCodeEmitter &MCE, const MCInst &MI, SmallVectorImpl< char > &CB, const MCSubtargetInfo &STI)
std::string ParseX86Triple(const Triple &TT)
void emitInstruction(MCObjectStreamer &, const MCInst &Inst, const MCSubtargetInfo &STI)
MCSubtargetInfo * createX86MCSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS)
Create a X86 MCSubtargetInfo instance.
bool is64BitMemOperand(const MCInst &MI, unsigned Op)
unsigned getDwarfRegFlavour(const Triple &TT, bool isEH)
This is an optimization pass for GlobalISel generic memory operations.
MCTargetStreamer * createX86ObjectTargetStreamer(MCStreamer &S, const MCSubtargetInfo &STI)
Implements X86-only directives for object files.
MCRegister getX86SubSuperRegister(MCRegister Reg, unsigned Size, bool High=false)
MCAsmBackend * createX86_64AsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
std::unique_ptr< MCObjectTargetWriter > createX86WinCOFFObjectWriter(bool Is64Bit)
Construct an X86 Win COFF object writer.
MCTargetStreamer * createX86AsmTargetStreamer(MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrinter)
Implements X86-only directives for assembly emission.
MCCodeEmitter * createX86MCCodeEmitter(const MCInstrInfo &MCII, MCContext &Ctx)
MCStreamer * createX86ELFStreamer(const Triple &T, MCContext &Context, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&MOW, std::unique_ptr< MCCodeEmitter > &&MCE)
MCStreamer * createX86WinCOFFStreamer(MCContext &C, std::unique_ptr< MCAsmBackend > &&AB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE)
Construct an X86 Windows COFF machine code streamer which will generate PE/COFF format object files.
std::unique_ptr< MCObjectTargetWriter > createX86MachObjectWriter(bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
Construct an X86 Mach-O object writer.
DWARFExpression::Operation Op
std::unique_ptr< MCObjectTargetWriter > createX86ELFObjectWriter(bool IsELF64, uint8_t OSABI, uint16_t EMachine)
Construct an X86 ELF object writer.
MCAsmBackend * createX86_32AsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)