QEMU emulation
QEMU was originally born as a companion for the Linux kernel, but it has become a multi-platform emulator that allows running almost any kind of code within many kinds of hardware platforms that the emulator can be compiled to.
The source code of QEMU is available online, through the official website, in GitHub, and in many official repositories of the main Linux distros.
QEMU IR
QEMU internally works as a dynamic translator; from a high-level view, QEMU receives a binary from one architecture, and its full emulation mode translates it into code for the architecture where it is running. To avoid having a “translator” for each architecture into any other architecture (a problem similar to the famous N jobs and M machines), QEMU separates the translation into two phases, following a common pattern in the world of compiler programs. QEMU contains a translation phase from a target architecture (in our case, ARM) into an IR; this representation is,...