From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40183) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W1gpF-0000Wk-43 for qemu-devel@nongnu.org; Fri, 10 Jan 2014 13:29:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W1gp4-000576-P1 for qemu-devel@nongnu.org; Fri, 10 Jan 2014 13:28:57 -0500 Received: from mail-qe0-x22d.google.com ([2607:f8b0:400d:c02::22d]:57840) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W1gp4-000570-H0 for qemu-devel@nongnu.org; Fri, 10 Jan 2014 13:28:46 -0500 Received: by mail-qe0-f45.google.com with SMTP id 6so4733963qea.4 for ; Fri, 10 Jan 2014 10:28:46 -0800 (PST) Sender: Richard Henderson Message-ID: <52D03BD9.10908@twiddle.net> Date: Fri, 10 Jan 2014 10:28:41 -0800 From: Richard Henderson MIME-Version: 1.0 References: <1389373972-27686-1-git-send-email-peter.maydell@linaro.org> <1389373972-27686-2-git-send-email-peter.maydell@linaro.org> <52D03657.5070308@twiddle.net> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 01/10] target-arm: A64: Add SIMD ld/st multiple List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Patch Tracking , Michael Matz , QEMU Developers , Alexander Graf , Claudio Fontana , Dirk Mueller , Will Newton , Laurent Desnogues , =?UTF-8?B?QWxleCBCZW5uw6ll?= , "kvmarm@lists.cs.columbia.edu" , Christoffer Dall On 01/10/2014 10:18 AM, Peter Maydell wrote: >> > Maybe better to hoist load of >> > tcg_rn to before initial assignment of tcg_addr? > Not sure what you have in mind here. Pulling the > cpu_reg_sp() call out one level like: > > if (is_postidx) { > int rm = extract32(insn, 16, 5); > TCGv_i64 tcg_rn = cpu_reg_sp(s, rn); > if (rm == 31) { > tcg_gen_mov_i64(tcg_rn, tcg_addr); > } else { > tcg_gen_add_i64(tcg_rn, tcg_rn, cpu_reg(s, rm)); > } > } > > seems like a good idea though. I was thinking TCGv_i64 tcg_rn = cpu_reg_sp(s, rn); TCGv_i64 tcg_addr = tcg_temp_new_i64(); tcg_gen_mov_i64(tcg_addr, tcg_rn); up above. But even as you have there is good. r~