LLVM
15.0.0git
|
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, BaseTypeRef = 8, WasmLocationArg = 30, SignBit = 0x80, 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, Dwarf5 } |
Public Member Functions | |
const Description & | getDescription () const |
uint8_t | getCode () const |
uint64_t | getRawOperand (unsigned Idx) const |
uint64_t | getOperandEndOffset (unsigned Idx) const |
uint64_t | getEndOffset () const |
bool | isError () const |
bool | print (raw_ostream &OS, DIDumpOptions DumpOpts, const DWARFExpression *Expr, const MCRegisterInfo *RegInfo, DWARFUnit *U, bool isEH) const |
Static Public Member Functions | |
static bool | verify (const Operation &Op, DWARFUnit *U) |
Verify Op . Does not affect the return of isError(). More... | |
Friends | |
class | DWARFExpression::iterator |
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 34 of file DWARFExpression.h.
enum llvm::DWARFExpression::Operation::DwarfVersion : uint8_t |
Enumerator | |
---|---|
DwarfNA | Serves as a marker for unused entries. |
Dwarf2 | |
Dwarf3 | |
Dwarf4 | |
Dwarf5 |
Definition at line 57 of file DWARFExpression.h.
enum llvm::DWARFExpression::Operation::Encoding : uint8_t |
Size and signedness of expression operations' operands.
Definition at line 37 of file DWARFExpression.h.
|
inline |
Definition at line 89 of file DWARFExpression.h.
|
inline |
Definition at line 88 of file DWARFExpression.h.
|
inline |
Definition at line 94 of file DWARFExpression.h.
|
inline |
Definition at line 91 of file DWARFExpression.h.
|
inline |
Definition at line 90 of file DWARFExpression.h.
References Operands.
|
inline |
Definition at line 95 of file DWARFExpression.h.
References llvm::lltok::Error.
bool llvm::DWARFExpression::Operation::print | ( | raw_ostream & | OS, |
DIDumpOptions | DumpOpts, | ||
const DWARFExpression * | Expr, | ||
const MCRegisterInfo * | RegInfo, | ||
DWARFUnit * | U, | ||
bool | isEH | ||
) | const |
Definition at line 263 of file DWARFExpression.cpp.
References assert(), llvm::format(), llvm::DataExtractor::getU8(), i, Operands, llvm::dwarf::OperationEncodingString(), llvm::prettyPrintBaseTypeRef(), llvm::prettyPrintRegisterOp(), and Signed.
Verify Op
. Does not affect the return of isError().
Definition at line 360 of file DWARFExpression.cpp.
References llvm::DWARFUnit::getDIEForOffset(), and llvm::DWARFUnit::getOffset().
|
friend |
Definition at line 79 of file DWARFExpression.h.