97 "unexpected external TLS symbol");
160 "Expect Darwin or ELF target");
MO_G3 - A symbol operand with this flag (granule 3) represents the high 16-bits of a 64-bit address...
const GlobalValue * getGlobal() const
static const MCSymbolRefExpr * create(const MCSymbol *Symbol, MCContext &Ctx)
MCSymbol * getSymbol(const GlobalValue *GV) const
MO_PAGE - A symbol operand with this flag represents the pc-relative offset of the 4K page containing...
MachineBasicBlock * getMBB() const
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
static const AArch64MCExpr * create(const MCExpr *Expr, VariantKind Kind, MCContext &Ctx)
static MCOperand createExpr(const MCExpr *Val)
Address of indexed Jump Table for switch.
void Lower(const MachineInstr *MI, MCInst &OutMI) const
MachineBasicBlock reference.
const char * getSymbolName() const
MO_G0 - A symbol operand with this flag (granule 0) represents the bits 0-15 of a 64-bit address...
iterator_range< mop_iterator > operands()
print alias Alias Set Printer
MCSymbol * GetExternalSymbolSymbol(const MachineOperand &MO) const
Mask of preserved registers.
const Triple & getTargetTriple() const
MO_G2 - A symbol operand with this flag (granule 2) represents the bits 32-47 of a 64-bit address...
bool isJTI() const
isJTI - Tests if this is a MO_JumpTableIndex operand.
static MCOperand createReg(unsigned Reg)
Base class for the full range of assembler expressions which are needed for parsing.
Name of external global symbol.
MCSymbol * GetJTISymbol(unsigned JTID, bool isLinkerPrivate=false) const
Return the symbol for the specified jump table entry.
bool isGlobal() const
isGlobal - Tests if this is a MO_GlobalAddress operand.
Context object for machine code objects.
MO_GOT - This flag indicates that a symbol operand represents the address of the GOT entry for the sy...
static const MCBinaryExpr * createAdd(const MCExpr *LHS, const MCExpr *RHS, MCContext &Ctx)
Instances of this class represent a single low-level machine instruction.
unsigned getOpcode() const
Returns the opcode of this MachineInstr.
Address of a global value.
unsigned getTargetFlags() const
MO_G1 - A symbol operand with this flag (granule 1) represents the bits 16-31 of a 64-bit address...
TargetMachine & TM
Target machine description.
This class is intended to be used as a driving class for all asm writers.
bool isSymbol() const
isSymbol - Tests if this is a MO_ExternalSymbol operand.
Address of a basic block.
MCOperand lowerSymbolOperandDarwin(const MachineOperand &MO, MCSymbol *Sym) const
int64_t getOffset() const
Return the offset from the symbol in this operand.
MCOperand lowerSymbolOperandELF(const MachineOperand &MO, MCSymbol *Sym) const
bool lowerOperand(const MachineOperand &MO, MCOperand &MCOp) const
MO_HI12 - This flag indicates that a symbol operand represents the bits 13-24 of a 64-bit address...
MCSymbol * getSymbol() const
Return the MCSymbol for this basic block.
MO_TLS - Indicates that the operand being accessed is some kind of thread-local symbol.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
bool isOSDarwin() const
isOSDarwin - Is this a "Darwin" OS (OS X, iOS, or watchOS).
void setOpcode(unsigned Op)
MachineOperand class - Representation of each machine instruction operand.
MCSymbol reference (for debug/eh info)
AArch64MCInstLower(MCContext &ctx, AsmPrinter &printer)
Representation of each machine instruction.
MachineOperandType getType() const
getType - Returns the MachineOperandType for this operand.
bool isOSBinFormatELF() const
Tests whether the OS uses the ELF binary format.
MCSymbol * GetBlockAddressSymbol(const BlockAddress *BA) const
Return the MCSymbol used to satisfy BlockAddress uses of the specified basic block.
MO_PAGEOFF - A symbol operand with this flag represents the offset of that symbol within a 4K page...
MCSymbol * getMCSymbol() const
virtual MCSymbol * GetCPISymbol(unsigned CPID) const
Return the symbol for the specified constant pool entry.
TLSModel::Model getTLSModel(const GlobalValue *GV) const
Returns the TLS model which should be used for the given global variable.
MCSymbol * GetGlobalAddressSymbol(const MachineOperand &MO) const
unsigned getReg() const
getReg - Returns the register number.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const
void addOperand(const MCOperand &Op)
StringRef - Represent a constant reference to a string, i.e.
const BlockAddress * getBlockAddress() const
MO_NC - Indicates whether the linker is expected to check the symbol reference for overflow...
Address of indexed Constant in Constant Pool.
Instances of this class represent operands of the MCInst class.
cl::opt< bool > EnableAArch64ELFLocalDynamicTLSGeneration
MCSymbol * GetExternalSymbolSymbol(StringRef Sym) const
Return the MCSymbol for the specified ExternalSymbol.
static MCOperand createImm(int64_t Val)
static const MCConstantExpr * create(int64_t Value, MCContext &Ctx)