37 MachineOperandType MOTy,
179 unsigned offset)
const {
197 return LowerSymbolOperand(MO, MOTy, offset);
215 void MipsMCInstLower::
228 void MipsMCInstLower::lowerLongBranchADDiu(
234 for (
unsigned I = 0,
E = 2;
I !=
E; ++
I) {
244 bool MipsMCInstLower::lowerLongBranch(
const MachineInstr *MI,
249 case Mips::LONG_BRANCH_LUi:
250 lowerLongBranchLUi(MI, OutMI);
252 case Mips::LONG_BRANCH_ADDiu:
255 case Mips::LONG_BRANCH_DADDiu:
268 if (lowerLongBranch(MI, OutMI))
const GlobalValue * getGlobal() const
static const MCSymbolRefExpr * create(const MCSymbol *Symbol, MCContext &Ctx)
MCSymbol * getSymbol(const GlobalValue *GV) const
LLVM_ATTRIBUTE_NORETURN void report_fatal_error(Error Err, bool gen_crash_diag=true)
Report a serious error, calling any installed error handler.
MO_TLSLDM - Represents the offset into the global offset table at which.
MachineBasicBlock * getMBB() const
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
void Lower(const MachineInstr *MI, MCInst &OutMI) const
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.
Address of indexed Jump Table for switch.
MachineBasicBlock reference.
const char * getSymbolName() const
void Initialize(MCContext *C)
Mask of preserved registers.
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.
Represent a reference to a symbol from inside an expression.
MO_ABS_HI/LO - Represents the hi or low part of an absolute symbol address.
unsigned getNumOperands() const
Access to explicit operands of the instruction.
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.
unsigned getOpcode() const
Returns the opcode of this MachineInstr.
static GCRegistry::Add< CoreCLRGC > E("coreclr","CoreCLR-compatible GC")
MO_GPREL - Represents the offset from the current gp value to be used for the relocatable object file...
Address of a global value.
unsigned getTargetFlags() const
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)
const MachineOperand & getOperand(unsigned i) const
This class is intended to be used as a driving class for all asm writers.
Address of a basic block.
int64_t getOffset() const
Return the offset from the symbol in this operand.
Binary assembler expressions.
MCSymbol * getSymbol() const
Return the MCSymbol for this basic block.
#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)
MachineOperand class - Representation of each machine instruction operand.
MipsMCInstLower(MipsAsmPrinter &asmprinter)
static GCRegistry::Add< ShadowStackGC > C("shadow-stack","Very portable GC for uncooperative code generators")
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.
MachineOperandType getType() const
getType - Returns the MachineOperandType for this operand.
MCSymbol * GetBlockAddressSymbol(const BlockAddress *BA) const
Return the MCSymbol used to satisfy BlockAddress uses of the specified basic block.
MCSymbol * getMCSymbol() const
virtual MCSymbol * GetCPISymbol(unsigned CPID) const
Return the symbol for the specified constant pool entry.
unsigned getReg() const
getReg - Returns the register number.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
MCOperand LowerOperand(const MachineOperand &MO, unsigned offset=0) const
void addOperand(const MCOperand &Op)
const BlockAddress * getBlockAddress() const
Address of indexed Constant in Constant Pool.
Instances of this class represent operands of the MCInst class.
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)