30 WebAssemblyMCInstLower::GetGlobalAddressSymbol(
const MachineOperand &MO)
const {
34 MCSymbol *WebAssemblyMCInstLower::GetExternalSymbolSymbol(
99 "WebAssembly does not use target flags on GlobalAddresses");
100 MCOp = LowerSymbolOperand(GetGlobalAddressSymbol(MO), MO.
getOffset(),
107 "WebAssembly uses only one target flag bit on ExternalSymbols");
108 MCOp = LowerSymbolOperand(GetExternalSymbolSymbol(MO), 0,
const MachineFunction * getParent() const
Return the MachineFunction containing this basic block.
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.
const ConstantFP * getFPImm() const
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
float convertToFloat() const
static MCOperand createExpr(const MCExpr *Val)
Type * getValueType() const
This file declares the class to lower WebAssembly MachineInstrs to their corresponding MCInst records...
bool isDoubleTy() const
Return true if this is 'double', a 64-bit IEEE fp type.
MachineBasicBlock reference.
const char * getSymbolName() const
static MCOperand createReg(unsigned Reg)
Base class for the full range of assembler expressions which are needed for parsing.
Name of external global symbol.
unsigned getNumOperands() const
Access to explicit operands of the instruction.
unsigned getWAReg(unsigned Reg) const
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.
const MachineBasicBlock * getParent() const
Address of a global value.
unsigned getTargetFlags() const
This file contains the declarations for the subclasses of Constant, which represent the different fla...
const MachineOperand & getOperand(unsigned i) const
bool isFloatTy() const
Return true if this is 'float', a 32-bit IEEE fp type.
ConstantFP - Floating Point Values [float, double].
Ty * getInfo()
getInfo - Keep track of various per-function pieces of information for backends that would like to do...
int64_t getOffset() const
Return the offset from the symbol in this operand.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
void setOpcode(unsigned Op)
bool isFunctionTy() const
True if this is an instance of FunctionType.
MachineOperand class - Representation of each machine instruction operand.
Type * getType() const
All values are typed, get the type of this value.
void dump(const TargetInstrInfo *TII=nullptr) const
static MCOperand createFPImm(double Val)
void Lower(const MachineInstr *MI, MCInst &OutMI) const
double convertToDouble() const
Representation of each machine instruction.
MachineOperandType getType() const
getType - Returns the MachineOperandType for this operand.
This class is derived from MachineFunctionInfo and contains private WebAssembly-specific information ...
This file declares WebAssembly-specific per-machine-function information.
const APFloat & getValueAPF() const
unsigned getReg() const
getReg - Returns the register number.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Floating-point immediate operand.
void addOperand(const MCOperand &Op)
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)