First post, by truth_deleted
The x86-specific dynrec core, also referred to as the general recompiler, is active where core=dynamic in the dosbox configuration line and dynamic-x86 core is disabled in configure line. I believe this core was developed after dynamic-x86 and features portability to other architectures by inclusion of architecture specific "risc.xyz" files. This core works well with the native dosbox OS, but W3.1 and 32-bit OS show runtime errors on boot under this core. Isolated the problem as inherent to the nature of these recompiling cores and one of their speed optimizations. Attached is a patch (may not apply cleanly to SVN) to reduce the number of instructions per cache block which circumvents the runtime errors, but there is a loss of speed. However, the performance is still well above that of the normal core (with non-recursion function patch I previously posted at vogons).
The dynamic-x86 is certainly the fastest x86 core along with broad game compatibility. Optimizing instructions in assembly is possible to do in other architectures, but the current dynrec system based on C/C++ is much more accessible. It was coded for this reason. Therefore, the attached minor patch may allow other architectures to easily run other 32-bit operating systems. I also successfully tested this method with UT99 in dosbox/95 while V1 emulation was active (thanks to kekko, gulikoza). However, the dynrec core requires a "non-recursion" patch to work with Codeholio's IDE emulation.
The normal core with the non-recursion feature provides some compatibility with 95, but the dynrec core is both faster and seems to offer better compatibility. This would further future-proof dosbox against changing cpu architectures, even though the dynrec core requires donated code specific for other systems.
For testing, used DOS Quake which relies on the FPU emulation, but the dynrec core still maintained playable framerates, roughly 1/2 to 1/3 the speed of the dynamic core (even with the cache block optimization disabled and no fpu-x86 emulation). Even UT99 showed only a 1/2 reduction in speed in this configuration.