diff -ru qemu-0.6.0/Makefile.target qemu-0.6.0-gcc3/Makefile.target --- qemu-0.6.0/Makefile.target 2004-07-10 20:20:09.000000000 +0200 +++ qemu-0.6.0-gcc3/Makefile.target 2004-07-28 13:05:31.000000000 +0200 @@ -73,7 +73,7 @@ CFLAGS+=-fomit-frame-pointer OP_CFLAGS=$(CFLAGS) -mpreferred-stack-boundary=2 ifeq ($(HAVE_GCC3_OPTIONS),yes) -OP_CFLAGS+= -falign-functions=0 +OP_CFLAGS+= -falign-functions=0 -fno-gcse else OP_CFLAGS+= -malign-functions=0 endif diff -ru qemu-0.6.0/target-i386/op.c qemu-0.6.0-gcc3/target-i386/op.c --- qemu-0.6.0/target-i386/op.c 2004-07-10 20:20:09.000000000 +0200 +++ qemu-0.6.0-gcc3/target-i386/op.c 2004-07-28 13:08:00.000000000 +0200 @@ -20,11 +20,9 @@ /* XXX: must use this define because the soft mmu macros have huge register constraints so they cannot be used in any C code. gcc 3.3 - does not seem to be able to handle some constraints in rol - operations, so we disable it. */ -#if !(__GNUC__ == 3 && __GNUC_MINOR__ == 3) + does not seem to be able to handle some constraints in rol unless we + disable gcse optimization. */ #define ASM_SOFTMMU -#endif #include "exec.h" /* n must be a constant to be efficient */