From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kxkyy-0001mW-0V for qemu-devel@nongnu.org; Wed, 05 Nov 2008 11:11:48 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kxkyv-0001lk-UM for qemu-devel@nongnu.org; Wed, 05 Nov 2008 11:11:47 -0500 Received: from [199.232.76.173] (port=57953 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kxkyv-0001lh-OG for qemu-devel@nongnu.org; Wed, 05 Nov 2008 11:11:45 -0500 Received: from rn-out-0910.google.com ([64.233.170.186]:46008) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Kxkyv-00029l-9n for qemu-devel@nongnu.org; Wed, 05 Nov 2008 11:11:45 -0500 Received: by rn-out-0910.google.com with SMTP id m61so73631rnd.8 for ; Wed, 05 Nov 2008 08:11:44 -0800 (PST) Message-ID: <761ea48b0811050811l18152234jfc3046f2a502fecf@mail.gmail.com> Date: Wed, 5 Nov 2008 17:11:43 +0100 From: "Laurent Desnogues" Subject: Re: [Qemu-devel] [RFC] TCG new op: setcond In-Reply-To: <49105B1D.6080901@redhat.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_8790_26797977.1225901503415" References: <761ea48b0811040215l3fa16cd6j41e7ee750602e6ea@mail.gmail.com> <49105B1D.6080901@redhat.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 ------=_Part_8790_26797977.1225901503415 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello, Here is an updated patch for setcond. Changes since the previous patch: - support TCG i386 for 32 and 64 bit variants - support TCG x86_64 support for 32 and 64 bit variants - fix for x86_64 prefix output - fix for input/output overlap - use setcond for Alpha cmp instructions - add setcondi Digging into x86 is certainly not a pleasant experience for me, especially as I have no experience on it. So this patch may contain bugs and overlooks; note however my changes were tested on x86_64 and i386 platforms with test programs for Alpha and ARM. What remains to be done: - document setcond in tcg/README - implement it in all backends (ARM, PPC, PPC64, SPARC) - use it at least once in every frontend (cris, i386, m68k, MIPS, PPC, sh4, SPARC) - provide tests. Also there's a choice to be done between return 1 if the test succeeds or -1. I am concerned by 64 bit setcond on the register-started i386. Isn't there a high risk the register allocator will run out of registers? If it's so, I guess it should be rewritten with a helper. Thanks to Paul and Avi for their comments and uncovering silly bugs and overlooks. Comments and criticisms welcome as usual :-) Laurent Signed-off-by: Laurent Desnogues ------=_Part_8790_26797977.1225901503415 Content-Type: application/x-bzip2; name=setcond-2.patch.bz2 Content-Transfer-Encoding: base64 X-Attachment-Id: f_fn65lrw70 Content-Disposition: attachment; filename=setcond-2.patch.bz2 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 RThQkAmKwk8= ------=_Part_8790_26797977.1225901503415--