There are several related projects like QEMU, libcpu, and ArchC.
QEMU is mature project and supporting many architectures.
So I had been struggling for 2-3 weeks to cut out the processor model from QEMU., but QEMU is written in C and uses a lot of C macro tricks, so many files that are not necessary for processor models. Finally I gave up to cut out from QEMU. But the project name QCPU still derives from QEMU even though no source code of QEMU is used any more.
libcpu uses LLVM, but it does not looks to be actively developed.
ArchC is ongoing ambitions project. But it does not look focusing a performance.
So I started by myself.
I want to achieve the following points in QCPU.
- Clean C++ code, no static/global object
- Multi-instance friendly
According to the result of LLVM-QEMU of GSoC2007, it will be very difficult to get the similar performance as QEMU, but it's OK because this is just a hobby.
Currently only several instructions of openrisc is implemented.
- Implement all instruction of OpenRISC
- Support more archtectures (arm, mips, ppc, xtensa)
- Implement MMU emulation framework
- GDB stub
- Performance optimization
I hope I can make the initial version in public in this month. The license will be GPL.