From: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
To: "Paul A. Clarke" <pc@us.ibm.com>
Cc: richard.henderson@linaro.org, qemu-ppc@nongnu.org,
qemu-devel@nongnu.org, david@gibson.dropbear.id.au
Subject: Re: [Qemu-devel] [PATCH v2] ppc: Fix emulated single to double denormalized conversions
Date: Tue, 20 Aug 2019 01:58:41 +0200 [thread overview]
Message-ID: <CAL1e-=i31Ab782y==5HbEwZRS+a+ESnPXok2S55nnPsHOMCnpQ@mail.gmail.com> (raw)
In-Reply-To: <1566250936-14538-1-git-send-email-pc@us.ibm.com>
20.08.2019. 00.32, "Paul A. Clarke" <pc@us.ibm.com> је написао/ла:
>
> From: "Paul A. Clarke" <pc@us.ibm.com>
>
> helper_todouble() was not properly converting any denormalized 32 bit
> float to 64 bit double.
>
> Fix-suggested-by: Richard Henderson <richard.henderson@linaro.org>
> Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
>
> v2:
> - Splitting patch "ppc: Three floating point fixes"; this is just one
part.
> - Original suggested "fix" was likely flawed. v2 is rewritten by
> Richard Henderson (Thanks, Richard!); I reformatted the comments in a
> couple of places, compiled, and tested.
> ---
Paul, the fix looks great, it is also good that it is a stand-alone patch
now, and thrre is a history too, and I just want to bring to your attention
a couple of technicalities to make this patch perfect:
- our standard phrase for fix suggestion is "Suggested-by:" (without
preceeding"Fix-");
- the patch history should be preceeded by a line with three dashes ("---")
- that way it will not become a part of the permanent commit message once
the patch is applied to the main tree, and we want that, since patch
history plays its role only during review process.
Looking forward to your sending even more patches!!
Aleksandar
> target/ppc/fpu_helper.c | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c
> index 52bcda2..07bc905 100644
> --- a/target/ppc/fpu_helper.c
> +++ b/target/ppc/fpu_helper.c
> @@ -73,11 +73,20 @@ uint64_t helper_todouble(uint32_t arg)
> /* Zero or Denormalized operand. */
> ret = (uint64_t)extract32(arg, 31, 1) << 63;
> if (unlikely(abs_arg != 0)) {
> - /* Denormalized operand. */
> - int shift = clz32(abs_arg) - 9;
> - int exp = -126 - shift + 1023;
> + /*
> + * Denormalized operand.
> + * Shift fraction so that the msb is in the implicit bit
position.
> + * Thus, shift is in the range [1:23].
> + */
> + int shift = clz32(abs_arg) - 8;
> + /*
> + * The first 3 terms compute the float64 exponent. We then
bias
> + * this result by -1 so that we can swallow the implicit bit
below.
> + */
> + int exp = -126 - shift + 1023 - 1;
> +
> ret |= (uint64_t)exp << 52;
> - ret |= abs_arg << (shift + 29);
> + ret += (uint64_t)abs_arg << (52 - 23 + shift);
> }
> }
> return ret;
> --
> 1.8.3.1
>
>
next prev parent reply other threads:[~2019-08-19 23:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-19 21:42 [Qemu-devel] [PATCH v2] ppc: Fix emulated single to double denormalized conversions Paul A. Clarke
2019-08-19 23:58 ` Aleksandar Markovic [this message]
2019-08-20 1:00 ` David Gibson
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='CAL1e-=i31Ab782y==5HbEwZRS+a+ESnPXok2S55nnPsHOMCnpQ@mail.gmail.com' \
--to=aleksandar.m.mail@gmail.com \
--cc=david@gibson.dropbear.id.au \
--cc=pc@us.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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).