From: Peter Maydell <peter.maydell@linaro.org>
To: Nathan Froyd <froydnj@codesourcery.com>
Cc: qemu-devel@nongnu.org, Aurelien Jarno <aurelien@aurel32.net>
Subject: [Qemu-devel] Re: [PATCH] target-sh4: get rid of CPU_{Float, Double}U
Date: Mon, 11 Apr 2011 16:09:53 +0100 [thread overview]
Message-ID: <BANLkTi=_0Sw4m7ECy-P7YJz8f_8YvJHkrg@mail.gmail.com> (raw)
In-Reply-To: <20110411145502.GY23480@codesourcery.com>
On 11 April 2011 15:55, Nathan Froyd <froydnj@codesourcery.com> wrote:
> On Sun, Apr 10, 2011 at 09:13:05PM +0200, Aurelien Jarno wrote:
>> SH4 is always using softfloat, so it's possible to have helpers directly
>> taking float32 or float64 value. This allow to get rid of conversions
>> through CPU_{Float,Double}U.
>
> Eh, I think this punning on i32/f32 and i64/f64 values is not healthy.
> But Peter's already said that the floats-as-structs bit of softfloat is
> broken, so maybe it's not worth trying to ensure floats-as-structs works
> (or even making it the default, to discourage people from bit-twiddling
> directly).
I guess I should clarify that about the floats-as-structs thing.
(1) It does compile cleanly for the ARM target. Some other targets
don't compile because they're (buggily) not using the boxing/unboxing
macros when they do bit-twiddling of floats; that should be fixed.
(2) I think most of the value is in whether it compiles OK or not,
rather than trying to actually run with it as a config (which I
agree with Nathan is likely to go wrong if you have a host which
doesn't pass 32/64 bit structs in registers). The compile test catches
cases where the C code is doing bit-twiddling on float32s.
(3) If we did say you shouldn't be passing 'float32' etc into helper
functions, this would make the def-helper.h support for 'f32' and 'f64'
a bit pointless because they could never be used
(4) I think you should be able to write a helper function for an
add as just
float32 HELPER(my_float_add)(float32 a, float32 b) {
return float32_add(a, b, status);
}
and having to add boxing/unboxing macros to this reduces clarity
for no real gain. Using the macros should be a sign you're doing
something wrong, not that you're doing it right :-)
-- PMM
next prev parent reply other threads:[~2011-04-11 15:09 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-10 19:13 [Qemu-devel] [PATCH] target-sh4: get rid of CPU_{Float,Double}U Aurelien Jarno
2011-04-11 14:55 ` [Qemu-devel] Re: [PATCH] target-sh4: get rid of CPU_{Float, Double}U Nathan Froyd
2011-04-11 15:09 ` Peter Maydell [this message]
2011-04-11 15:19 ` [Qemu-devel] " Richard Henderson
2011-04-11 15:30 ` [Qemu-devel] " Peter Maydell
2011-04-11 15:32 ` [Qemu-devel] " Richard Henderson
2011-04-11 15:31 ` [Qemu-devel] " Aurelien Jarno
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='BANLkTi=_0Sw4m7ECy-P7YJz8f_8YvJHkrg@mail.gmail.com' \
--to=peter.maydell@linaro.org \
--cc=aurelien@aurel32.net \
--cc=froydnj@codesourcery.com \
--cc=qemu-devel@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).