18 #define DEBUG_TYPE "mipsmcexpr"
34 if (isa<MCBinaryExpr>(BE->
getLHS())) {
35 if (!isa<MCConstantExpr>(BE->
getRHS()))
37 BE = cast<MCBinaryExpr>(BE->
getLHS());
39 return (isa<MCSymbolRefExpr>(BE->
getLHS())
40 && isa<MCSymbolRefExpr>(BE->
getRHS()));
bool evaluateAsRelocatableImpl(MCValue &Res, const MCAsmLayout *Layout, const MCFixup *Fixup) const override
const MCExpr * getSubExpr() const
getSubExpr - Get the child of this expression.
This represents an "assembler immediate".
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
Encapsulates the layout of an assembly file at a particular point in time.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Base class for the full range of assembler expressions which are needed for parsing.
Context object for machine code objects.
void visitUsedExpr(MCStreamer &Streamer) const override
This class is intended to be used as a base class for asm properties and features specific to the tar...
const MCExpr * getLHS() const
Get the left-hand side expression of the binary operator.
void print(raw_ostream &OS, const MCAsmInfo *MAI) const
Streaming machine code generation interface.
static bool isSupportedBinaryExpr(MCSymbolRefExpr::VariantKind VK, const MCBinaryExpr *BE)
void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override
Binary assembler expressions.
static const MipsMCExpr * create(MCSymbolRefExpr::VariantKind VK, const MCExpr *Expr, MCContext &Ctx)
PowerPC TLS Dynamic Call Fixup
bool evaluateAsRelocatable(MCValue &Res, const MCAsmLayout *Layout, const MCFixup *Fixup) const
Try to evaluate the expression to a relocatable value, i.e.
void visitUsedExpr(const MCExpr &Expr)
const MCExpr * getRHS() const
Get the right-hand side expression of the binary operator.
This class implements an extremely fast bulk output stream that can only output to a stream...