BinaryAnalysisPlatform / bap

Binary Analysis Platform
MIT License
2.05k stars 271 forks source link

reifies external subroutines and intrinsics into IR #1479

Closed ivg closed 2 years ago

ivg commented 2 years ago

Turns program objects that are external to the program, e.g., intrinsics, interrupt service routines, externally linked subroutines, into IR. The intrinsic calls in particular, are also called to Primus Lifter, the rest of externals will soon follow.

This PR, essentially, enables the lifters to have subroutines so that a heavy operation could now be turned into an intrinsic subroutine that itself reified into a concrete IR and shared among several instructions. We plan to use this feature to concretely lift all basic floating-point operations, and later employ it for handling heavy vector and crypto operations.