Hi,
I have uploaded an experimental release (hmm, actually everything is
experimental ;-) at:
<http://gwenole.beauchesne.online.fr/basilisk2/files/>
File: BasiliskII-JIT-devel-20001101a.tar.gz
Features:
- The lazy flusher should work correctly now.
- spcflags "optimization" like in the Windows port
- exclusive spcflags handling
In fact, the new spcflags features doesn't seem to improve speed on my
machine. Those of you who have tremendous machines with Pentium III
processors, could you please try the new release ?
- first, with the JIT compiler only
- then, with --enable-spcflags-hack --enable-spcflags-excl in addition.
I will make a full release when I implemented register caching for the
interpreter and probably for the compiler. i.e. keeping the most used
variables into native registers, for as much time as possible. The
variables I plan to cache are: regs.pc_p, regflags, a pointer to the
regs structure.
BTW, I finally caught a gcc 2.95.2 compilation bug :-/
See in uae_cpu/compiler/compemu_support.cpp, down in the
m68k_run_compile() function: blocklen wouldn't get incremented depending
on where the incrementation is done... Do you have other compilers to
test with ? Or is there a constraints error my asm templates ?
Strange enough, cpu levels lower than 4 now appear to work although
slowly. That might be because the compiler got disabled for long periods
of time ?
Another person reported that the cpuopti.c optimization I made (see near
line 206) would not work with compilers earlier than 2.95. In fact, I
think I should manually push and pop the registers before running the
instruction handler in m68k_run_*. Counting on gcc to save those is
probably is Bad Thing...
Bye
--
Gwenolé Beauchesne
|