From: "Alex Bennée" <alex.bennee@linaro.org>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: QEMU Developers <qemu-devel@nongnu.org>,
Aurelien Jarno <aurelien@aurel32.net>,
Richard Henderson <richard.henderson@linaro.org>
Subject: Re: [Qemu-devel] [PULL 18/22] fpu/softfloat: re-factor int/uint to float
Date: Fri, 27 Apr 2018 14:49:23 +0100 [thread overview]
Message-ID: <87zi1okbdo.fsf@linaro.org> (raw)
In-Reply-To: <CAFEAcA_5WHS5_J4vMFjyZX=Dp404bzSpmwwENs_MYKtG07p22w@mail.gmail.com>
Peter Maydell <peter.maydell@linaro.org> writes:
> On 21 February 2018 at 11:05, Alex Bennée <alex.bennee@linaro.org> wrote:
>> +/*
>> + * Integer to float conversions
>> + *
>> + * Returns the result of converting the two's complement integer `a'
>> + * to the floating-point format. The conversion is performed according
>> + * to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
>> + */
>> +
>> +static FloatParts int_to_float(int64_t a, float_status *status)
>> +{
>> + FloatParts r;
>> + if (a == 0) {
>> + r.cls = float_class_zero;
>> + r.sign = false;
>> + } else if (a == (1ULL << 63)) {
>> + r.cls = float_class_normal;
>> + r.sign = true;
>> + r.frac = DECOMPOSED_IMPLICIT_BIT;
>> + r.exp = 63;
>> + } else {
>> + uint64_t f;
>> + if (a < 0) {
>> + f = -a;
>> + r.sign = true;
>> + } else {
>> + f = a;
>> + r.sign = false;
>> + }
>> + int shift = clz64(f) - 1;
>> + r.cls = float_class_normal;
>> + r.exp = (DECOMPOSED_BINARY_POINT - shift);
>> + r.frac = f << shift;
>> + }
>> +
>> + return r;
>> +}
>
> Hi -- Coverity complains about this function (CID1390635) because
> there's a code path through it that doesn't fully initialize
> the struct (the a == 0 case doesn't set r.frac), and it thinks
> that "return r" is a 'use' of all fields in the structure.
> I don't know why it doesn't complain about r.exp.
>
> Should we initialize all of r's fields anyway to shut it up,
> or mark it as a Coverity false-positive?
Hmm tricky - because in some cases we don't want to mess with it. The
fcvt patch for example manually messed with the frac portion to deal
with conversion. But it's done outside of the main canonicalize/pack
routines.
>
> thanks
> -- PMM
--
Alex Bennée
next prev parent reply other threads:[~2018-04-27 13:49 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-21 11:05 [Qemu-devel] [PULL 00/22] re-factor softfloat and add fp16 functions Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 01/22] fpu/softfloat: implement float16_squash_input_denormal Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 02/22] include/fpu/softfloat: remove USE_SOFTFLOAT_STRUCT_TYPES Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 03/22] fpu/softfloat-types: new header to prevent excessive re-builds Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 04/22] target/*/cpu.h: remove softfloat.h Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 05/22] include/fpu/softfloat: implement float16_abs helper Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 06/22] include/fpu/softfloat: implement float16_chs helper Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 07/22] include/fpu/softfloat: implement float16_set_sign helper Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 08/22] include/fpu/softfloat: add some float16 constants Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 09/22] fpu/softfloat: improve comments on ARM NaN propagation Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 10/22] fpu/softfloat: move the extract functions to the top of the file Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 11/22] fpu/softfloat: define decompose structures Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 12/22] fpu/softfloat: re-factor add/sub Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 13/22] fpu/softfloat: re-factor mul Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 14/22] fpu/softfloat: re-factor div Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 15/22] fpu/softfloat: re-factor muladd Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 16/22] fpu/softfloat: re-factor round_to_int Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 17/22] fpu/softfloat: re-factor float to int/uint Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 18/22] fpu/softfloat: re-factor int/uint to float Alex Bennée
2018-04-27 12:15 ` Peter Maydell
2018-04-27 13:49 ` Alex Bennée [this message]
2018-05-08 10:41 ` Peter Maydell
2018-05-08 10:54 ` Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 19/22] fpu/softfloat: re-factor scalbn Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 20/22] fpu/softfloat: re-factor minmax Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 21/22] fpu/softfloat: re-factor compare Alex Bennée
2018-02-21 11:05 ` [Qemu-devel] [PULL 22/22] fpu/softfloat: re-factor sqrt Alex Bennée
2018-02-22 11:36 ` [Qemu-devel] [PULL 00/22] re-factor softfloat and add fp16 functions Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zi1okbdo.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=aurelien@aurel32.net \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).