9#ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZTARGETSTREAMER_H
10#define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZTARGETSTREAMER_H
23class SystemZHLASMAsmStreamer;
33 if (MCI_STI_A.second != MCI_STI_B.second)
34 return uintptr_t(MCI_STI_A.second) < uintptr_t(MCI_STI_B.second);
35 const MCInst &
A = MCI_STI_A.first;
36 const MCInst &
B = MCI_STI_B.first;
37 assert(
A.getNumOperands() ==
B.getNumOperands() &&
38 A.getNumOperands() == 5 &&
A.getOperand(2).getImm() == 1 &&
39 B.getOperand(2).getImm() == 1 &&
"Unexpected EXRL target MCInst");
40 if (
A.getOpcode() !=
B.getOpcode())
41 return A.getOpcode() <
B.getOpcode();
42 if (
A.getOperand(0).getReg() !=
B.getOperand(0).getReg())
43 return A.getOperand(0).getReg() <
B.getOperand(0).getReg();
44 if (
A.getOperand(1).getImm() !=
B.getOperand(1).getImm())
45 return A.getOperand(1).getImm() <
B.getOperand(1).getImm();
46 if (
A.getOperand(3).getReg() !=
B.getOperand(3).getReg())
47 return A.getOperand(3).getReg() <
B.getOperand(3).getReg();
48 if (
A.getOperand(4).getImm() !=
B.getOperand(4).getImm())
49 return A.getOperand(4).getImm() <
B.getOperand(4).getImm();
53 typedef std::map<MCInstSTIPair, MCSymbol *, CmpMCInst>
EXRLT2SymMap;
102 OS <<
"\t.machine " << CPUOrCommand <<
"\n";
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
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.
Streaming machine code generation interface.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Target specific streamer interface.
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)
const MCExpr * createWordDiffExpr(MCContext &Ctx, const MCSymbol *Hi, const MCSymbol *Lo) override
SystemZTargetGOFFStreamer(MCStreamer &S)
SystemZTargetHLASMStreamer(MCStreamer &S, formatted_raw_ostream &OS)
void emitExtern(StringRef Sym) override
SystemZHLASMAsmStreamer & getHLASMStreamer()
const MCExpr * createWordDiffExpr(MCContext &Ctx, const MCSymbol *Hi, const MCSymbol *Lo) override
virtual void emitMachine(StringRef CPUOrCommand)
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
virtual void emitExtern(StringRef Str)
std::map< MCInstSTIPair, MCSymbol *, CmpMCInst > EXRLT2SymMap
This is an optimization pass for GlobalISel generic memory operations.
bool operator()(const MCInstSTIPair &MCI_STI_A, const MCInstSTIPair &MCI_STI_B) const