9#ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZTARGETSTREAMER_H
10#define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZTARGETSTREAMER_H
37 if (MCI_STI_A.second != MCI_STI_B.second)
39 const MCInst &
A = MCI_STI_A.first;
40 const MCInst &
B = MCI_STI_B.first;
41 assert(
A.getNumOperands() ==
B.getNumOperands() &&
42 A.getNumOperands() == 5 &&
A.getOperand(2).getImm() == 1 &&
43 B.getOperand(2).getImm() == 1 &&
"Unexpected EXRL target MCInst");
44 if (
A.getOpcode() !=
B.getOpcode())
45 return A.getOpcode() <
B.getOpcode();
46 if (
A.getOperand(0).getReg() !=
B.getOperand(0).getReg())
47 return A.getOperand(0).getReg() <
B.getOperand(0).getReg();
48 if (
A.getOperand(1).getImm() !=
B.getOperand(1).getImm())
49 return A.getOperand(1).getImm() <
B.getOperand(1).getImm();
50 if (
A.getOperand(3).getReg() !=
B.getOperand(3).getReg())
51 return A.getOperand(3).getReg() <
B.getOperand(3).getReg();
52 if (
A.getOperand(4).getImm() !=
B.getOperand(4).getImm())
53 return A.getOperand(4).getImm() <
B.getOperand(4).getImm();
57 typedef std::map<MCInstSTIPair, MCSymbol *, CmpMCInst>
EXRLT2SymMap;
102 static_cast<MCSymbolGOFF *
>(Sym)->setExternalName(Name);
148 OS <<
"\t.machine " << CPUOrCommand <<
"\n";
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
This file declares the MCSectionGOFF class, which contains all of the necessary machine code sections...
This file contains the MCSymbolGOFF class.
This file defines the SmallVector class.
Context object for machine code objects.
Base class for the full range of assembler expressions which are needed for parsing.
Instances of this class represent a single low-level machine instruction.
Instances of this class represent a uniqued identifier for a section in the current translation unit.
Streaming machine code generation interface.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
MCTargetStreamer(MCStreamer &S)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Represent a constant reference to a string, i.e.
void emitMachine(StringRef CPUOrCommand) override
SystemZTargetELFStreamer(MCStreamer &S)
void emitMachine(StringRef CPUOrCommand) override
SystemZTargetGNUStreamer(MCStreamer &S, formatted_raw_ostream &OS)
const MCExpr * createWordDiffExpr(MCContext &Ctx, const MCSymbol *Hi, const MCSymbol *Lo) override
SystemZTargetGOFFStreamer(MCStreamer &S)
SystemZTargetHLASMStreamer(MCStreamer &S, formatted_raw_ostream &OS)
SystemZHLASMAsmStreamer & getHLASMStreamer()
const MCExpr * createWordDiffExpr(MCContext &Ctx, const MCSymbol *Hi, const MCSymbol *Lo) override
virtual void emitMachine(StringRef CPUOrCommand)
void emitConstantPools() override
SystemZTargetStreamer(MCStreamer &S)
std::pair< MCInst, const MCSubtargetInfo * > MCInstSTIPair
EXRLT2SymMap EXRLTargets2Sym
std::map< MCInstSTIPair, MCSymbol *, CmpMCInst > EXRLT2SymMap
virtual const MCExpr * createWordDiffExpr(MCContext &Ctx, const MCSymbol *Hi, const MCSymbol *Lo)=0
SystemZTargetzOSStreamer(MCStreamer &S)
SmallVector< PPA1Info, 0 > DeferredPPA1
void emitExternalName(MCSymbol *Sym, StringRef Name)
void emitADA(MCSymbol *Sym, MCSection *Section)
void emitConstantPools() override
void emitPPA1(PPA1Info &Info)
void emitExternalName(MCSection *Sec, StringRef Name)
This is an optimization pass for GlobalISel generic memory operations.
bool operator()(const MCInstSTIPair &MCI_STI_A, const MCInstSTIPair &MCI_STI_B) const
Information about a single function needed to emit a PPA1 block.
uint32_t FrameAndVROffset
uint32_t FrameAndFPROffset
uint64_t PersonalityADADisp