From: Tom Musta <tommusta@gmail.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "qemu-ppc@nongnu.org" <qemu-ppc@nongnu.org>,
QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 01/19] Add New softfloat Routines for VSX
Date: Fri, 25 Oct 2013 08:01:28 -0500 [thread overview]
Message-ID: <526A6BA8.1000001@gmail.com> (raw)
In-Reply-To: <CAFEAcA9+NCKf_QdXSv9vj-cyW-EQPKQkFwJwbjhB1yYD5M2gfg@mail.gmail.com>
Peter: Thanks for your feedback. Responses below.
On 10/25/2013 6:55 AM, Peter Maydell wrote:
> On 24 October 2013 17:17, Tom Musta <tommusta@gmail.com> wrote:
>> This patch adds routines to the softfloat library that are useful for
>> the PowerPC VSX implementation. The routines are, however, not specific
>> to PowerPC and are approprriate for softfloat.
>>
>> The following routines are added:
>>
>> - float32_is_denormal() returns true if the 32-bit floating point number
>> is denormalized.
>> - float64_is_denormal() returns true if the 64-bit floating point number
>> is denormalized.
>
> Can you point me at the patches which use these, please?
> I couldn't find them with a quick search in my email client.
Please see http://lists.nongnu.org/archive/html/qemu-devel/2013-10/msg03108.html
>
>> - float32_get_unbiased_exp() returns the unbiased exponent of a 32-bit
>> floating point number.
>> - float64_get_unbiased_exp() returns the unbiased exponent of a 64-bit
>> floating point number.
>
> These look rather odd to me, and again I can't find the uses in
> your patchset. Returning just the exponent is a bit odd and
> suggests that maybe the split between target code and softfloat
> is in the wrong place.
Please see http://lists.nongnu.org/archive/html/qemu-devel/2013-10/msg03108.html
and http://lists.nongnu.org/archive/html/qemu-devel/2013-10/msg03107.html
and also the corresponding definitions of those instructions in the Power ISA.
What is odd here is the PowerPC instruction(s) :)
But given that softfloat code extracts exponents in numerous places, I do not find
it odd at all that a floating point instruction model for a non-standard
operation might have to do the same.
These functions can easily be kept within the PowerPC code proper if there are
objections to them being added to softfloat. I would rename them, of course, so
that they do not look like softfloat routines.
>> - float32_to_uint64() converts a 32-bit floating point number to an
>> unsigned 64 bit number.
>
> I would put this in its own patch, personally.
Fair enough. Just so that I am clear ... do you mean submit this as a patch
just by itself (not as part of a series of VSX additions)?
>>
>> +INLINE int float32_is_denormal(float32 a)
>> +{
>> + return ((float32_val(a) & 0x7f800000) == 0) &&
>> + ((float32_val(a) & 0x007fffff) != 0);
>> +}
>
> return float32_is_zero_or_denormal(a) && !float32_is_zero(a);
>
> is easier to review and less duplicative of code.
>
> thanks
It surprised me that there were is_zero and is_zero_or_denormal functions but
not is_denormal functions. I would find it more normal to implement the two
primitive functions and then construct is_zero_or_denormal to be the OR of
those two. Until you look at efficiency of the implementation.
next prev parent reply other threads:[~2013-10-25 13:02 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-24 16:16 [Qemu-devel] [PATCH 00/19] PowerPC VSX Stage 3 Tom Musta
2013-10-24 16:17 ` [Qemu-devel] [PATCH 01/19] Add New softfloat Routines for VSX Tom Musta
2013-10-24 18:34 ` Richard Henderson
2013-10-25 11:34 ` Alex Bennée
2013-10-25 11:44 ` Peter Maydell
2013-10-25 13:09 ` Alex Bennée
2013-10-25 13:24 ` Tom Musta
2013-10-25 11:55 ` Peter Maydell
2013-10-25 13:01 ` Tom Musta [this message]
2013-10-25 13:37 ` Peter Maydell
2013-10-24 16:18 ` [Qemu-devel] [PATCH 02/19] Add set_fprf Argument to fload_invalid_op_excp() Tom Musta
2013-10-24 16:19 ` [Qemu-devel] [PATCH 03/19] General Support for VSX Helpers Tom Musta
2013-10-24 18:51 ` Richard Henderson
2013-10-24 20:42 ` Tom Musta
2013-10-24 21:00 ` Richard Henderson
2013-10-24 16:20 ` [Qemu-devel] [PATCH 04/19] Add VSX ISA2.06 xadd Instructions Tom Musta
2013-10-24 19:44 ` Richard Henderson
2013-10-24 16:20 ` [Qemu-devel] [PATCH 05/19] Add VSX ISA2.06 xsub Instructions Tom Musta
2013-10-24 19:48 ` Richard Henderson
2013-10-24 16:21 ` [Qemu-devel] [PATCH 06/19] Add VSX ISA2.06 xmul Instructions Tom Musta
2013-10-24 20:07 ` Richard Henderson
2013-10-24 16:21 ` [Qemu-devel] [PATCH 07/19] Add VSX ISA2.06 xdiv Instructions Tom Musta
2013-10-24 20:08 ` Richard Henderson
2013-10-24 16:22 ` [Qemu-devel] [PATCH 08/19] Add VSX ISA2.06 xre Instructions Tom Musta
2013-10-24 20:11 ` Richard Henderson
2013-10-24 16:22 ` [Qemu-devel] [PATCH 09/19] Add VSX ISA2.06 xsqrt Instructions Tom Musta
2013-10-24 20:23 ` Richard Henderson
2013-10-24 16:23 ` [Qemu-devel] [PATCH 10/19] Add VSX ISA2.06 xrsqrte Instructions Tom Musta
2013-10-24 20:25 ` Richard Henderson
2013-10-24 16:23 ` [Qemu-devel] [PATCH 11/19] Add VSX ISA2.06 xtdiv Instructions Tom Musta
2013-10-24 20:30 ` Richard Henderson
2013-10-24 16:24 ` [Qemu-devel] [PATCH 12/19] Add VSX ISA2.06 xtsqrt Instructions Tom Musta
2013-10-24 20:34 ` Richard Henderson
2013-10-24 16:25 ` [Qemu-devel] [PATCH 13/19] Add VSX ISA2.06 Multiply Add Instructions Tom Musta
2013-10-24 20:38 ` Richard Henderson
2013-10-25 13:49 ` Tom Musta
2013-10-25 16:25 ` Tom Musta
2013-10-25 16:42 ` Richard Henderson
2013-10-25 17:13 ` Tom Musta
2013-10-25 17:29 ` Richard Henderson
2013-10-25 17:20 ` Peter Maydell
2013-10-25 17:34 ` Richard Henderson
2013-10-24 16:25 ` [Qemu-devel] [PATCH 14/19] Add VSX xscmp*dp Instructions Tom Musta
2013-10-24 20:39 ` Richard Henderson
2013-10-24 16:26 ` [Qemu-devel] [PATCH 15/19] Add VSX xmax/xmin Instructions Tom Musta
2013-10-24 20:45 ` Richard Henderson
2013-10-24 21:07 ` Tom Musta
2013-10-24 21:18 ` Richard Henderson
2013-10-24 22:10 ` Peter Maydell
2013-10-25 13:52 ` Tom Musta
2013-10-25 13:55 ` Peter Maydell
2013-10-24 16:26 ` [Qemu-devel] [PATCH 16/19] Add VSX Vector Compare Instructions Tom Musta
2013-10-24 16:27 ` [Qemu-devel] [PATCH 17/19] Add VSX Floating Point to Floating Point Conversion Instructions Tom Musta
2013-10-24 20:49 ` Richard Henderson
2013-10-24 16:27 ` [Qemu-devel] [PATCH 18/19] Add VSX ISA2.06 Integer " Tom Musta
2013-10-24 20:51 ` Richard Henderson
2013-10-24 16:28 ` [Qemu-devel] [PATCH 19/19] Add VSX Rounding Instructions Tom Musta
2013-10-24 20:54 ` Richard Henderson
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=526A6BA8.1000001@gmail.com \
--to=tommusta@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.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).