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

Unary assembler expressions. More...

#include "llvm/MC/MCExpr.h"

Inheritance diagram for llvm::MCUnaryExpr:
Inheritance graph
[legend]
Collaboration diagram for llvm::MCUnaryExpr:
Collaboration graph
[legend]

Public Types

enum  Opcode { LNot, Minus, Not, Plus }
 
- Public Types inherited from llvm::MCExpr
enum  ExprKind : uint8_t {
  Binary, Constant, SymbolRef, Unary,
  Target
}
 

Public Member Functions

Accessors
Opcode getOpcode () const
 Get the kind of this unary expression. More...
 
const MCExprgetSubExpr () const
 Get the child of this unary expression. More...
 
- Public Member Functions inherited from llvm::MCExpr
 MCExpr (const MCExpr &)=delete
 
MCExproperator= (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...
 
MCFragmentfindAssociatedFragment () 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...
 

Static Public Member Functions

static bool classof (const MCExpr *E)
 
Construction
static const MCUnaryExprcreate (Opcode Op, const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc())
 
static const MCUnaryExprcreateLNot (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc())
 
static const MCUnaryExprcreateMinus (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc())
 
static const MCUnaryExprcreateNot (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc())
 
static const MCUnaryExprcreatePlus (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc())
 

Additional Inherited Members

- Protected Member Functions inherited from llvm::MCExpr
 MCExpr (ExprKind Kind, SMLoc Loc, unsigned SubclassData=0)
 
bool evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCAsmLayout *Layout, const MCFixup *Fixup, const SectionAddrMap *Addrs, bool InSet) const
 
unsigned getSubclassData () const
 

Detailed Description

Unary assembler expressions.

Definition at line 424 of file MCExpr.h.

Member Enumeration Documentation

◆ Opcode

Enumerator
LNot 

Logical negation.

Minus 

Unary minus.

Not 

Bitwise negation.

Plus 

Unary plus.

Definition at line 426 of file MCExpr.h.

Member Function Documentation

◆ classof()

static bool llvm::MCUnaryExpr::classof ( const MCExpr E)
inlinestatic

Definition at line 474 of file MCExpr.h.

References E, and llvm::MCExpr::Unary.

◆ create()

const MCUnaryExpr * MCUnaryExpr::create ( Opcode  Op,
const MCExpr Expr,
MCContext Ctx,
SMLoc  Loc = SMLoc() 
)
static

Definition at line 189 of file MCExpr.cpp.

Referenced by createLNot(), createMinus(), createNot(), and createPlus().

◆ createLNot()

static const MCUnaryExpr* llvm::MCUnaryExpr::createLNot ( const MCExpr Expr,
MCContext Ctx,
SMLoc  Loc = SMLoc() 
)
inlinestatic

Definition at line 446 of file MCExpr.h.

References create(), and LNot.

◆ createMinus()

static const MCUnaryExpr* llvm::MCUnaryExpr::createMinus ( const MCExpr Expr,
MCContext Ctx,
SMLoc  Loc = SMLoc() 
)
inlinestatic

◆ createNot()

static const MCUnaryExpr* llvm::MCUnaryExpr::createNot ( const MCExpr Expr,
MCContext Ctx,
SMLoc  Loc = SMLoc() 
)
inlinestatic

Definition at line 454 of file MCExpr.h.

References create(), and Not.

◆ createPlus()

static const MCUnaryExpr* llvm::MCUnaryExpr::createPlus ( const MCExpr Expr,
MCContext Ctx,
SMLoc  Loc = SMLoc() 
)
inlinestatic

Definition at line 458 of file MCExpr.h.

References create(), and Plus.

◆ getOpcode()

Opcode llvm::MCUnaryExpr::getOpcode ( ) const
inline

Get the kind of this unary expression.

Definition at line 467 of file MCExpr.h.

References llvm::MCExpr::getSubclassData().

Referenced by llvm::MCExpr::evaluateAsRelocatableImpl(), and llvm::MCExpr::print().

◆ getSubExpr()

const MCExpr* llvm::MCUnaryExpr::getSubExpr ( ) const
inline

Get the child of this unary expression.

Definition at line 470 of file MCExpr.h.

Referenced by llvm::MCExpr::evaluateAsRelocatableImpl(), and llvm::MCExpr::print().


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