mirror of
https://github.com/citra-emu/citra.git
synced 2024-11-22 06:20:05 +00:00
Updated CPU (markdown)
parent
f420b40e1b
commit
226b52c729
10
CPU.md
10
CPU.md
@ -1,9 +1,5 @@
|
||||
Citra current has 2 CPU cores: `armemu` and `dyncom/skyeye`.
|
||||
Citra's current CPU core is an ARM interpreter called "dyncom", which was originally taken from a project called SkyEye, and then modified to support the ARMv6 instruction set that the 3DS uses.
|
||||
|
||||
`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)
|
||||
Dyncom originally supported ARM7 (ARMv5) and partial ARMv6 only. We added in the remaining ARMv6 media instructions and other fixes ourselves to get 3DS emulation as far as it is.
|
||||
|
||||
`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`.
|
||||
|
||||
`dyncom` is currently used by default, but there is still the option to use `armemu` instead. Eventually we plan to get rid of `armemu`. There's no sense in maintaining two interpreters.
|
||||
There are plans to implement a dynamic recompiler that will fallback into dyncom for unimplemented instructions, but no work has been started on that yet.
|
Loading…
Reference in New Issue
Block a user