10 #ifndef LLVM_LIB_TARGET_ARM_ARMASMPRINTER_H
11 #define LLVM_LIB_TARGET_ARM_ARMASMPRINTER_H
19 class ARMFunctionInfo;
21 class MachineConstantPool;
56 std::unique_ptr<MCStreamer> Streamer);
59 return "ARM Assembly / Object Emitter";
65 unsigned AsmVariant,
const char *ExtraCode,
68 unsigned AsmVariant,
const char *ExtraCode,
76 void EmitJumpTableTBInst(
const MachineInstr *
MI,
unsigned OffsetWidth);
83 void EmitFunctionBodyEnd()
override;
84 void EmitFunctionEntryLabel()
override;
85 void EmitStartOfAsmFile(
Module &M)
override;
86 void EmitEndOfAsmFile(
Module &M)
override;
87 void EmitXXStructor(
const Constant *CV)
override;
94 void emitAttributes();
97 void EmitPatchedInstruction(
const MachineInstr *
MI,
unsigned TargetOpc);
102 bool emitPseudoExpansionLowering(
MCStreamer &OutStreamer,
120 MCSymbol *GetARMJTIPICJumpTableLabel(
unsigned uid)
const;
122 MCSymbol *GetARMSJLJEHLabel()
const;
The MachineConstantPool class keeps track of constants referenced by a function which must be spilled...
bool isOSBinFormatMachO() const
Tests whether the environment is MachO.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
A Module instance is used to store all the information related to an LLVM module. ...
void EmitConstantPool() override
Print to the current output stream assembly representations of the constants in the constant pool MCP...
static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol, HexagonAsmPrinter &Printer)
unsigned getISAEncoding() override
Get the value for DW_AT_APPLE_isa. Zero if no isa encoding specified.
static bool isThumb(const MCSubtargetInfo &STI)
const Triple & getTargetTriple() const
static void printOperand(raw_ostream &OS, uint8_t Opcode, unsigned OperandIdx, uint64_t Operand, uint64_t CodeAlignmentFactor, int64_t DataAlignmentFactor)
Print Opcode's operand number OperandIdx which has value Operand.
ArchType getArch() const
getArch - Get the parsed architecture type of this triple.
SubArchType getSubArch() const
getSubArch - get the parsed subarchitecture type for this triple.
const char * getPassName() const override
getPassName - Return a nice clean name for a pass.
Streaming machine code generation interface.
This is an important base class in LLVM.
This class is intended to be used as a driving class for all asm writers.
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library...
Abstract base class for all machine specific constantpool value subclasses.
Triple - Helper class for working with autoconf configuration names.
MachineOperand class - Representation of each machine instruction operand.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
Representation of each machine instruction.
ARMFunctionInfo - This class is derived from MachineFunctionInfo and contains private ARM-specific in...
MCSubtargetInfo - Generic base class for all target subtargets.
This class implements an extremely fast bulk output stream that can only output to a stream...
Primary interface to the complete machine description for the target machine.
Instances of this class represent operands of the MCInst class.