181 unsigned offset)
const {
199 return LowerSymbolOperand(MO, MOTy, offset);
217 void MipsMCInstLower::
226 switch (TargetFlags) {
255 void MipsMCInstLower::lowerLongBranchADDiu(
const MachineInstr *MI,
256 MCInst &OutMI,
int Opcode)
const {
261 switch (TargetFlags) {
279 for (
unsigned I = 0,
E = 2;
I !=
E; ++
I) {
297 bool MipsMCInstLower::lowerLongBranch(
const MachineInstr *MI,
302 case Mips::LONG_BRANCH_LUi:
303 case Mips::LONG_BRANCH_LUi2Op:
304 case Mips::LONG_BRANCH_LUi2Op_64:
305 lowerLongBranchLUi(MI, OutMI);
307 case Mips::LONG_BRANCH_ADDiu:
308 case Mips::LONG_BRANCH_ADDiu2Op:
309 lowerLongBranchADDiu(MI, OutMI, Mips::ADDiu);
311 case Mips::LONG_BRANCH_DADDiu:
312 case Mips::LONG_BRANCH_DADDiu2Op:
313 lowerLongBranchADDiu(MI, OutMI, Mips::DADDiu);
319 if (lowerLongBranch(MI, OutMI))
unsigned getTargetFlags() const
MachineBasicBlock * getMBB() const
MCSymbol * GetExternalSymbolSymbol(StringRef Sym) const
Return the MCSymbol for the specified ExternalSymbol.
static const MCSymbolRefExpr * create(const MCSymbol *Symbol, MCContext &Ctx)
LLVM_ATTRIBUTE_NORETURN void report_fatal_error(Error Err, bool gen_crash_diag=true)
Report a serious error, calling any installed error handler.
This class represents lattice values for constants.
MO_TLSLDM - Represents the offset into the global offset table at which.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
MO_HIGHER/HIGHEST - Represents the highest or higher half word of a 64-bit symbol address...
static MCOperand createExpr(const MCExpr *Val)
MO_GOT_HI16/LO16, MO_CALL_HI16/LO16 - Relocations used for large GOTs.
MO_TLSGD - Represents the offset into the global offset table at which.
unsigned getReg() const
getReg - Returns the register number.
Address of indexed Jump Table for switch.
MachineBasicBlock reference.
void Initialize(MCContext *C)
Mask of preserved registers.
static MCOperand createReg(unsigned Reg)
unsigned getNumOperands() const
Retuns the total number of operands.
Base class for the full range of assembler expressions which are needed for parsing.
Name of external global symbol.
Represent a reference to a symbol from inside an expression.
unsigned getOpcode() const
Returns the opcode of this MachineInstr.
const char * getSymbolName() const
MO_ABS_HI/LO - Represents the hi or low part of an absolute symbol address.
Context object for machine code objects.
static const MCBinaryExpr * createSub(const MCExpr *LHS, const MCExpr *RHS, MCContext &Ctx)
static const MCBinaryExpr * createAdd(const MCExpr *LHS, const MCExpr *RHS, MCContext &Ctx)
Instances of this class represent a single low-level machine instruction.
MO_GPREL - Represents the offset from the current gp value to be used for the relocatable object file...
Address of a global value.
MO_GOT_CALL - Represents the offset into the global offset table at which the address of a call site ...
static const MipsMCExpr * createGpOff(MipsExprKind Kind, const MCExpr *Expr, MCContext &Ctx)
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
const GlobalValue * getGlobal() const
This class is intended to be used as a driving class for all asm writers.
void Lower(const MachineInstr *MI, MCInst &OutMI) const
Address of a basic block.
Binary assembler expressions.
virtual MCSymbol * GetCPISymbol(unsigned CPID) const
Return the symbol for the specified constant pool entry.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
MO_GOTTPREL - Represents the offset from the thread pointer (Initial.
MO_GOT - Represents the offset into the global offset table at which the address the relocation entry...
void setOpcode(unsigned Op)
MCSymbol * GetBlockAddressSymbol(const BlockAddress *BA) const
Return the MCSymbol used to satisfy BlockAddress uses of the specified basic block.
MCSymbol * getSymbol(const GlobalValue *GV) const
MachineOperand class - Representation of each machine instruction operand.
MipsMCInstLower(MipsAsmPrinter &asmprinter)
MCSymbol reference (for debug/eh info)
static const MipsMCExpr * create(MipsExprKind Kind, const MCExpr *Expr, MCContext &Ctx)
MO_TPREL_HI/LO - Represents the hi and low part of the offset from.
Representation of each machine instruction.
MCSymbol * GetJTISymbol(unsigned JTID, bool isLinkerPrivate=false) const
Return the symbol for the specified jump table entry.
int64_t getOffset() const
Return the offset from the symbol in this operand.
const BlockAddress * getBlockAddress() const
MCSymbol * getSymbol() const
Return the MCSymbol for this basic block.
MCOperand LowerOperand(const MachineOperand &MO, unsigned offset=0) const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
MCSymbol * getMCSymbol() const
void addOperand(const MCOperand &Op)
Address of indexed Constant in Constant Pool.
const MachineOperand & getOperand(unsigned i) const
Instances of this class represent operands of the MCInst class.
MachineOperandType getType() const
getType - Returns the MachineOperandType for this operand.
static MCOperand createImm(int64_t Val)
static const MCConstantExpr * create(int64_t Value, MCContext &Ctx)
Helper operand used to generate R_MIPS_JALR.