112 case SystemZ::CallBRASL:
118 case SystemZ::CallBASR:
124 case SystemZ::CallJG:
129 case SystemZ::CallBR:
153 case SystemZ::IILF64:
159 case SystemZ::IIHF64:
165 case SystemZ::RISBHH:
166 case SystemZ::RISBHL:
170 case SystemZ::RISBLH:
171 case SystemZ::RISBLL:
175 case SystemZ::VLVGP32:
220 #define LOWER_LOW(NAME) \
221 case SystemZ::NAME##64: LoweredMI = lowerRILow(MI, SystemZ::NAME); break
237 #define LOWER_HIGH(NAME) \
238 case SystemZ::NAME##64: LoweredMI = lowerRIHigh(MI, SystemZ::NAME); break
254 case SystemZ::Serialize:
264 Lower.lower(MI, LoweredMI);
299 const char *ExtraCode,
301 if (ExtraCode && *ExtraCode ==
'n') {
316 const char *ExtraCode,
std::unique_ptr< MCStreamer > OutStreamer
This is the MCStreamer object for the file we are generating.
static void printAddress(unsigned Base, int64_t Disp, unsigned Index, raw_ostream &O)
MCSymbol * getSymbol(const GlobalValue *GV) const
static const MCSymbolRefExpr * create(const MCSymbol *Symbol, MCContext &Ctx)
MCContext & OutContext
This is the context for the output file that we are streaming.
void LLVMInitializeSystemZAsmPrinter()
const MachineFunction * MF
The current machine function.
bool hasFastSerialization() const
static MCInst lowerSubvectorLoad(const MachineInstr *MI, unsigned Opcode)
const TargetSubtargetInfo & getSubtarget() const
getSubtarget - Return the subtarget for which this machine code is being compiled.
unsigned getRegAsGRH32(unsigned Reg)
bool isImm() const
isImm - Tests if this is a MO_Immediate operand.
unsigned getRegAsGR32(unsigned Reg)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Base class for the full range of assembler expressions which are needed for parsing.
Represent a reference to a symbol from inside an expression.
void EmitMachineConstantPoolValue(MachineConstantPoolValue *MCPV) override
Context object for machine code objects.
MCContext & getContext() const
MCInstBuilder & addExpr(const MCExpr *Val)
Add a new MCExpr operand.
Instances of this class represent a single low-level machine instruction.
unsigned getOpcode() const
Returns the opcode of this MachineInstr.
static MCInst lowerSubvectorStore(const MachineInstr *MI, unsigned Opcode)
MCInstBuilder & addReg(unsigned Reg)
Add a new register operand.
Control flow instructions. These all have token chains.
const MCAsmInfo * MAI
Target Asm Printer information.
static MCInst lowerRIEfLow(const MachineInstr *MI, unsigned Opcode)
const MachineOperand & getOperand(unsigned i) const
TargetMachine & TM
Target machine description.
static MCInst lowerRIHigh(const MachineInstr *MI, unsigned Opcode)
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang","erlang-compatible garbage collector")
MCInstBuilder & addImm(int64_t Val)
Add a new integer immediate operand.
Abstract base class for all machine specific constantpool value subclasses.
static const MCSymbolRefExpr * getTLSGetOffset(MCContext &Context)
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode, raw_ostream &OS) override
Print the specified operand of MI, an INLINEASM instruction, using the specified assembler variant...
uint64_t getTypeAllocSize(Type *Ty) const
Returns the offset in bytes between successive objects of the specified type, including alignment pad...
const DataLayout * getDataLayout() const
Deprecated in 3.7, will be removed in 3.8.
bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode, raw_ostream &OS) override
Print the specified operand of MI, an INLINEASM instruction, using the specified assembler variant as...
void EmitToStreamer(MCStreamer &S, const MCInst &Inst)
static MCSymbolRefExpr::VariantKind getModifierVariantKind(SystemZCP::SystemZCPModifier Modifier)
unsigned getRegAsGR64(unsigned Reg)
unsigned getRegAsVR128(unsigned Reg)
bool isCompare(QueryType Type=IgnoreBundle) const
Return true if this instruction is a comparison.
static MCInst lowerRILow(const MachineInstr *MI, unsigned Opcode)
Representation of each machine instruction.
MCSymbol * getOrCreateSymbol(const Twine &Name)
Lookup the symbol inside with the specified Name.
void EmitInstruction(const MachineInstr *MI) override
Targets should implement this to emit instructions.
static const MCSymbolRefExpr * getGlobalOffsetTable(MCContext &Context)
unsigned getReg() const
getReg - Returns the register number.
static void printOperand(const MCOperand &MO, const MCAsmInfo *MAI, raw_ostream &O)
RegisterAsmPrinter - Helper template for registering a target specific assembly printer, for use in the target machine initialization function.
This class implements an extremely fast bulk output stream that can only output to a stream...
A SystemZ-specific constant pool value.
StringRef - Represent a constant reference to a string, i.e.
Instances of this class represent operands of the MCInst class.