Changes

Jump to navigation Jump to search

Dynamic recompilation

112 bytes removed, 09:54, 4 November 2018
Removed many red links.
==Uses==
Most dynamic recompilers are used to convert machine code between architectures at runtime. This is a task often needed in the emulation of legacy gaming platforms. In other cases, a system may employ dynamic recompilation as part of an [[adaptive optimization]] strategy to execute a portable program representation such as [[Java (programming language)|Java]] or .NET [[Common Language Runtime]] bytecodes. Full-speed debuggers also utilize dynarec to reduce the space overhead incurred in most [[deoptimization]] techniques, and other features such as dynamic [[thread migration]].
==Tasks==
==Example==
Suppose a program is being run in an emulator and needs to copy a null-terminated [[character string|string]]. The program is compiled originally for a very simple processor. This processor can only copy a [[byte]] at a time, and must do so by first reading it from the source string into a [[processor register|register]], then writing it from that register into the destination string. The original program might look something like this:
<source lang=asm>
*[[Yabause]], a multi-platform [[Sega Saturn emulators|Sega Saturn emulator]].<ref>[http://wiki.yabause.org/index.php5?title=SH2_dynamic_recompiler SH2]</ref>
*The backwards compatibility functionality of the [[Xbox 360 emulators|Xbox 360]] (i.e. running games written for the original [[Xbox emulators|Xbox]]) is widely assumed to use dynamic recompilation.
*[[PPSSPP]], a [[Sony]] [[PlayStation Portable emulators|PlayStation Portable emulator]]. Recompilers for both x86 and ARM.*PSEmu Pro, a [[Sony]] [[PlayStation emulators|PlayStation emulator]].
*[[UltraHLE]], the first [[Nintendo 64 emulators|Nintendo 64 emulators]] emulator to fully run commercial games.
*[[PCSX2]],<ref>[http://www.pcsx2.net PCSX 2]</ref> a [[Sony]] [[PlayStation 2 emulators|PlayStation 2 emulator]], has a recompiler called "microVU", the successor of "SuperVU".
*[[Dolphin]], a [[GameCube emulators|Nintendo GameCube]] and [[Wii emulators|Wii emulator]], has a dynarec option.
*GCEmu,<ref>[http://sourceforge.net/projects/gcemu-project GCemuGCEmu]</ref> a [[GameCube emulators|Nintendo GameCube emulator]].
*[[nullDC]], a [[Sega Dreamcast emulators|Sega Dreamcast emulator]] for x86.
*GEM,<ref>{{cite web|url=http://gem.tni.nl/ |title=Gameboy Emulator for MSX &#124; The New Image |publisher=GEM |date= |accessdate=2014-01-12}}</ref> a [[Game Boy/Game Boy Color emulators|Nintendo Game Boy/Color]] emulator for [[MSX emulators|MSX]] uses an optimizing dynamic recompiler.
*[[DeSmuME]],<ref>[http://desmume.org/2013/04/30/desmume-0-9-9-released/ DeSmuME v0.9.9]</ref> a [[Nintendo DS emulators|Nintendo DS emulator]], has a dynarec option.
*Soywiz's Psp,<ref>{{cite web|author=Publicado por Carlos Ballesteros Velasco |url=http://pspemu.soywiz.com/2013/07/release-soywizs-psp-emulator-2013-07-28.html |title=Soywiz's PSP Emulator: Release : Soywiz's Psp Emulator 2013-07-28 (r525) |publisher=Pspemu.soywiz.com |date=2013-07-28 |accessdate=2014-01-12}}</ref> a [[Sony]] [[PlayStation Portable emulators|PlayStation Portable emulator]], has a dynarec option.
==See also==
Anonymous user

Navigation menu