Updated CPU (markdown)
							
								
								
									
										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. | 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. | ||||||
|  |  | ||||||
| `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. |  | ||||||
		Reference in New Issue
	
	Block a user
	 Sebastian Valle
					Sebastian Valle