LLVM
8.0.1
|
Binary assembler expressions. More...
#include "llvm/MC/MCExpr.h"
Public Types | |
enum | Opcode { Add, And, Div, EQ, GT, GTE, LAnd, LOr, LT, LTE, Mod, Mul, NE, Or, Shl, AShr, LShr, Sub, Xor } |
Public Types inherited from llvm::MCExpr | |
enum | ExprKind { Binary, Constant, SymbolRef, Unary, Target } |
Public Member Functions | |
Accessors | |
Opcode | getOpcode () const |
Get the kind of this binary expression. More... | |
const MCExpr * | getLHS () const |
Get the left-hand side expression of the binary operator. More... | |
const MCExpr * | getRHS () const |
Get the right-hand side expression of the binary operator. More... | |
Public Member Functions inherited from llvm::MCExpr | |
MCExpr (const MCExpr &)=delete | |
MCExpr & | operator= (const MCExpr &)=delete |
ExprKind | getKind () const |
SMLoc | getLoc () const |
void | print (raw_ostream &OS, const MCAsmInfo *MAI, bool InParens=false) const |
void | dump () const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAsmLayout &Layout, const SectionAddrMap &Addrs) const |
Try to evaluate the expression to an absolute value. More... | |
bool | evaluateAsAbsolute (int64_t &Res) const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAssembler &Asm) const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAssembler *Asm) const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAsmLayout &Layout) const |
bool | evaluateKnownAbsolute (int64_t &Res, const MCAsmLayout &Layout) const |
bool | evaluateAsRelocatable (MCValue &Res, const MCAsmLayout *Layout, const MCFixup *Fixup) const |
Try to evaluate the expression to a relocatable value, i.e. More... | |
bool | evaluateAsValue (MCValue &Res, const MCAsmLayout &Layout) const |
Try to evaluate the expression to the form (a - b + constant) where neither a nor b are variables. More... | |
MCFragment * | findAssociatedFragment () const |
Find the "associated section" for this expression, which is currently defined as the absolute section for constants, or otherwise the section associated with the first defined symbol in the expression. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::MCExpr | |
MCExpr (ExprKind Kind, SMLoc Loc) | |
bool | evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCAsmLayout *Layout, const MCFixup *Fixup, const SectionAddrMap *Addrs, bool InSet) const |
Definition at line 571 of file MCExpr.h.
References llvm::MCExpr::Binary, and llvm::MCExpr::getKind().
|
static |
Definition at line 153 of file MCExpr.cpp.
Referenced by addNegOperand(), buildSymbolDiff(), getGNUBinOpPrecedence(), and RefineErrorLoc().
|
inlinestatic |
Definition at line 461 of file MCExpr.h.
References llvm::MCID::Add.
Referenced by llvm::ARCMCInstLower::ARCMCInstLower(), ConvertDoubleToBytes(), llvm::MCWinCOFFStreamer::EmitCOFFImgRel32(), llvm::MCWinCOFFStreamer::EmitCOFFSecRel32(), llvm::SystemZAsmPrinter::EmitInstruction(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::X86AsmPrinter::EmitInstruction(), llvm::ARMAsmPrinter::EmitJumpTableAddrs(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), llvm::AsmPrinter::EmitLabelPlusOffset(), llvm::ARMAsmPrinter::EmitMachineConstantPoolValue(), EmitSymbolRefWithOfs(), llvm::CodeViewContext::encodeDefRange(), llvm::WinException::endFunclet(), llvm::MipsMCCodeEmitter::getBranchTarget21OpValue(), llvm::MipsMCCodeEmitter::getBranchTarget21OpValueMM(), llvm::MipsMCCodeEmitter::getBranchTarget26OpValue(), llvm::MipsMCCodeEmitter::getBranchTarget26OpValueMM(), llvm::MipsMCCodeEmitter::getBranchTargetOpValue(), llvm::MipsMCCodeEmitter::getBranchTargetOpValue1SImm16(), llvm::MipsMCCodeEmitter::getBranchTargetOpValueLsl2MMR6(), llvm::MipsMCCodeEmitter::getBranchTargetOpValueMMR6(), llvm::MipsTargetObjectFile::getDebugThreadLocalSymbol(), llvm::SystemZMCInstLower::getExpr(), llvm::X86_64MCAsmInfoDarwin::getExprForPersonalitySymbol(), llvm::X86_64MachoTargetObjectFile::getIndirectSymViaGOTPCRel(), llvm::TargetLoweringObjectFileMachO::getIndirectSymViaGOTPCRel(), getRealVLDOpcode(), GetSymbolRef(), llvm::X86_64MachoTargetObjectFile::getTTypeGlobalReference(), getVariantKind(), HasSecRelSymbolRef(), llvm::XCoreMCInstLower::Initialize(), llvm::MipsMCInstLower::Initialize(), isPCRel(), llvm::AsmPrinter::lowerConstant(), lowerSymbolOperand(), llvm::AVRMCInstLower::lowerSymbolOperand(), llvm::MSP430MCInstLower::LowerSymbolOperand(), llvm::LanaiMCInstLower::LowerSymbolOperand(), llvm::AArch64MCInstLower::lowerSymbolOperandCOFF(), llvm::AArch64MCInstLower::lowerSymbolOperandDarwin(), llvm::AArch64MCInstLower::lowerSymbolOperandELF(), printMCExpr(), llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand(), and llvm::MCExternalSymbolizer::tryAddingSymbolicOperand().
|
inlinestatic |
Definition at line 466 of file MCExpr.h.
Referenced by ConvertDoubleToBytes(), and llvm::AsmPrinter::lowerConstant().
|
inlinestatic |
Definition at line 471 of file MCExpr.h.
Referenced by llvm::ARMAsmPrinter::EmitJumpTableTBInst(), and llvm::AsmPrinter::lowerConstant().
|
inlinestatic |
Definition at line 481 of file MCExpr.h.
References llvm::AArch64CC::GT.
|
inlinestatic |
Definition at line 501 of file MCExpr.h.
References llvm::AArch64CC::LT.
|
inlinestatic |
Definition at line 511 of file MCExpr.h.
References llvm::Mod.
Referenced by llvm::AsmPrinter::lowerConstant().
|
inlinestatic |
Definition at line 516 of file MCExpr.h.
Referenced by llvm::AsmPrinter::lowerConstant().
|
inlinestatic |
Definition at line 521 of file MCExpr.h.
References llvm::AArch64CC::NE.
|
inlinestatic |
Definition at line 526 of file MCExpr.h.
Referenced by llvm::AsmPrinter::lowerConstant().
|
inlinestatic |
Definition at line 531 of file MCExpr.h.
Referenced by llvm::AsmPrinter::lowerConstant().
|
inlinestatic |
Definition at line 546 of file MCExpr.h.
Referenced by addNegOperand(), EmitAbsDifference(), llvm::MCStreamer::emitAbsoluteSymbolDiff(), llvm::MCStreamer::emitAbsoluteSymbolDiffAsULEB128(), llvm::AMDGPUTargetELFStreamer::EmitAmdhsaKernelDescriptor(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::AsmPrinter::EmitFunctionBody(), llvm::AMDGPUTargetELFStreamer::EmitHSAMetadata(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::X86AsmPrinter::EmitInstruction(), llvm::AMDGPUTargetELFStreamer::EmitISAVersion(), llvm::ARMAsmPrinter::EmitJumpTableAddrs(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), llvm::ARMAsmPrinter::EmitMachineConstantPoolValue(), llvm::MipsAsmPrinter::EmitStartOfAsmFile(), EmitSymbolRefWithOfs(), llvm::WinException::endFunclet(), llvm::WasmException::endFunction(), GetAbsDifference(), getDwarfRegNum(), llvm::MCAsmInfo::getExprForFDESymbol(), llvm::AArch64MCAsmInfoDarwin::getExprForPersonalitySymbol(), llvm::AArch64_MachoTargetObjectFile::getIndirectSymViaGOTPCRel(), llvm::TargetLoweringObjectFileMachO::getIndirectSymViaGOTPCRel(), GetSymbolRef(), llvm::AArch64_MachoTargetObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeReference(), getVariantKind(), llvm::HexagonAsmPrinter::HexagonProcessInstruction(), llvm::AsmPrinter::lowerConstant(), llvm::MipsMCInstLower::LowerOperand(), llvm::TargetLoweringObjectFileELF::lowerRelativeReference(), llvm::TargetLoweringObjectFileWasm::lowerRelativeReference(), makeCombineInst(), llvm::FaultMaps::recordFaultingOp(), llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand(), and llvm::MCExternalSymbolizer::tryAddingSymbolicOperand().
|
inlinestatic |
Definition at line 551 of file MCExpr.h.
Referenced by llvm::AsmPrinter::lowerConstant().
Get the left-hand side expression of the binary operator.
Definition at line 564 of file MCExpr.h.
Referenced by addNegOperand(), ConvertDoubleToBytes(), convertFPR32ToFPR64(), llvm::MCELFStreamer::EmitIdent(), llvm::MCExpr::evaluateAsRelocatableImpl(), EvaluateCRExpr(), llvm::MCExpr::findAssociatedFragment(), llvm::MCAssembler::Finish(), fixELFSymbolsInTLSFixupsImpl(), llvm::FixupKind(), hasGOTReference(), HasSecRelSymbolRef(), isPCRel(), llvm::MCParserUtils::isSymbolUsedInExpression(), llvm::MCExpr::print(), RefineErrorLoc(), shouldBeSls(), StartsWithGlobalOffsetTable(), and llvm::MCStreamer::visitUsedExpr().
|
inline |
Get the kind of this binary expression.
Definition at line 561 of file MCExpr.h.
Referenced by addNegOperand(), ConvertDoubleToBytes(), convertFPR32ToFPR64(), llvm::MCExpr::evaluateAsRelocatableImpl(), EvaluateCRExpr(), llvm::MCExpr::findAssociatedFragment(), and llvm::MCExpr::print().
Get the right-hand side expression of the binary operator.
Definition at line 567 of file MCExpr.h.
Referenced by addNegOperand(), ConvertDoubleToBytes(), convertFPR32ToFPR64(), llvm::MCELFStreamer::EmitIdent(), llvm::MCExpr::evaluateAsRelocatableImpl(), EvaluateCRExpr(), llvm::MCExpr::findAssociatedFragment(), fixELFSymbolsInTLSFixupsImpl(), hasGOTReference(), HasSecRelSymbolRef(), isPCRel(), llvm::MCParserUtils::isSymbolUsedInExpression(), llvm::MCExpr::print(), RefineErrorLoc(), StartsWithGlobalOffsetTable(), and llvm::MCStreamer::visitUsedExpr().