From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51001) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ULERN-0002mA-48 for qemu-devel@nongnu.org; Thu, 28 Mar 2013 11:08:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ULERJ-0003Jm-Qg for qemu-devel@nongnu.org; Thu, 28 Mar 2013 11:08:33 -0400 Received: from mail-ob0-x233.google.com ([2607:f8b0:4003:c01::233]:64217) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ULERJ-0003Jg-Ia for qemu-devel@nongnu.org; Thu, 28 Mar 2013 11:08:29 -0400 Received: by mail-ob0-f179.google.com with SMTP id un3so9289348obb.38 for ; Thu, 28 Mar 2013 08:08:28 -0700 (PDT) Sender: Richard Henderson Message-ID: <51545CE7.30402@twiddle.net> Date: Thu, 28 Mar 2013 08:08:23 -0700 From: Richard Henderson MIME-Version: 1.0 References: <1364410353-24728-1-git-send-email-rth@twiddle.net> <1364410353-24728-9-git-send-email-rth@twiddle.net> <20130328150327.GC5000@ohm.aurel32.net> In-Reply-To: <20130328150327.GC5000@ohm.aurel32.net> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 08/12] tcg-s390: Remove constraint letters for and List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aurelien Jarno Cc: qemu-devel@nongnu.org, agraf@suse.de On 03/28/2013 08:03 AM, Aurelien Jarno wrote: >> Since we have a free temporary and can always just load the constant, we >> > ought to do so, rather than spending the same effort constraining the const. > Is it really a good idea doing so? If a constraint can't be satisfied > the TCG code will also load the constant in a register, with the > difference that the register is not trashed and might be reused later > instead of reloading the constant again. Of course it means one more > register available, but the S390 target doesn't really have issues > with the number of available registers. > My main thinking is along the lines you yourself pointed out when the code was first written -- it's really quite hard to figure out what constants are implementable for AND. It gets even worse with a patch further in the series that uses ROTATE AND INSERT SELECTED BITS. It's complicated enough that it *seems* better to just go ahead and accept all constants. Even from a maintainence point of view -- we no longer have to have two big functions match up. r~