From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47915) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1awAHo-0006uU-Ho for qemu-devel@nongnu.org; Fri, 29 Apr 2016 11:25:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1awAHc-0002hu-DT for qemu-devel@nongnu.org; Fri, 29 Apr 2016 11:24:50 -0400 Message-ID: <57237C84.8040907@imgtec.com> Date: Fri, 29 Apr 2016 16:23:48 +0100 From: Leon Alrae MIME-Version: 1.0 References: <1460995422-14373-1-git-send-email-aleksandar.markovic@rt-rk.com> <1460995422-14373-8-git-send-email-aleksandar.markovic@rt-rk.com> In-Reply-To: <1460995422-14373-8-git-send-email-aleksandar.markovic@rt-rk.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v5 7/9] target-mips: Add nan2008 flavor of .. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aleksandar Markovic Cc: qemu-devel@nongnu.org, peter.maydell@linaro.org, proljc@gmail.com, kbastian@mail.uni-paderborn.de, mark.cave-ayland@ilande.co.uk, agraf@suse.de, blauwirbel@gmail.com, jcmvbkbc@gmail.com, aleksandar.markovic@imgtec.com, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, petar.jovanovic@imgtec.com, pbonzini@redhat.com, miodrag.dinic@imgtec.com, edgar.iglesias@gmail.com, gxt@mprc.pku.edu.cn, afaerber@suse.de, aurelien@aurel32.net, rth@twiddle.net, maciej.rozycki@imgtec.com On 18/04/16 17:03, Aleksandar Markovic wrote: > @@ -3049,6 +3050,330 @@ uint32_t helper_float_floorw_s(CPUMIPSState *env, uint32_t fst0) > return wt2; > } > > +uint64_t helper_float_cvt_2008_l_d(CPUMIPSState *env, uint64_t fdt0) > +{ > + uint64_t dt2; > + > + dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); > + if (get_float_exception_flags(&env->active_fpu.fp_status) > + & (float_flag_invalid) { unnecessary parentheses > @@ -8919,7 +8920,11 @@ static void gen_farith (DisasContext *ctx, enum fopcode op1, > TCGv_i64 fp64 = tcg_temp_new_i64(); > > gen_load_fpr32(ctx, fp32, fs); > - gen_helper_float_roundl_s(fp64, cpu_env, fp32); > + if ((ctx->insn_flags & ISA_MIPS32R6) && (ctx->nan2008)) { Why testing the version of the architecture? This will generate wrong helper for P5600 which is R5 and IEEE 754-2008 compliant. Leon > + gen_helper_float_round_2008_l_s(fp64, cpu_env, fp32); > + } else { > + gen_helper_float_round_l_s(fp64, cpu_env, fp32); > + } > tcg_temp_free_i32(fp32); > gen_store_fpr64(ctx, fp64, fd); > tcg_temp_free_i64(fp64);