From 5ccef726c0954116f8f4b5d6347e0acdbb0b6ce3 Mon Sep 17 00:00:00 2001 From: Brandon Miller Date: Tue, 27 Jan 2026 11:26:57 -0500 Subject: 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. --- binaryview.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'binaryview.cpp') diff --git a/binaryview.cpp b/binaryview.cpp index 282fff73..85a7cfbe 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -5829,6 +5829,16 @@ optional> BinaryView::StringifyUnicodeData(Architectu } +Ref 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; -- cgit v1.3.1