WinUAE ›› The Emulation ››
Parent Previous Next

WinUAE Documentation


JIT - Just In Time

UAE has always been hampered by being somewhat lacking in CPU performance.
Undoubtedly, it was amazingly fast for what it did, but it never really was an alternative to a decked out, no expense spared Amiga. The Just In Time compiler should help change that.

UAE can now emulate the CPU at considerably more than 060 speeds. That should do for a while - although further speedups are still possible.

A description of what the settings will cause the JIT compiler to do:

Cache Size: The size (in kB) the JIT compiler uses to store pretranslated code. When this becomes full, or when the OS issues a flush icache instruction, this gets completely emptied, and then refilled during execution. Setting it to 0 will disable the JIT compiler.

Const Jump: If this enabled, unconditional branches will not end a block. Effectively, UAE-JIT compiles "through" them. Generally, that's a good idea, as it improves performance.
However, it makes soft cache flushing impossible for some blocks, so if you experience lots and lots of soft cache flushes (e.g. when using a Mac emulator), you might try "no" and see whether it does any better.

FPU Support: If this is enabled, the JIT compiler will be used for the most commonly used FPU instructions. Unchecking this option will disable JIT-compiling for the FPU.

Force Settings: Will force the JIT compiler to work with the method the user chooses.

Direct, Indirect, After Picasso: These describe how aggressive to be when it comes to accessing Amiga memory. If you choose "Direct", the emulation will be very aggressive. If you choose "Indirect", the emulation will always use the slower but safe method. "AfterPic" uses the safe method until the first time a Picasso96 mode is switched on, and the aggressive method
from then on. Unless you are not using P96 graphics, there isn't much point setting this to "direct". During the startup, weird and wonderful things happen in the Amiga, and only having faith in the aggressive method once that difficult time is over is certainly a wise thing to do.

No Flags: Whether to optimize away flag generation when it isn't needed. There really shouldn't be any reason why you'd want to disable this option. If you find something that
works with "no" and doesn't with "yes", it most likely is a bug and you should report it.

Hard Flush: If this is unchecked, an OS induced icache flush doesn't actually empty the cache, but instead checksumming will be used to check whether blocks have to be discarded. You'll probably want to leave this at its default (otherwise lots of stuff, like the OS, gets translated over and over).


The JIT patch was developed by Bernd "Bernie" Meyer, this description is a slightly edited and very shortened version of his documentation.



Help content is under the terms of the GNU Free Documentation License.

Created with the Personal Edition of HelpNDoc: Generate EPub eBooks with ease