BinaryAnalysisPlatform / bap

Binary Analysis Platform
MIT License
2.07k stars 273 forks source link

reimplements ARM ABI and target specification #1522

Closed ivg closed 2 years ago

ivg commented 2 years ago

This PR rewrites the ABI specifications for ARM32 and ARM64. We also leverage the new target registration facility and tweak the target hierarchy of the ARM architectures. The naming scheme is now much closer to what is used in GNU and therefore are much more intuitive. For example, it is now possible just to specify --target=arm or --target=aarch64 or even --target=arm-linux-gnueabi. As usual, use bap list targets for the full list. The name arm is now the catchall architecture for ARM32 (aka Aarch32), and aarch64 is the catchall for all armv8. A slightly breaking change is that the new name for the arm parent target is arm-family not arm as it was before. The abi names were also slightly changed to match the names used by GCC and Debian. However, since the target nicknames are now made a part of the Primus Lisp context (and bare names were only used in the contexts), we do not expect that any changes are necessary to the existing code bases.