LLVM  8.0.1
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 {
  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)
 
bool evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCAsmLayout *Layout, const MCFixup *Fixup, const SectionAddrMap *Addrs, bool InSet) const
 

Detailed Description

Unary assembler expressions.

Definition at line 360 of file MCExpr.h.

Member Enumeration Documentation

◆ Opcode

Enumerator
LNot 

Logical negation.

Minus 

Unary minus.

Not 

Bitwise negation.

Plus 

Unary plus.

Definition at line 362 of file MCExpr.h.

Member Function Documentation

◆ classof()

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

Definition at line 411 of file MCExpr.h.

References llvm::MCExpr::getKind(), and llvm::MCExpr::Unary.

◆ create()

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

Definition at line 159 of file MCExpr.cpp.

Referenced by addNegOperand().

◆ createLNot()

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

Definition at line 383 of file MCExpr.h.

◆ 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 391 of file MCExpr.h.

◆ createPlus()

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

Definition at line 395 of file MCExpr.h.

◆ getOpcode()

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

Get the kind of this unary expression.

Definition at line 404 of file MCExpr.h.

Referenced by addNegOperand(), ConvertDoubleToBytes(), 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 407 of file MCExpr.h.

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


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