LLVM 22.0.0git
Public Types | Static Public Member Functions | List of all members
llvm::MCBinaryExpr Class Reference

Binary assembler expressions. More...

#include "llvm/MC/MCExpr.h"

Inheritance diagram for llvm::MCBinaryExpr:
[フレーム]
[legend]

Public Types

enum   Opcode {
  Add , And , Div , EQ ,
  GT , GTE , LAnd , LOr ,
  LT , LTE , Mod , Mul ,
  NE , Or , OrNot , Shl ,
  AShr , LShr , Sub , Xor
}
Public Types inherited from llvm::MCExpr
enum   ExprKind : uint8_t {
  Binary , Constant , SymbolRef , Unary ,
  Specifier , Target
}

Public Member Functions

Accessors
  Get the kind of this binary expression.
  Get the left-hand side expression of the binary operator.
  Get the right-hand side expression of the binary operator.
Public Member Functions inherited from llvm::MCExpr
  MCExpr (const MCExpr &)=delete
MCExproperator= (const MCExpr &)=delete
LLVM_ABI void  dump () const
  Try to evaluate the expression to an absolute value.
  Aggressive variant of evaluateAsRelocatable when relocations are unavailable (e.g.
  Try to evaluate the expression to a relocatable value, i.e.
  Try to evaluate the expression to the form (a - b + constant) where neither a nor b are variables.
  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.

Static Public Member Functions

static bool  classof (const MCExpr *E)
Construction
Static Public Member Functions inherited from llvm::MCExpr

Additional Inherited Members

Protected Types inherited from llvm::MCExpr
using  Spec = uint16_t
Protected Member Functions inherited from llvm::MCExpr
  MCExpr (ExprKind Kind, SMLoc Loc, unsigned SubclassData=0)

Detailed Description

Binary assembler expressions.

Definition at line 299 of file MCExpr.h.

Member Enumeration Documentation

◆  Opcode

Enumerator
Add 

Addition.

And 

Bitwise and.

Div 

Signed division.

EQ 

Equality comparison.

GT 

Signed greater than comparison (result is either 0 or some target-specific non-zero value)

GTE 

Signed greater than or equal comparison (result is either 0 or some target-specific non-zero value).

LAnd 

Logical and.

LOr 

Logical or.

LT 

Signed less than comparison (result is either 0 or some target-specific non-zero value).

LTE 

Signed less than or equal comparison (result is either 0 or some target-specific non-zero value).

Mod 

Signed remainder.

Mul 

Multiplication.

NE 

Inequality comparison.

Or 

Bitwise or.

OrNot 

Bitwise or not.

Shl 

Shift left.

AShr 

Arithmetic shift right.

LShr 

Logical shift right.

Sub 

Subtraction.

Xor 

Bitwise exclusive or.

Definition at line 301 of file MCExpr.h.

Member Function Documentation

◆  classof()

bool llvm::MCBinaryExpr::classof ( const MCExpr * E )
inlinestatic

Definition at line 453 of file MCExpr.h.

References llvm::MCExpr::Binary, E(), and llvm::MCExpr::MCExpr().

◆  create()

◆  createAdd()

const MCBinaryExpr * llvm::MCBinaryExpr::createAdd ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx,
SMLoc Loc = SMLoc() )
inlinestatic

Definition at line 343 of file MCExpr.h.

References Add, create(), and llvm::MCExpr::MCExpr().

Referenced by createPCXRelExprOp(), llvm::MCResourceInfo::createTotalNumSGPRs(), llvm::AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor(), llvm::MCWinCOFFStreamer::emitCOFFImgRel32(), llvm::MCWinCOFFStreamer::emitCOFFSecRel32(), llvm::ARMAsmPrinter::emitInstruction(), llvm::SystemZAsmPrinter::emitInstruction(), llvm::X86AsmPrinter::emitInstruction(), llvm::ARMAsmPrinter::emitJumpTableAddrs(), llvm::ARMAsmPrinter::emitJumpTableTBInst(), llvm::AsmPrinter::emitLabelPlusOffset(), llvm::ARMAsmPrinter::emitMachineConstantPoolValue(), llvm::MCObjectStreamer::emitRelocDirective(), EmitSymbolRefWithOfs(), EmitSymbolRefWithOfs(), llvm::AsmPrinter::emitXRayTable(), llvm::CodeViewContext::encodeDefRange(), llvm::MCResourceInfo::gatherResourceInfo(), 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::AArch64_ELFTargetObjectFile::getIndirectSymViaGOTPCRel(), llvm::ARMElfTargetObjectFile::getIndirectSymViaGOTPCRel(), llvm::RISCVELFTargetObjectFile::getIndirectSymViaGOTPCRel(), llvm::TargetLoweringObjectFileMachO::getIndirectSymViaGOTPCRel(), llvm::X86_64ELFTargetObjectFile::getIndirectSymViaGOTPCRel(), llvm::X86_64MachoTargetObjectFile::getIndirectSymViaGOTPCRel(), GetSymbolRef(), GetSymbolRef(), llvm::X86_64MachoTargetObjectFile::getTTypeGlobalReference(), llvm::AsmPrinter::lowerConstant(), llvm::AMDGPUMCInstLower::lowerOperand(), llvm::TargetLoweringObjectFileCOFF::lowerRelativeReference(), llvm::TargetLoweringObjectFileELF::lowerSymbolDifference(), llvm::LanaiMCInstLower::LowerSymbolOperand(), llvm::M68kMCInstLower::LowerSymbolOperand(), llvm::MSP430MCInstLower::LowerSymbolOperand(), llvm::XtensaAsmPrinter::LowerSymbolOperand(), LowerSymbolOperand(), llvm::AVRMCInstLower::lowerSymbolOperand(), lowerSymbolOperand(), lowerSymbolOperand(), llvm::AArch64MCInstLower::lowerSymbolOperandCOFF(), llvm::AArch64MCInstLower::lowerSymbolOperandELF(), llvm::AArch64MCInstLower::lowerSymbolOperandMachO(), llvm::LoongArchAsmBackend::relaxAlign(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand(), and llvm::MCExternalSymbolizer::tryAddingSymbolicOperand().

◆  createAnd()

◆  createAShr()

const MCBinaryExpr * llvm::MCBinaryExpr::createAShr ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 418 of file MCExpr.h.

References AShr, create(), and llvm::MCExpr::MCExpr().

Referenced by llvm::SIInstrInfo::insertIndirectBranch().

◆  createDiv()

const MCBinaryExpr * llvm::MCBinaryExpr::createDiv ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

◆  createEQ()

const MCBinaryExpr * llvm::MCBinaryExpr::createEQ ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 358 of file MCExpr.h.

References create(), EQ, and llvm::MCExpr::MCExpr().

◆  createGT()

const MCBinaryExpr * llvm::MCBinaryExpr::createGT ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 363 of file MCExpr.h.

References create(), GT, and llvm::MCExpr::MCExpr().

◆  createGTE()

const MCBinaryExpr * llvm::MCBinaryExpr::createGTE ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 368 of file MCExpr.h.

References create(), GTE, and llvm::MCExpr::MCExpr().

◆  createLAnd()

const MCBinaryExpr * llvm::MCBinaryExpr::createLAnd ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 373 of file MCExpr.h.

References create(), LAnd, and llvm::MCExpr::MCExpr().

◆  createLOr()

const MCBinaryExpr * llvm::MCBinaryExpr::createLOr ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 378 of file MCExpr.h.

References create(), LOr, and llvm::MCExpr::MCExpr().

◆  createLShr()

◆  createLT()

const MCBinaryExpr * llvm::MCBinaryExpr::createLT ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 383 of file MCExpr.h.

References create(), LT, and llvm::MCExpr::MCExpr().

◆  createLTE()

const MCBinaryExpr * llvm::MCBinaryExpr::createLTE ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 388 of file MCExpr.h.

References create(), LTE, and llvm::MCExpr::MCExpr().

◆  createMod()

const MCBinaryExpr * llvm::MCBinaryExpr::createMod ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 393 of file MCExpr.h.

References create(), llvm::MCExpr::MCExpr(), and Mod.

◆  createMul()

const MCBinaryExpr * llvm::MCBinaryExpr::createMul ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

◆  createNE()

const MCBinaryExpr * llvm::MCBinaryExpr::createNE ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 403 of file MCExpr.h.

References create(), llvm::MCExpr::MCExpr(), and NE.

◆  createOr()

◆  createShl()

const MCBinaryExpr * llvm::MCBinaryExpr::createShl ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

◆  createSub()

const MCBinaryExpr * llvm::MCBinaryExpr::createSub ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 428 of file MCExpr.h.

References create(), llvm::MCExpr::MCExpr(), and Sub.

Referenced by llvm::CSKYConstantPool::addEntry(), addNegOperand(), computeAccumOffset(), createPCXRelExprOp(), llvm::SystemZTargetGOFFStreamer::createWordDiffExpr(), llvm::SystemZTargetHLASMStreamer::createWordDiffExpr(), EmitAbsDifference(), llvm::MCStreamer::emitAbsoluteSymbolDiff(), llvm::MCStreamer::emitAbsoluteSymbolDiffAsULEB128(), llvm::AMDGPUTargetELFStreamer::EmitAmdhsaKernelDescriptor(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::EHStreamer::emitExceptionTable(), llvm::AsmPrinter::emitFunctionBody(), llvm::AMDGPUAsmPrinter::emitFunctionBodyEnd(), llvm::AMDGPUTargetELFStreamer::EmitHSAMetadata(), llvm::ARMAsmPrinter::emitInstruction(), llvm::X86AsmPrinter::emitInstruction(), llvm::AMDGPUTargetELFStreamer::EmitISAVersion(), llvm::ARMAsmPrinter::emitJumpTableAddrs(), llvm::AsmPrinter::emitJumpTableEntry(), llvm::ARMAsmPrinter::emitJumpTableTBInst(), llvm::X86AsmPrinter::emitKCFITypeId(), llvm::ARMAsmPrinter::emitMachineConstantPoolValue(), llvm::CSKYAsmPrinter::emitMachineConstantPoolValue(), EmitSymbolRefWithOfs(), llvm::AsmPrinter::emitXRayTable(), llvm::WasmException::endFunction(), llvm::MCAsmInfo::getExprForFDESymbol(), llvm::AArch64MCAsmInfoDarwin::getExprForPersonalitySymbol(), llvm::AArch64_MachoTargetObjectFile::getIndirectSymViaGOTPCRel(), llvm::TargetLoweringObjectFileMachO::getIndirectSymViaGOTPCRel(), GetOptionalAbsDifference(), GetSubDivExpr(), GetSymbolRef(), llvm::AArch64_MachoTargetObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeReference(), llvm::HexagonAsmPrinter::HexagonProcessInstruction(), llvm::SIInstrInfo::insertIndirectBranch(), llvm::AsmPrinter::lowerConstant(), llvm::VETargetLowering::LowerCustomJumpTableEntry(), llvm::TargetLoweringObjectFileELF::lowerSymbolDifference(), llvm::FaultMaps::recordFaultingOp(), llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand(), and llvm::MCExternalSymbolizer::tryAddingSymbolicOperand().

◆  createXor()

const MCBinaryExpr * llvm::MCBinaryExpr::createXor ( const MCExpr * LHS,
const MCExpr * RHS,
MCContext & Ctx )
inlinestatic

Definition at line 433 of file MCExpr.h.

References create(), llvm::MCExpr::MCExpr(), and Xor.

◆  getLHS()

◆  getOpcode()

◆  getRHS()


The documentation for this class was generated from the following files:

Generated on for LLVM by doxygen 1.14.0

AltStyle によって変換されたページ (->オリジナル) /