LLVM  8.0.1
Classes | Public Types | Public Member Functions | Friends | List of all members
llvm::DWARFExpression::Operation Class Reference

This class represents an Operation in the Expression. More...

#include "llvm/DebugInfo/DWARF/DWARFExpression.h"

Classes

struct  Description
 Description of the encoding of one expression Op. More...
 

Public Types

enum  Encoding : uint8_t {
  Size1 = 0, Size2 = 1, Size4 = 2, Size8 = 3,
  SizeLEB = 4, SizeAddr = 5, SizeRefAddr = 6, SizeBlock = 7,
  SignBit = 0x8, SignedSize1 = SignBit | Size1, SignedSize2 = SignBit | Size2, SignedSize4 = SignBit | Size4,
  SignedSize8 = SignBit | Size8, SignedSizeLEB = SignBit | SizeLEB, SizeNA = 0xFF
}
 Size and signedness of expression operations' operands. More...
 
enum  DwarfVersion : uint8_t { DwarfNA, Dwarf2 = 2, Dwarf3, Dwarf4 }
 

Public Member Functions

DescriptiongetDescription ()
 
uint8_t getCode ()
 
uint64_t getRawOperand (unsigned Idx)
 
uint32_t getEndOffset ()
 
bool extract (DataExtractor Data, uint16_t Version, uint8_t AddressSize, uint32_t Offset)
 
bool isError ()
 
bool print (raw_ostream &OS, const DWARFExpression *U, const MCRegisterInfo *RegInfo, bool isEH)
 

Friends

class DWARFExpression::iterator
 

Detailed Description

This class represents an Operation in the Expression.

Each operation can have up to 2 oprerands.

An Operation can be in Error state (check with isError()). This means that it couldn't be decoded successfully and if it is the case, all others fields contain undefined values.

Definition at line 33 of file DWARFExpression.h.

Member Enumeration Documentation

◆ DwarfVersion

Enumerator
DwarfNA 

Serves as a marker for unused entries.

Dwarf2 
Dwarf3 
Dwarf4 

Definition at line 54 of file DWARFExpression.h.

◆ Encoding

Size and signedness of expression operations' operands.

Enumerator
Size1 
Size2 
Size4 
Size8 
SizeLEB 
SizeAddr 
SizeRefAddr 
SizeBlock 

Preceding operand contains block size.

SignBit 
SignedSize1 
SignedSize2 
SignedSize4 
SignedSize8 
SignedSizeLEB 
SizeNA 

Unused operands get this encoding.

Definition at line 36 of file DWARFExpression.h.

Member Function Documentation

◆ extract()

bool llvm::DWARFExpression::Operation::extract ( DataExtractor  Data,
uint16_t  Version,
uint8_t  AddressSize,
uint32_t  Offset 
)

◆ getCode()

uint8_t llvm::DWARFExpression::Operation::getCode ( )
inline

Definition at line 84 of file DWARFExpression.h.

Referenced by isVariableIndexable().

◆ getDescription()

Description& llvm::DWARFExpression::Operation::getDescription ( )
inline

Definition at line 83 of file DWARFExpression.h.

◆ getEndOffset()

uint32_t llvm::DWARFExpression::Operation::getEndOffset ( )
inline

◆ getRawOperand()

uint64_t llvm::DWARFExpression::Operation::getRawOperand ( unsigned  Idx)
inline

Definition at line 85 of file DWARFExpression.h.

◆ isError()

bool llvm::DWARFExpression::Operation::isError ( )
inline

◆ print()

bool llvm::DWARFExpression::Operation::print ( raw_ostream OS,
const DWARFExpression U,
const MCRegisterInfo RegInfo,
bool  isEH 
)

Friends And Related Function Documentation

◆ DWARFExpression::iterator

friend class DWARFExpression::iterator
friend

Definition at line 75 of file DWARFExpression.h.


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