|
decompiler 1.0.0
|
A write to a bitfield stored in an explicit Varnode. More...
#include <expression.hh>
Public Member Functions | |
| InsertExpression (const PcodeOp *insert) | |
| Construct from an INSERT. | |
Public Member Functions inherited from ghidra::BitFieldExpression | |
| const Varnode * | recoverStructurePointer (const Varnode *vn, int4 offset) |
| Recover the Varnode holding the pointer to the parent structure. | |
| bool | isValid (void) const |
| Is this a valid bitfield expression. | |
Static Public Member Functions | |
| static uintb | getRangeMask (const PcodeOp *insert) |
| Get a mask representing the INSERTed range of bits. | |
| static uintb | getLSBMask (const PcodeOp *insert) |
| Get mask of least significant bits matching INSERT size. | |
Static Public Member Functions inherited from ghidra::BitFieldExpression | |
| static const TypeBitField * | getPullField (const PcodeOp *pull) |
| Get field description corresponding to given ZPULL or SPULL. | |
Public Attributes | |
| const PcodeOp * | insertOp |
| INSERT op. | |
| const Symbol * | symbol |
| Structure symbol represented by the INSERT output. | |
Public Attributes inherited from ghidra::BitFieldExpression | |
| TypeStruct * | theStruct |
| Parent structure containing the bitfield. | |
| const TypeBitField * | bitfield |
| Formal bitfield description. | |
| int4 | byteRangeOffset |
| Offset of byte range into encompassStruct. | |
| int4 | offsetToBitStruct |
| Offset of structure containing bitfield in encompassStruct. | |
Additional Inherited Members | |
Protected Member Functions inherited from ghidra::BitFieldExpression | |
| void | getStructures (Datatype *dt, int4 initByteOff, int4 leastBitOff, bool isBigEndian) |
| Recover the structure(s) holding the bitfield. | |
A write to a bitfield stored in an explicit Varnode.
The INSERT output is expected to be a associated with a (partial) symbol and hold data-type information.
|
static |
Get mask of least significant bits matching INSERT size.
| insert | is the CPUI_INSERT op |
References ghidra::PcodeOp::getIn(), and ghidra::Varnode::getOffset().
Referenced by ghidra::RuleInsertAbsorb::absorbAnd().
|
static |
Get a mask representing the INSERTed range of bits.
| insert | is the CPUI_INSERT op |
References ghidra::PcodeOp::getIn(), and ghidra::Varnode::getOffset().
Referenced by ghidra::BitFieldTransform::findOverwrite(), ghidra::BitFieldInsertTransform::verifyLoadStoreOriginalValue(), and ghidra::BitFieldInsertTransform::verifyMappedOriginalValue().