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. --- defaultabb/CMakeLists.txt | 50 ----------------------------------------------- defaultabb/plugin.cpp | 12 ------------ 2 files changed, 62 deletions(-) delete mode 100644 defaultabb/CMakeLists.txt delete mode 100644 defaultabb/plugin.cpp (limited to 'defaultabb') diff --git a/defaultabb/CMakeLists.txt b/defaultabb/CMakeLists.txt deleted file mode 100644 index b81d14be..00000000 --- a/defaultabb/CMakeLists.txt +++ /dev/null @@ -1,50 +0,0 @@ -cmake_minimum_required(VERSION 3.13 FATAL_ERROR) - -project(defaultabb) - -if(NOT BN_INTERNAL_BUILD) - add_subdirectory(${PROJECT_SOURCE_DIR}/../.. ${PROJECT_BINARY_DIR}/api) -endif() - -file(GLOB SOURCES CONFIGURE_DEPENDS - *.cpp - *.h) - -if(DEMO) - add_library(defaultabb STATIC ${SOURCES}) -else() - add_library(defaultabb SHARED ${SOURCES}) -endif() - -target_include_directories(defaultabb - PRIVATE ${PROJECT_SOURCE_DIR} -) - -if(WIN32) - target_link_directories(defaultabb - PRIVATE ${BN_INSTALL_DIR}) - target_link_libraries(defaultabb binaryninjaapi) -else() - target_link_libraries(defaultabb binaryninjaapi) -endif() - -if(UNIX AND NOT APPLE) - target_link_options(defaultabb PRIVATE "LINKER:--exclude-libs,ALL") -endif() - -set_target_properties(defaultabb PROPERTIES - CXX_STANDARD 20 - CXX_VISIBILITY_PRESET hidden - CXX_STANDARD_REQUIRED ON - C_STANDARD 99 - C_STANDARD_REQUIRED ON - C_VISIBILITY_PRESET hidden - VISIBILITY_INLINES_HIDDEN ON - POSITION_INDEPENDENT_CODE ON) - -if(BN_INTERNAL_BUILD) - plugin_rpath(defaultabb) - set_target_properties(defaultabb PROPERTIES - LIBRARY_OUTPUT_DIRECTORY ${BN_CORE_PLUGIN_DIR} - RUNTIME_OUTPUT_DIRECTORY ${BN_CORE_PLUGIN_DIR}) -endif() diff --git a/defaultabb/plugin.cpp b/defaultabb/plugin.cpp deleted file mode 100644 index 917a03ee..00000000 --- a/defaultabb/plugin.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "binaryninjaapi.h" -#include "binaryninjacore.h" - -using namespace BinaryNinja; - -extern "C" { - BN_DECLARE_CORE_ABI_VERSION - BINARYNINJAPLUGIN bool CorePluginInit() - { - return BNArchitectureSetDefaultAnalyzeBasicBlocksCallback((void *)Architecture::DefaultAnalyzeBasicBlocksCallback); - } -} -- cgit v1.3.1