From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MrD0E-0006Bj-AA for qemu-devel@nongnu.org; Fri, 25 Sep 2009 11:46:34 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MrD0D-0006BF-FF for qemu-devel@nongnu.org; Fri, 25 Sep 2009 11:46:33 -0400 Received: from [199.232.76.173] (port=44912 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MrD0C-0006B3-Up for qemu-devel@nongnu.org; Fri, 25 Sep 2009 11:46:33 -0400 Received: from fg-out-1718.google.com ([72.14.220.154]:48545) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MrD0C-0006cZ-Ku for qemu-devel@nongnu.org; Fri, 25 Sep 2009 11:46:32 -0400 Received: by fg-out-1718.google.com with SMTP id e21so211601fga.10 for ; Fri, 25 Sep 2009 08:46:31 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <761ea48b0907241023x62cc273y7ed6ff11cd600539@mail.gmail.com> Date: Fri, 25 Sep 2009 17:46:29 +0200 Message-ID: <761ea48b0909250846y6ebe4fcepff1219a637cbcea6@mail.gmail.com> Subject: Re: [Qemu-devel] [PATCH] ARM back-end: Fix register numbering for div/divu and add TCG not From: Laurent Desnogues Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: andrzej zaborowski Cc: qemu-devel@nongnu.org On Sat, Aug 22, 2009 at 2:03 PM, andrzej zaborowski wro= te: > 2009/7/24 Laurent Desnogues : >> Hello, >> >> this patch: >> >> =A0- fixes argument numbers for div2 and divu2 > > But "0" is not defined in target_parse_constraint? =A0Does div2 not work > as is now? Given Gary Thomas latest question, I guess it's time to resurrect that discussion :-) Constraints defined as numbers are handled internally by TCG in tcg_add_target_add_op_defs. My understanding is that they mean that an input and an output arg are aliased. I don't think it's what the constraint for div2 and divu2 is trying to express. Also the div helper looks broken: it potentially restores less registers than what it saved, and uses ldrt. My proposed fix was completely wrong, but I have no time to make a correct one. Laurent