From: Alexander v. G. <kal...@un...> - 2012-06-19 13:34:50
|
On 18.06.2012 23:18, Gwenole Beauchesne wrote: > Hi, > > Le 19 juin 2012 à 02:27, Frank Trampe a écrit : > >> Given the high level of interest in improving SheepShaver, it seems like >> it might be good to get it to the point at which it compiles on newer >> versions of Mac O.S., which probably means getting the code to compile in >> clang-llvm. > > The JIT based on dyngen needs to be built with GCC. You can select the GCC > compiler to be used, see DYNGEN_CC > variable. > > Here are the solutions for the PPC emulator, in increasing order of > complexity to implement: > > 1. Always use GCC as it is intended, and set DYNGEN_CC accordingly. > 2. Ship with pre-compiled ELF binaries and regenerate synthetic opcodes > from that, or ship with pre-generated > .{h,cpp} files that implement the opcodes for the supported target > architectures (x86, x86_64, etc.) > 3. Rework the JIT: migrate to TCG but VMX emulation performance will > suffer, migrate to a full-blown DBT engine > > I'd like to keep the dyngen-based generator for now as it would allow for > easy update for AVX1/AVX2 support. At some > point, I was also working on a mix of dyngen + something similar to what > was implemented for QEMU (TCG). I was actually looking into this for SheepShear... looks like a *big* undertaking though. qemu dropped the dyngen stuff around 4 years ago. At the moment i'm re-factoring all of the flat source files into classes (It should make moving to another emulation core easier.) https://github.com/kallisti5/sheepshear/commit/042f10a201a2dc3a17f52b3fa6144e03130552e2 https://github.com/kallisti5/sheepshear/blob/master/src/include/adb.h https://github.com/kallisti5/sheepshear/commit/7af077b21e243b6f2ebc3b700d73e1b2c3af9674 https://github.com/kallisti5/sheepshear/blob/master/src/include/audio.h https://github.com/kallisti5/sheepshear/blob/master/src/include/platform/Unix/platform_audio.h -- Alex |