Trying to build qemu 0.7.2 gives the following error: /tmp/qemu-0.7.2/target-i386/ops_sse.h: In function 'op_pshufw_mmx': /tmp/qemu-0.7.2/target-i386/ops_sse.h:574: error: unable to find a register to spill in class 'GENERAL_REGS' /tmp/qemu-0.7.2/target-i386/ops_sse.h:574: error: this is the insn: (insn:HI 18 17 19 0 /tmp/qemu-0.7.2/target-i386/ops_sse.h:569 (set (strict_low_part (subreg:HI (reg/v:DI 63 [ r ]) 0)) (mem/s/j:HI (plus:SI (mult:SI (reg:SI 64) (const_int 2 [0x2])) (reg/v/f:SI 59 [ s ])) [0 <variable>._w S2 A16])) 52 {*movstricthi_1} (insn_list:REG_DEP_TRUE 16 (insn_list:REG_DEP_TRUE 12 (insn_list:REG_DEP_TRUE 53 (nil)))) (expr_list:REG_DEAD (reg:SI 64) (nil))) /tmp/qemu-0.7.2/target-i386/ops_sse.h:574: confused by earlier errors, bailing out make[1]: *** [op.o] Error 1 The related code appears to be: void OPPROTO glue(op_pshufw, SUFFIX) (void) { Reg r, *d, *s; int order; d = (Reg *)((char *)env + PARAM1); s = (Reg *)((char *)env + PARAM2); order = PARAM3; r.W(0) = s->W(order & 3); r.W(1) = s->W((order >> 2) & 3); r.W(2) = s->W((order >> 4) & 3); r.W(3) = s->W((order >> 6) & 3); *d = r; } My version information is: bluefox@icebox:/tmp/qemu-0.7.2$ gcc -v Using built-in specs. Target: i486-linux-gnu Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --with-gxx-include-dir=/usr/include/c++/4.0.2 --enable-shared --with-system-zlib --libexecdir=/usr/lib --enable-nls --without-included-gettext --enable-threads=posix --program-suffix=-4.0 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --enable-checking=release i486-linux-gnu Thread model: posix gcc version 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9) qemu can be found at qemu.org; I had unpacked qemu, cd'd into the directory, and unpacked kqemu into it, then ran ./configure and make, each with no options, as the kqemu documentation says.
Created attachment 9949 [details] the dot-i file thingy you guys wanted the thingy that appeared in a completely different directory than related .c and .h files o.o
Reduced testcase: register struct CPUX86State *env asm("ebp"); register unsigned long T0 asm("ebx"); register unsigned long T1 asm("esi"); register unsigned long T2 asm("edi"); extern int __op_param1, __op_param2, __op_param3; void op_movq(void) { unsigned long long*d, *s; d = (unsigned long long *)((char *)env + ((long)(&__op_param1))); s = (unsigned long long *)((char *)env + ((long)(&__op_param2))); *d = *s; } ----- Hmm, you are starving the RA, so in a way this is not a bug. There is a dup of this bug too.
This is a dup of bug 16185. *** This bug has been marked as a duplicate of 16185 ***