10 #ifndef ARMASMPRINTER_H
11 #define ARMASMPRINTER_H
48 :
AsmPrinter(TM, Streamer), AFI(NULL), MCP(NULL), InConstantPool(
false) {
53 return "ARM Assembly / Object Emitter";
57 const char *Modifier = 0);
59 virtual bool PrintAsmOperand(
const MachineInstr *
MI,
unsigned OpNum,
60 unsigned AsmVariant,
const char *ExtraCode,
62 virtual bool PrintAsmMemoryOperand(
const MachineInstr *
MI,
unsigned OpNum,
63 unsigned AsmVariant,
const char *ExtraCode,
76 virtual
void EmitStartOfAsmFile(
Module &M) LLVM_OVERRIDE;
77 virtual
void EmitEndOfAsmFile(
Module &M) LLVM_OVERRIDE;
78 virtual
void EmitXXStructor(const
Constant *CV) LLVM_OVERRIDE;
85 void emitAttributes();
88 void emitARMAttributeSection();
91 void EmitPatchedInstruction(const
MachineInstr *
MI,
unsigned TargetOpc);
96 bool emitPseudoExpansionLowering(
MCStreamer &OutStreamer,
101 virtual
void EmitDwarfRegOp(const
MachineLocation &MLoc,
bool Indirect) const
104 virtual
unsigned getISAEncoding() LLVM_OVERRIDE {
106 if (!Subtarget->isTargetDarwin())
108 return Subtarget->isThumb() ?
114 MCSymbol *GetARMJTIPICJumpTableLabel2(
unsigned uid,
unsigned uid2)
const;
116 MCSymbol *GetARMSJLJEHLabel()
const;
The machine constant pool.
virtual const char * getPassName() const LLVM_OVERRIDE
The main container class for the LLVM Intermediate Representation.
static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol, HexagonAsmPrinter &Printer)
LLVM Constant Representation.
#define LLVM_LIBRARY_VISIBILITY
ARMAsmPrinter(TargetMachine &TM, MCStreamer &Streamer)
virtual void EmitConstantPool() LLVM_OVERRIDE
const STC & getSubtarget() const