From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56945) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TFBng-00043u-7f for qemu-devel@nongnu.org; Fri, 21 Sep 2012 18:34:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TFBnf-00010V-9V for qemu-devel@nongnu.org; Fri, 21 Sep 2012 18:34:20 -0400 Received: from fe01x03-cgp.akado.ru ([77.232.31.164]:53357 helo=akado.ru) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TFBnf-00010R-1l for qemu-devel@nongnu.org; Fri, 21 Sep 2012 18:34:19 -0400 Date: Sat, 22 Sep 2012 02:34:06 +0400 (MSK) From: malc In-Reply-To: <505CE864.1050701@twiddle.net> Message-ID: References: <1348247620-12734-1-git-send-email-rth@twiddle.net> <505CE864.1050701@twiddle.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: Re: [Qemu-devel] [PATCH v2 0/7] tcg: movcond (ppc32 version) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson Cc: qemu-devel@nongnu.org, Aurelien Jarno On Fri, 21 Sep 2012, Richard Henderson wrote: > On 09/21/2012 01:10 PM, malc wrote: > > + if (dest == v2) { > > + label_ptr = s->code_ptr; > > + tcg_out32 (s, tcg_to_bc[tcg_invert_cond (cond)]); > > + tcg_out_mov (s, TCG_TYPE_I32, dest, v1); > > + reloc_pc14 (label_ptr, (tcg_target_long) s->code_ptr); > > + } > > + else { > > + tcg_out_mov (s, TCG_TYPE_I32, dest, v1); > > + label_ptr = s->code_ptr; > > + tcg_out32 (s, tcg_to_bc[cond]); > > + tcg_out_mov (s, TCG_TYPE_I32, dest, v2); > > + reloc_pc14 (label_ptr, (tcg_target_long) s->code_ptr); > > + } > > How about > > if (dest == v2) { > cond = tcg_invert_cond(cond); > v2 = v1; > } else if (dest != v1) { > tcg_out_mov(s, TCG_TYPE_I32, dest, v1); > } > /* Branch forward over one insn. */ > tcg_out32 (s, tcg_to_bc[cond] | 4); > tcg_out_mov(s, TCG_TYPE_I32, dest, v2); > > which avoids an extra mov if dest == v1, and also minimizes the code. Yes, thanks, that's better (save for | 4 part which is 4 too little) -- mailto:av1474@comtv.ru