9#ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZTARGETSTREAMER_H
10#define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZTARGETSTREAMER_H
36 if (MCI_STI_A.second != MCI_STI_B.second)
37 return uintptr_t(MCI_STI_A.second) < uintptr_t(MCI_STI_B.second);
38 const MCInst &
A = MCI_STI_A.first;
39 const MCInst &
B = MCI_STI_B.first;
40 assert(
A.getNumOperands() ==
B.getNumOperands() &&
41 A.getNumOperands() == 5 &&
A.getOperand(2).getImm() == 1 &&
42 B.getOperand(2).getImm() == 1 &&
"Unexpected EXRL target MCInst");
43 if (
A.getOpcode() !=
B.getOpcode())
44 return A.getOpcode() <
B.getOpcode();
45 if (
A.getOperand(0).getReg() !=
B.getOperand(0).getReg())
46 return A.getOperand(0).getReg() <
B.getOperand(0).getReg();
47 if (
A.getOperand(1).getImm() !=
B.getOperand(1).getImm())
48 return A.getOperand(1).getImm() <
B.getOperand(1).getImm();
49 if (
A.getOperand(3).getReg() !=
B.getOperand(3).getReg())
50 return A.getOperand(3).getReg() <
B.getOperand(3).getReg();
51 if (
A.getOperand(4).getImm() !=
B.getOperand(4).getImm())
52 return A.getOperand(4).getImm() <
B.getOperand(4).getImm();
56 typedef std::map<MCInstSTIPair, MCSymbol *, CmpMCInst>
EXRLT2SymMap;
115 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.
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)
StringRef - 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)
virtual void emitExternalName(MCSection *Sec, StringRef Name) override
const MCExpr * createWordDiffExpr(MCContext &Ctx, const MCSymbol *Hi, const MCSymbol *Lo) override
virtual void emitExternalName(MCSymbol *Sym, StringRef Name) override
SystemZTargetGOFFStreamer(MCStreamer &S)
virtual void emitExternalName(MCSymbol *Sym, StringRef Name) override
virtual void emitExternalName(MCSection *Sec, StringRef Name) override
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)
virtual void emitExternalName(MCSection *Sec, StringRef Name)
void emitConstantPools() override
virtual const MCExpr * createWordDiffExpr(MCContext &Ctx, const MCSymbol *Hi, const MCSymbol *Lo)
SystemZTargetStreamer(MCStreamer &S)
std::pair< MCInst, const MCSubtargetInfo * > MCInstSTIPair
EXRLT2SymMap EXRLTargets2Sym
std::map< MCInstSTIPair, MCSymbol *, CmpMCInst > EXRLT2SymMap
virtual void emitExternalName(MCSymbol *Sym, 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