|
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
|