libcpu is a library that emulates several CPU architectures, allowing itself to be used as the CPU core for different kinds of emulator projects. It uses its own frontends for the different CPU types, and uses LLVM for the backend. libcpu should be able to do user mode and system emulation, and dynamic as well as static recompilation.