Skip to content

Conversation

@zznop
Copy link
Member

@zznop zznop commented Jan 14, 2026

  • Move the default implementation of function lifter from the core to the API
  • Add a new Architecture::LiftFunction callback that can be overridden by architecture plugins to lift entire functions at once instead of (or in addition to) the instruction-level with GetInstructionLowLevelIL
    • Default implementation here (ported from core FunctionLifter::Lift)
    • Python example here
  • Adds additional APIs required to perform function-level lifting and function inlining

@zznop zznop requested a review from rssor January 14, 2026 20:07
@zznop zznop self-assigned this Jan 14, 2026
@zznop zznop force-pushed the test_function_lifting branch from 348b9a8 to b34544d Compare January 15, 2026 14:38
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants