From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59464) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFzMR-00080U-Dp for qemu-devel@nongnu.org; Fri, 17 Jul 2015 02:43:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZFzMO-0006qX-8T for qemu-devel@nongnu.org; Fri, 17 Jul 2015 02:43:07 -0400 Received: from mail-wi0-x22e.google.com ([2a00:1450:400c:c05::22e]:36826) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFzMO-0006qI-11 for qemu-devel@nongnu.org; Fri, 17 Jul 2015 02:43:04 -0400 Received: by widjy10 with SMTP id jy10so33258226wid.1 for ; Thu, 16 Jul 2015 23:43:03 -0700 (PDT) Sender: Richard Henderson References: <1436958199-5181-1-git-send-email-aurelien@aurel32.net> <1436958199-5181-10-git-send-email-aurelien@aurel32.net> From: Richard Henderson Message-ID: <55A8A3EF.5070807@twiddle.net> Date: Fri, 17 Jul 2015 07:42:55 +0100 MIME-Version: 1.0 In-Reply-To: <1436958199-5181-10-git-send-email-aurelien@aurel32.net> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH RFC 9/9] tcg: update README about size changing ops List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aurelien Jarno , qemu-devel@nongnu.org Cc: Paolo Bonzini On 07/15/2015 12:03 PM, Aurelien Jarno wrote: > +These ops are all optional in that case they are implemented as mov. > +This is to allow some optimizations if the target maintains registers > +zero or sign extended. For example a MIPS64 CPU requires that all > +32-bit values are stored sign-extended in the registers. This means > +the trunc_shr_i64_i32 should sign-extend the value when moving it > +from a 64-bit to a 32-bit register. It also means ext_i32_i64 can be > +implemented as a simple mov as the value is already sign extended. We need better wording. Each one of the three are optional, and the other two must be implemented. I think we ought to have a check in tcg.c about this, in tcg_add_target_add_op_defs. r~