From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53139) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bzk1o-0002qe-Qq for qemu-devel@nongnu.org; Thu, 27 Oct 2016 08:43:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bzk1k-0000Hy-CG for qemu-devel@nongnu.org; Thu, 27 Oct 2016 08:43:28 -0400 Received: from mailapp01.imgtec.com ([195.59.15.196]:55571) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bzk1k-0000Gd-4Z for qemu-devel@nongnu.org; Thu, 27 Oct 2016 08:43:24 -0400 References: <1476803431-7208-1-git-send-email-rth@twiddle.net> <1476803431-7208-17-git-send-email-rth@twiddle.net> From: Yongbok Kim Message-ID: <87518e7a-44c7-0967-beaa-76d5445a2a59@imgtec.com> Date: Thu, 27 Oct 2016 13:43:18 +0100 MIME-Version: 1.0 In-Reply-To: <1476803431-7208-17-git-send-email-rth@twiddle.net> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 16/18] target-mips: Use the new extract op List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson , qemu-devel@nongnu.org On 18/10/2016 16:10, Richard Henderson wrote: > Use extract for EXT and DEXT. > > Signed-off-by: Richard Henderson > --- > target-mips/translate.c | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) > > diff --git a/target-mips/translate.c b/target-mips/translate.c > index d8dde7a..cf79aa4 100644 > --- a/target-mips/translate.c > +++ b/target-mips/translate.c > @@ -4484,11 +4484,12 @@ static void gen_bitops (DisasContext *ctx, uint32_t opc, int rt, > if (lsb + msb > 31) { > goto fail; > } > - tcg_gen_shri_tl(t0, t1, lsb); > if (msb != 31) { > - tcg_gen_andi_tl(t0, t0, (1U << (msb + 1)) - 1); > + tcg_gen_extract_tl(t0, t1, lsb, msb + 1); > } else { > - tcg_gen_ext32s_tl(t0, t0); > + /* The two checks together imply that lsb == 0, > + so this is a simple sign-extension. */ > + tcg_gen_ext32s_tl(t0, t1); > } > break; > #if defined(TARGET_MIPS64) > @@ -4503,10 +4504,7 @@ static void gen_bitops (DisasContext *ctx, uint32_t opc, int rt, > if (lsb + msb > 63) { > goto fail; > } > - tcg_gen_shri_tl(t0, t1, lsb); > - if (msb != 63) { > - tcg_gen_andi_tl(t0, t0, (1ULL << (msb + 1)) - 1); > - } > + tcg_gen_extract_tl(t0, t1, lsb, msb + 1); > break; > #endif > case OPC_INS: > Reviewed-by: Yongbok Kim Regards, Yongbok