From aecc1144bd71ed481d1511db5f5621a84c259543 Mon Sep 17 00:00:00 2001 From: chinhodado Date: Sat, 27 Dec 2014 12:17:38 -0800 Subject: [PATCH] Created CPU (markdown) --- CPU.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 CPU.md diff --git a/CPU.md b/CPU.md new file mode 100644 index 0000000..0a56821 --- /dev/null +++ b/CPU.md @@ -0,0 +1,9 @@ +Citra current has 2 CPU cores: `armemu` and `dyncom/skyeye`. + +`armemu` is an old interpreter. It originally supports ARM7 (ARMv5) and partial ARMv6 support only. We added in ARMv6 stuffs and other fixes ourselves to get 3ds emulation as far as it is. ([ichfly](https://github.com/ichfly) tacked on more ARMv6 instructions for 3dmoo and [Lioncash](https://github.com/lioncash) is now doing further work on that area) + +`SkyEye` is "[a very fast full system simulator which takes llvm as IR of dynmic compiled framework.. It can simulate series ARM, Coldfire,Mips, Powerpc, Sparc, x86 and Blackfin DSP Processor](http://sourceforge.net/projects/skyeye/)". It probably is still in active development, though really slow. + +`dyncom` is the fallback interpreter to SkyEye's ARM dynamic recompiler. `dyncom` is more complex, cleaner, a little buggier than the current version of `armemu`, but it runs much faster. `dyncom` doesn't have as many instructions implemented as `armemu`. + +`armemu` is currently used by default, but eventually we will ditch it and use `dyncom` instead. Our plan is to bring `dyncom` up to the level of `armemu`, then get rid of `armemu`. There's no sense in maintaining two interpreters. \ No newline at end of file