From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36846) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1akepp-0002sS-3M for qemu-devel@nongnu.org; Mon, 28 Mar 2016 17:36:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1akepo-0000s2-Au for qemu-devel@nongnu.org; Mon, 28 Mar 2016 17:36:29 -0400 Sender: Richard Henderson References: <1458910214-12239-1-git-send-email-aleksandar.markovic@rt-rk.com> <1458910214-12239-2-git-send-email-aleksandar.markovic@rt-rk.com> From: Richard Henderson Message-ID: <56F9A3D1.2050402@twiddle.net> Date: Mon, 28 Mar 2016 14:36:17 -0700 MIME-Version: 1.0 In-Reply-To: <1458910214-12239-2-git-send-email-aleksandar.markovic@rt-rk.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1/2] softfloat: Enable run-time-configurable meaning of signaling NaN bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aleksandar Markovic , qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, ehabkost@redhat.com, kbastian@mail.uni-paderborn.de, mark.cave-ayland@ilande.co.uk, agraf@suse.de, petar.jovanovic@imgtec.com, blauwirbel@gmail.com, jcmvbkbc@gmail.com, miodrag.dinic@imgtec.com, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, edgar.iglesias@gmail.com, pbonzini@redhat.com, gxt@mprc.pku.edu.cn, leon.alrae@imgtec.com, afaerber@suse.de, aurelien@aurel32.net, proljc@gmail.com On 03/25/2016 05:50 AM, Aleksandar Markovic wrote: > +float16 float16_default_nan(float_status *status) { { on the next line. > + return const_float64(LIT64( 0xFFF8000000000000 )); Let's please fix the horrible formatting in this file as we touch the lines, please. > -#define floatx80_default_nan_high 0x7FFF > -#define floatx80_default_nan_low LIT64(0xBFFFFFFFFFFFFFFF) > -#else > -#define floatx80_default_nan_high 0xFFFF > -#define floatx80_default_nan_low LIT64( 0xC000000000000000 ) > -#endif > +uint16_t floatx80_default_nan_high(float_status *status) { > +uint64_t floatx80_default_nan_low(float_status *status) { Why do you need two separate functions for this? > +floatx80 floatx80_default_nan(float_status *status) { Seems to me this one is good enough, and indeed preferable. > -#define float128_default_nan_high LIT64(0x7FFF7FFFFFFFFFFF) > -#define float128_default_nan_low LIT64(0xFFFFFFFFFFFFFFFF) ... > +float128 float128_default_nan(float_status *status) { Likewise. > diff --git a/target-alpha/cpu.c b/target-alpha/cpu.c > index 2eab060..1714387 100644 > --- a/target-alpha/cpu.c > +++ b/target-alpha/cpu.c > @@ -277,6 +277,8 @@ static void alpha_cpu_initfn(Object *obj) > #endif > env->lock_addr = -1; > env->fen = 1; > + > + set_snan_bit_is_one(0, &env->fp_status); We've just done a memset of (most of) the entire cpu struct. We don't need to re-initialize this field to zero here. Same with most of the other cpus. r~