Skip to content

Latest commit

 

History

History
28 lines (15 loc) · 1.03 KB

README.md

File metadata and controls

28 lines (15 loc) · 1.03 KB

Aha!

This is Henry S. Warren's "Aha!" superoptimiser tool with a couple of mods make it more appropriate for targeting ARM and Thumb code. e.g. It knows about the BIC and RSB instructions.

It also has various rejiggery of source the exact nature of which escapes me at the moment. The original source is available on the 'distrib' branch.

Build a binary with:

make EXAMPLE=<fragment>

Where <fragment> is one of the xxx.frag.c files in the source directory.

Then run the resultant 'aha' with the number of target instructions.

./aha 2

Enjoy!

Related Material

In January 2015 I wrote an article about discovering branchless code sequences using Aha!.

In September 2016 I gave a presentation about superoptimisers to my then colleagues at Inside Secure.

In 2017 my friend Nick Gildea built a similar tool which uses z3 for synthesis.