From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54825) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XUhhU-0004X7-IQ for qemu-devel@nongnu.org; Thu, 18 Sep 2014 15:49:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XUhhI-0004Eq-PU for qemu-devel@nongnu.org; Thu, 18 Sep 2014 15:49:08 -0400 Received: from mail-ig0-x234.google.com ([2607:f8b0:4001:c05::234]:36033) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XUhhI-0004Dp-Kp for qemu-devel@nongnu.org; Thu, 18 Sep 2014 15:48:56 -0400 Received: by mail-ig0-f180.google.com with SMTP id a13so2049570igq.7 for ; Thu, 18 Sep 2014 12:48:50 -0700 (PDT) Message-ID: <541B3718.9090001@gmail.com> Date: Thu, 18 Sep 2014 14:48:40 -0500 From: Tom Musta MIME-Version: 1.0 References: <1410793421-6453-1-git-send-email-pbonzini@redhat.com> <1410793421-6453-8-git-send-email-pbonzini@redhat.com> In-Reply-To: <1410793421-6453-8-git-send-email-pbonzini@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 07/14] ppc: reorganize gen_compute_fprf List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , qemu-devel@nongnu.org Cc: agraf@suse.de On 9/15/2014 10:03 AM, Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > --- > v1->v2: fixed leak of temporaries > > target-ppc/translate.c | 25 ++++++++++++------------- > 1 file changed, 12 insertions(+), 13 deletions(-) > > diff --git a/target-ppc/translate.c b/target-ppc/translate.c > index c28bddf..a8b6b7c 100644 > --- a/target-ppc/translate.c > +++ b/target-ppc/translate.c > @@ -252,23 +252,22 @@ static inline void gen_reset_fpstatus(void) > > static inline void gen_compute_fprf(TCGv_i64 arg, int set_fprf, int set_rc) > { > - TCGv_i32 t0 = tcg_temp_new_i32(); > + TCGv_i32 t0; > > - if (set_fprf != 0) { > - /* This case might be optimized later */ > - tcg_gen_movi_i32(t0, 1); > - gen_helper_compute_fprf(t0, cpu_env, arg, t0); > - if (unlikely(set_rc)) { > - tcg_gen_mov_i32(cpu_crf[1], t0); > - } > - gen_helper_float_check_status(cpu_env); > - } else if (unlikely(set_rc)) { > - /* We always need to compute fpcc */ > - tcg_gen_movi_i32(t0, 0); > - gen_helper_compute_fprf(t0, cpu_env, arg, t0); > + if (set_fprf == 0 && !set_rc) { > + return; > + } > + > + t0 = tcg_temp_new_i32(); > + tcg_gen_movi_i32(t0, set_fprf != 0); > + gen_helper_compute_fprf(t0, cpu_env, arg, t0); > + if (set_rc) { > tcg_gen_mov_i32(cpu_crf[1], t0); > } > > + if (set_fprf != 0) { > + gen_helper_float_check_status(cpu_env); > + } > tcg_temp_free_i32(t0); > } > > Reviewed-by: Tom Musta