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 /binaryview.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 'binaryview.cpp')
| -rw-r--r-- | binaryview.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/binaryview.cpp b/binaryview.cpp index 282fff73..85a7cfbe 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -5829,6 +5829,16 @@ optional<pair<string, BNStringType>> BinaryView::StringifyUnicodeData(Architectu } +Ref<Relocation> BinaryView::GetNextRelocation(uint64_t addr, uint64_t maxAddr) +{ + BNRelocation* reloc = BNGetNextRelocation(m_object, addr, maxAddr); + if (!reloc) + return nullptr; + + return new Relocation(reloc); +} + + Relocation::Relocation(BNRelocation* reloc) { m_object = reloc; |
