From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50162) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VPdrq-0004NA-Ag for qemu-devel@nongnu.org; Fri, 27 Sep 2013 15:38:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VPdrh-0005du-S6 for qemu-devel@nongnu.org; Fri, 27 Sep 2013 15:38:22 -0400 Received: from mail-ye0-x22f.google.com ([2607:f8b0:4002:c04::22f]:50774) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VPdrh-0005dq-NG for qemu-devel@nongnu.org; Fri, 27 Sep 2013 15:38:13 -0400 Received: by mail-ye0-f175.google.com with SMTP id q8so994474yen.6 for ; Fri, 27 Sep 2013 12:38:13 -0700 (PDT) Sender: Richard Henderson Message-ID: <5245DEA0.5070102@twiddle.net> Date: Fri, 27 Sep 2013 12:38:08 -0700 From: Richard Henderson MIME-Version: 1.0 References: <1380242934-20953-1-git-send-email-agraf@suse.de> <1380242934-20953-29-git-send-email-agraf@suse.de> In-Reply-To: <1380242934-20953-29-git-send-email-agraf@suse.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 28/60] AArch64: Add movi instruction emulation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: Peter Maydell , Michael Matz , qemu-devel@nongnu.org, C Fontana , Dirk Mueller , Laurent Desnogues , Christoffer Dall On 09/26/2013 05:48 PM, Alexander Graf wrote: > + if (is_k) { > + tcg_imm = tcg_const_i64(imm); > + tcg_gen_deposit_i64(cpu_reg(reg), cpu_reg(reg), tcg_imm, pos, 16); > + tcg_temp_free_i64(tcg_imm); > + } else { > + tcg_gen_movi_i64(cpu_reg(reg), imm << pos); > + } > + > + if (is_n) { > + tcg_gen_not_i64(cpu_reg(reg), cpu_reg(reg)); > + } > + > + if (is_32bit) { > + tcg_gen_ext32u_i64(cpu_reg(reg), cpu_reg(reg)); > + } You've a constant input. This should be done in one tcg op: if (is_k) { ... } else { imm <<= pos; if (is_n) { imm = ~imm; } if (is_32bit) { imm &= 0xffffffffu; } tcg_gen_movi_i64(cpu_reg(reg), imm); } r~