From: Tomasz J. <to...@je...> - 2004-06-02 18:38:39
|
Tomasz Jerzykowski wrote: > Gwenole Beauchesne wrote: > >>> I haven't measured how much faster is the newest version, but it still >>> suffers from some strange 'stops'. >> >> >> >> I have noticed that on AMD64 with gcc 3.3.2 too when experimenting >> with the asm based locking code. I will probably try other >> alternatives. In Unix/sysdeps.h, could you try to disable >> HAVE_TEST_AND_SET for i386 and rebuild at least main_unix.cpp and >> video_x.cpp? >> > > It did the trick. Now SheepShaver rums smoothly and reasonably fast, > especially when color depth of the host display is set to 16 bit (32 bit > is somehow slower). This trick doesn't work on the latest CVS version > (compilation fails after modification). > Let me follow my old thread. This is how SheepShaver CVS doesn't compile when HAVE_TEST_AND_SET is commented out (tested serveral days ago): ========================= c++ -I../kpx_cpu/include -I../kpx_cpu/src -DUSE_JIT -I../include -I. -DHAVE_CONFIG_H -D_REENTRANT -DDATADIR=\"/usr/local/share/SheepShaver\" -g -O2 -I/usr/X11R6/include -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -c ../kpx_cpu/src/cpu/jit/cxxdemangle.cpp -o obj/cxxdemangle.o c++ -o dyngen obj/dyngen.o obj/cxxdemangle.o ./dyngen -o basic-dyngen-ops.hpp obj/basic-dyngen-ops.o c++ -I../kpx_cpu/include -I../kpx_cpu/src -DUSE_JIT -I../include -I. -DHAVE_CONFIG_H -D_REENTRANT -DDATADIR=\"/usr/local/share/SheepShaver\" -g -O2 -I/usr/X11R6/include -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -c ../kpx_cpu/src/cpu/jit/basic-dyngen.cpp -o obj/basic-dyngen.o c++ -I../kpx_cpu/include -I../kpx_cpu/src -DUSE_JIT -I../include -I. -DHAVE_CONFIG_H -D_REENTRANT -DDATADIR=\"/usr/local/share/SheepShaver\" -g -O2 -I/usr/X11R6/include -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -fomit-frame-pointer -mpreferred-stack-boundary=2 -falign-functions=0 -mmmx -msse -msse2 -finline-limit=10000 -fno-reorder-blocks -fno-optimize-sibling-calls -c ../kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp -o obj/ppc-dyngen-ops.o In file included from ../kpx_cpu/src/cpu/ppc/ppc-registers.hpp:151, from ../kpx_cpu/src/cpu/ppc/ppc-cpu.hpp:31, from ../kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:25: ../kpx_cpu/src/cpu/spcflags.hpp:39: error: 'spinlock_t' is used as a type, but is not defined as a type. ../kpx_cpu/src/cpu/spcflags.hpp: In constructor ` basic_spcflags::basic_spcflags()': ../kpx_cpu/src/cpu/spcflags.hpp:44: error: class `basic_spcflags' does not have any field named `lock' ../kpx_cpu/src/cpu/spcflags.hpp:44: error: `SPIN_LOCK_UNLOCKED' undeclared (first use this function) ../kpx_cpu/src/cpu/spcflags.hpp:44: error: (Each undeclared identifier is reported only once for each function it appears in.) ../kpx_cpu/src/cpu/spcflags.hpp: In member function `void basic_spcflags::init(unsigned int)': ../kpx_cpu/src/cpu/spcflags.hpp:54: error: `lock' undeclared (first use this function) ../kpx_cpu/src/cpu/spcflags.hpp:54: error: `spin_lock' undeclared (first use this function) ../kpx_cpu/src/cpu/spcflags.hpp:54: error: `spin_unlock' undeclared (first use this function) ../kpx_cpu/src/cpu/spcflags.hpp: In member function `void basic_spcflags::set(unsigned int)': ../kpx_cpu/src/cpu/spcflags.hpp:60: error: `spin_lock' undeclared (first use this function) ../kpx_cpu/src/cpu/spcflags.hpp:60: error: `spin_unlock' undeclared (first use this function) ../kpx_cpu/src/cpu/spcflags.hpp: In member function `void basic_spcflags::clear(unsigned int)': ../kpx_cpu/src/cpu/spcflags.hpp:63: error: `spin_lock' undeclared (first use this function) ../kpx_cpu/src/cpu/spcflags.hpp:63: error: `spin_unlock' undeclared (first use this function) make: *** [obj/ppc-dyngen-ops.o] Error 1 ========================= Jerzu |