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

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