diff options
| author | Brandon Miller <brandon@vector35.com> | 2026-01-27 11:26:57 -0500 |
|---|---|---|
| committer | Brandon Miller <brandon@vector35.com> | 2026-01-27 11:26:57 -0500 |
| commit | 5ccef726c0954116f8f4b5d6347e0acdbb0b6ce3 (patch) | |
| tree | ef347ed0ae08bbdafb53fd5e82ffdfd104377522 /basicblock.cpp | |
| parent | e5805fe927f42d3ac56dd283fc02b394a9739d79 (diff) | |
Perform function lifting and inlining in arch plugins
This change allows architecture plugins to override the LiftFunction
callback to iterate a function's basic block list and lift entire
functions at once. This is required for architectures such as TMS320
C6x, which have non-traditional "delay slots" in that branches, loads,
and other instructions take multiple cycles to complete, and branch
instructions can reside within the delay slots of other branches.
Diffstat (limited to 'basicblock.cpp')
| -rw-r--r-- | basicblock.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/basicblock.cpp b/basicblock.cpp index a548c708..8025a9fc 100644 --- a/basicblock.cpp +++ b/basicblock.cpp @@ -454,6 +454,12 @@ void BasicBlock::SetUndeterminedOutgoingEdges(bool value) } +bool BasicBlock::HasInstructionData() const +{ + return BNBasicBlockHasInstructionData(m_object); +} + + const uint8_t* BasicBlock::GetInstructionData(uint64_t addr, size_t* len) const { return BNBasicBlockGetInstructionData(m_object, addr, len); |
