From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JcA4G-0002su-QC for qemu-devel@nongnu.org; Wed, 19 Mar 2008 21:59:44 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JcA4E-0002sX-4E for qemu-devel@nongnu.org; Wed, 19 Mar 2008 21:59:43 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JcA4E-0002sP-0X for qemu-devel@nongnu.org; Wed, 19 Mar 2008 21:59:42 -0400 Received: from bay0-omc1-s7.bay0.hotmail.com ([65.54.246.79]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JcA4D-0002Tw-IP for qemu-devel@nongnu.org; Wed, 19 Mar 2008 21:59:41 -0400 Message-ID: From: "C.W. Betts" Subject: Re: [Qemu-devel] PATCH, RFC: Convert x86 SSE ops to TCG Date: Wed, 19 Mar 2008 19:59:14 -0600 References: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart109654189.vt28baaylJ"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <200803191959.26680.computers57@hotmail.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Blue Swirl --nextPart109654189.vt28baaylJ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Wednesday 19 March 2008 01:23:27 pm Blue Swirl wrote: > These patches converts x86 SSE ops to TCG, which could possibly help > compiling Qemu using some GCC versions on i386 host. The resulting > version does not crash immediately. Please test. I get the following errors when I compile the helper.c file using gcc 3.4.6: gcc-3.4 -fomit-frame-pointer -I. -I.. -I/home/test/makestuff/qemu-sse/targ= et-i386 -I/home/test/makestuff/qemu-sse -MMD -MP -DNEED_CPU_H -D_GNU_SOURCE= -D_FILE_OFFSET_BITS=3D64 -D_LARGEFILE_SOURCE -I/home/test/makestuff/qemu-s= se/tcg -I/home/test/makestuff/qemu-sse/tcg/i386 -I/home/test/makestuff/qemu= =2Dsse/fpu -DHAS_AUDIO -DHAS_AUDIO_CHOICE -I/home/test/makestuff/qemu-sse/= slirp -mfpmath=3Dsse -march=3Dpentium3 -msse -Wall -O2 -g -fno-strict-alias= ing -mfpmath=3Dsse -march=3Dpentium3 -msse -m32 -c -o helper.o /home/test/m= akestuff/qemu-sse/target-i386/helper.c /home/test/makestuff/qemu-sse/target-i386/helper.c: In function `svm_check_= intercept_param': /home/test/makestuff/qemu-sse/target-i386/helper.c:4315: error: unable to f= ind a register to spill in class `GENERAL_REGS' /home/test/makestuff/qemu-sse/target-i386/helper.c:4315: error: this is the= insn: (insn:HI 353 352 354 39 /home/test/makestuff/qemu-sse/target-i386/helper.c:= 4308 (parallel [ (set (reg:DI 167 [ .intercept ]) (lshiftrt:DI (reg:DI 167 [ .intercept ]) (subreg:QI (reg:SI 166) 0))) (clobber (scratch:SI)) (clobber (reg:CC 17 flags)) ]) 309 {lshrdi3_1} (insn_list 351 (insn_list 352 (nil))) (expr_list:REG_DEAD (reg:SI 166) (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_UNUSED (scratch:SI) (nil))))) /home/test/makestuff/qemu-sse/target-i386/helper.c:4315: confused by earlie= r errors, bailing out make: *** [helper.o] Error 1 and the following when using gcc 4.2: gcc -fomit-frame-pointer -I. -I.. -I/home/test/makestuff/qemu-sse/target-i= 386 -I/home/test/makestuff/qemu-sse -MMD -MP -DNEED_CPU_H -D_GNU_SOURCE -D_= =46ILE_OFFSET_BITS=3D64 -D_LARGEFILE_SOURCE -I/home/test/makestuff/qemu-sse= /tcg -I/home/test/makestuff/qemu-sse/tcg/i386 -I/home/test/makestuff/qemu-s= se/fpu -DHAS_AUDIO -DHAS_AUDIO_CHOICE -I/home/test/makestuff/qemu-sse/slir= p -mfpmath=3Dsse -march=3Dpentium3 -msse -Wall -O2 -g -fno-strict-aliasing = =2Dmfpmath=3Dsse -march=3Dpentium3 -msse -m32 -c -o helper.o /home/test/mak= estuff/qemu-sse/target-i386/helper.c /home/test/makestuff/qemu-sse/target-i386/ops_sse.h: In function =E2=80=98h= elper_pshufw_mmx=E2=80=99: /home/test/makestuff/qemu-sse/target-i386/ops_sse.h:583: error: unable to f= ind a register to spill in class =E2=80=98GENERAL_REGS=E2=80=99 /home/test/makestuff/qemu-sse/target-i386/ops_sse.h:583: error: this is the= insn: (insn:HI 48 60 49 2 /home/test/makestuff/qemu-sse/target-i386/ops_sse.h:582= (set (mem/s:DI (plus:SI (reg:SI 60 [ env.850 ]) (reg/v:SI 62 [ dst_offset ])) [0 S8 A32]) (reg/v:DI 61 [ r ])) 56 {*movdi_2} (insn_list:REG_DEP_TRUE 3 (insn_= list:REG_DEP_TRUE 46 (nil))) (expr_list:REG_DEAD (reg/v:DI 61 [ r ]) (expr_list:REG_DEAD (reg:SI 60 [ env.850 ]) (expr_list:REG_DEAD (reg/v:SI 62 [ dst_offset ]) (nil))))) /home/test/makestuff/qemu-sse/target-i386/ops_sse.h:583: confused by earlie= r errors, bailing out make: *** [helper.o] Error 1 Also, the x86_64 target compiled, but didn't link, saying that funtions 'ge= n_op_movq_T0_mm_mmx' and 'gen_op_movq_mm_T0_mmx' had undefined references. --nextPart109654189.vt28baaylJ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) iD8DBQBH4cT+IXkdd5hN+dsRAmIUAKCKx2Oe6zHdPGJVpTnlT9JlkX9t1QCgprF0 SsqotmyRbkQ+CA9RoVjWsEE= =eNm4 -----END PGP SIGNATURE----- --nextPart109654189.vt28baaylJ--