From: Stuart Brady <sdb@zubnet.me.uk>
To: Aurelien Jarno <aurelien@aurel32.net>
Cc: "Andreas Färber" <andreas.faerber@web.de>,
"Riku Voipio" <riku.voipio@iki.fi>,
"QEMU Developers" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 1/6] softfloat: remove HPPA specific code
Date: Wed, 5 Jan 2011 23:13:06 +0000 [thread overview]
Message-ID: <20110105231306.GA20254@zubnet.me.uk> (raw)
In-Reply-To: <20110105102106.GD15256@volta.aurel32.net>
On Wed, Jan 05, 2011 at 11:21:06AM +0100, Aurelien Jarno wrote:
> But that's not the subject we are talking about HPPA guest support.
> target-hppa fork still (partially) uses dyngen code, which we don't
> support in upstream for more than *2 years*.
I'd agree -- the fork is currently dead. Whilst I do plan to revive it
at some point, I would support removal of those particular lines, as:
Dead code is noise. It doesn't contribute anything, so you may as
well remove it.
It's easy enough to add it back at a later date.
Dead code is buggy code. Previously, the code was quietening
signaling NaNs incorrectly. MIPS now uses a default quiet NaN,
but HPPA would need a different fix.
It's not even clear which of the two possible fixes should be applied
(or whether both should be applied with a means of selecting the
behaviour at run-time). I gather that we need to clear the MSB of
the significand, and then set its least-significant-but-one bit,
either unconditionally, or perhaps only if the significand would
otherwise be zero. However, I don't yet know which of those two
behaviours is implemented by hardware, and even if only one is
implemented, I still feel we'd still need a comment explaining that
the architecture's specification permits the alternate behaviour.
A few random thank-yous:
I do really appreciate the effort to avoid removing lines that would
only be added back at a later date -- if we had an HPPA target fork
that was ready to be merged back in a week or two, then I'd argue that
there's no point, but that's not the case.
Thanks for the comments on sNaN quietening for HPPA. I would hopefully
read the PA1.1 spec thoroughly enough and test on real hardware upon
reaching the point where floating point support is somewhere higher
up on the TODO list... :-) However, the comments can hardly hurt!
What is important here is that the code be rewritten in a clean manner,
so that there are no unnecessary obstacles to modifying SoftFloat to
support new targets. The patches that I've seen definitely seem to
move in that direction, so I'm quite happy. Of course, fixing those
architectures that are already upstream is the main objective! -- and
if this helps other forks, that can't be a bad thing.
I do have a few concerns regarding SoftFloat, though:
FIXMEs should be left in the code (or a document maintained on the
Wiki) to keep track of which architectures have been considered
(which I believe are x86, arm, mips, ppc) and which ones haven't.
This is in reference to one particular FIXME that was removed,
but perhaps shouldn't have been.
Is there any plan to deal with use of float*_is_quiet_nan(), where
float*_is_any_nan() was intended? These should really either be
fixed (and tested), or if not, a FIXME should be added.
Perhaps it would be worth documenting the IEEE 754-2008 behaviour,
especially in any cases where we already happen to implement that
behaviour? (Once I've actually looked at IEEE 754-2008, I might
be able to contribute something in this regard.)
I do appreciate that there's still work to be done -- my intent here is
just to make sure that nothing's in danger of slipping through the net.
Regarding the TARGET_HPPA definition in linux-user:
In my opinion, the reference to TARGET_HPPA in the definition of
target_flock64 in linux-user/syscall_defs.h should also be ditched,
although whether it's worth anyone's time submitting a patch to remove
that, I'm not really sure.
I would also argue that the handling of padding in linux-user is less
than ideal. The problem here seems to be that as fields have different
sizes (or may be absent entirely) on different architectures, different
padding is required. Rather than a laundry list of targets, this would
best handled automatically, even if this would required rather evil
macros or code generation... perhaps I should give this a go?
Cheers,
--
Stuart Brady
next prev parent reply other threads:[~2011-01-05 23:13 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-03 14:34 [Qemu-devel] softfloat: fix NaN propagation for MIPS and PowerPC + cleanup Aurelien Jarno
2011-01-03 14:34 ` [Qemu-devel] [PATCH 1/6] softfloat: remove HPPA specific code Aurelien Jarno
2011-01-03 15:22 ` Peter Maydell
2011-01-03 15:26 ` Aurelien Jarno
2011-01-04 19:54 ` Andreas Färber
2011-01-04 20:07 ` Aurelien Jarno
2011-01-04 22:53 ` Andreas Färber
2011-01-04 23:56 ` Aurelien Jarno
2011-01-05 8:15 ` Andreas Färber
2011-01-05 10:21 ` Aurelien Jarno
2011-01-05 23:13 ` Stuart Brady [this message]
2011-01-06 8:58 ` Peter Maydell
2011-01-06 18:13 ` Stuart Brady
2011-01-06 18:43 ` Peter Maydell
2011-01-06 19:25 ` Stuart Brady
2011-01-06 14:35 ` Aurelien Jarno
2011-01-06 15:34 ` Peter Maydell
2011-01-06 18:48 ` Aurelien Jarno
2011-01-06 21:19 ` Peter Maydell
2011-01-06 21:31 ` Aurelien Jarno
2011-01-06 19:26 ` Nathan Froyd
2011-01-06 13:10 ` Andreas Färber
2011-01-06 15:08 ` Aurelien Jarno
2011-01-03 14:34 ` [Qemu-devel] [PATCH 2/6] softfloat: fix float{32, 64}_maybe_silence_nan() for MIPS Aurelien Jarno
2011-01-03 15:15 ` Peter Maydell
2011-01-03 15:24 ` Aurelien Jarno
2011-01-03 14:34 ` [Qemu-devel] [PATCH 3/6] softfloat: add float{x80, 128}_maybe_silence_nan() Aurelien Jarno
2011-01-03 15:33 ` Peter Maydell
2011-01-03 14:34 ` [Qemu-devel] [PATCH 4/6] softfloat: use float{32, 64, x80, 128}_maybe_silence_nan() Aurelien Jarno
2011-01-03 17:34 ` Peter Maydell
2011-01-03 22:44 ` Aurelien Jarno
2011-01-03 14:34 ` [Qemu-devel] [PATCH 5/6] target-mips: Implement correct NaN propagation rules Aurelien Jarno
2011-01-03 14:34 ` [Qemu-devel] [PATCH 6/6] target-ppc: " Aurelien Jarno
2011-01-05 12:45 ` Nathan Froyd
2011-01-05 17:24 ` [Qemu-devel] " Alexander Graf
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=20110105231306.GA20254@zubnet.me.uk \
--to=sdb@zubnet.me.uk \
--cc=andreas.faerber@web.de \
--cc=aurelien@aurel32.net \
--cc=qemu-devel@nongnu.org \
--cc=riku.voipio@iki.fi \
/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).