|
LLVM
4.0.0
|
DwarfExpression implementation for .debug_loc entries. More...
#include <DwarfExpression.h>
Public Member Functions | |
| DebugLocDwarfExpression (unsigned DwarfVersion, ByteStreamer &BS) | |
| void | EmitOp (uint8_t Op, const char *Comment=nullptr) override |
| Output a dwarf operand and an optional assembler comment. More... | |
| void | EmitSigned (int64_t Value) override |
| Emit a raw signed value. More... | |
| void | EmitUnsigned (uint64_t Value) override |
| Emit a raw unsigned value. More... | |
| bool | isFrameRegister (const TargetRegisterInfo &TRI, unsigned MachineReg) override |
| Return whether the given machine register is the frame register in the current function. More... | |
Public Member Functions inherited from llvm::DwarfExpression | |
| DwarfExpression (unsigned DwarfVersion) | |
| virtual | ~DwarfExpression () |
| void | finalize () |
| This needs to be called last to commit any pending changes. More... | |
| void | AddReg (int DwarfReg, const char *Comment=nullptr) |
| Emit a dwarf register operation. More... | |
| void | AddRegIndirect (int DwarfReg, int Offset, bool Deref=false) |
| Emit an (double-)indirect dwarf register operation. More... | |
| void | AddOpPiece (unsigned SizeInBits, unsigned OffsetInBits=0) |
| Emit a DW_OP_piece or DW_OP_bit_piece operation for a variable fragment. More... | |
| void | AddShr (unsigned ShiftBy) |
| Emit a shift-right dwarf expression. More... | |
| void | AddStackValue () |
| Emit a DW_OP_stack_value, if supported. More... | |
| bool | AddMachineRegIndirect (const TargetRegisterInfo &TRI, unsigned MachineReg, int Offset=0) |
| Emit an indirect dwarf register operation for the given machine register. More... | |
| bool | AddMachineReg (const TargetRegisterInfo &TRI, unsigned MachineReg, unsigned MaxSize=~1U) |
| Emit a partial DWARF register operation. More... | |
| void | AddSignedConstant (int64_t Value) |
| Emit a signed constant. More... | |
| void | AddUnsignedConstant (uint64_t Value) |
| Emit an unsigned constant. More... | |
| void | AddUnsignedConstant (const APInt &Value) |
| Emit an unsigned constant. More... | |
| bool | AddMachineRegExpression (const TargetRegisterInfo &TRI, DIExpressionCursor &Expr, unsigned MachineReg, unsigned FragmentOffsetInBits=0) |
| Emit a machine register location. More... | |
| void | AddExpression (DIExpressionCursor &&Expr, unsigned FragmentOffsetInBits=0) |
| Emit all remaining operations in the DIExpressionCursor. More... | |
| void | addFragmentOffset (const DIExpression *Expr) |
If applicable, emit an empty DW_OP_piece / DW_OP_bit_piece to advance to the fragment described by Expr. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::DwarfExpression | |
| void | setSubRegisterPiece (unsigned SizeInBits, unsigned OffsetInBits) |
| Push a DW_OP_piece / DW_OP_bit_piece for emitting later, if one is needed to represent a subregister. More... | |
Protected Attributes inherited from llvm::DwarfExpression | |
| unsigned | DwarfVersion |
| uint64_t | OffsetInBits = 0 |
| Current Fragment Offset in Bits. More... | |
| unsigned | SubRegisterSizeInBits = 0 |
| Sometimes we need to add a DW_OP_bit_piece to describe a subregister. More... | |
| unsigned | SubRegisterOffsetInBits = 0 |
DwarfExpression implementation for .debug_loc entries.
Definition at line 201 of file DwarfExpression.h.
|
inline |
Definition at line 205 of file DwarfExpression.h.
|
overridevirtual |
Output a dwarf operand and an optional assembler comment.
Implements llvm::DwarfExpression.
Definition at line 130 of file DwarfDebug.cpp.
References llvm::ByteStreamer::EmitInt8(), and llvm::dwarf::OperationEncodingString().
|
overridevirtual |
Emit a raw signed value.
Implements llvm::DwarfExpression.
Definition at line 136 of file DwarfDebug.cpp.
References llvm::ByteStreamer::EmitSLEB128().
|
overridevirtual |
Emit a raw unsigned value.
Implements llvm::DwarfExpression.
Definition at line 140 of file DwarfDebug.cpp.
References llvm::ByteStreamer::EmitULEB128().
|
overridevirtual |
Return whether the given machine register is the frame register in the current function.
Implements llvm::DwarfExpression.
Definition at line 144 of file DwarfDebug.cpp.
1.8.6