From: Leon Alrae <leon.alrae@imgtec.com>
To: Aleksandar Markovic <aleksandar.markovic@rt-rk.com>,
qemu-devel@nongnu.org
Cc: proljc@gmail.com, kbastian@mail.uni-paderborn.de,
mark.cave-ayland@ilande.co.uk, agraf@suse.de,
blauwirbel@gmail.com, jcmvbkbc@gmail.com,
aleksandar.markovic@imgtec.com, qemu-arm@nongnu.org,
qemu-ppc@nongnu.org, petar.jovanovic@imgtec.com,
pbonzini@redhat.com, miodrag.dinic@imgtec.com,
edgar.iglesias@gmail.com, gxt@mprc.pku.edu.cn, afaerber@suse.de,
aurelien@aurel32.net, rth@twiddle.net, maciej.rozycki@imgtec.com
Subject: Re: [Qemu-devel] [PATCH v4 1/9] softfloat: Implement run-time-configurable meaning of signaling NaN bit
Date: Thu, 14 Apr 2016 16:31:19 +0100 [thread overview]
Message-ID: <570FB7C7.7090404@imgtec.com> (raw)
In-Reply-To: <1460465891-6142-2-git-send-email-aleksandar.markovic@rt-rk.com>
On 12/04/2016 13:58, Aleksandar Markovic wrote:
> @@ -3200,11 +3200,17 @@ FLOAT_RINT(rint_d, 64)
> #define FLOAT_CLASS_POSITIVE_ZERO 0x200
>
> #define FLOAT_CLASS(name, bits) \
> -uint ## bits ## _t helper_float_ ## name (uint ## bits ## _t arg) \
> +uint ## bits ## _t helper_float_ ## name (CPUMIPSState *env, \
> + uint ## bits ## _t arg, uint32_t is_msa) \
> { \
> - if (float ## bits ## _is_signaling_nan(arg)) { \
> + float_status* fst; \
> + \
> + fst = (is_msa == 1) ? \
> + &env->active_tc.msa_fp_status : &env->active_fpu.fp_status; \
> + \
> + if (float ## bits ## _is_signaling_nan(arg, fst)) { \
> return FLOAT_CLASS_SIGNALING_NAN; \
> - } else if (float ## bits ## _is_quiet_nan(arg)) { \
> + } else if (float ## bits ## _is_quiet_nan(arg, fst)) { \
> return FLOAT_CLASS_QUIET_NAN; \
> } else if (float ## bits ## _is_neg(arg)) { \
> if (float ## bits ## _is_infinity(arg)) { \
Let's make it a common function which takes float_status passed from FPU and
MSA helpers and avoid is_msa:
#define FLOAT_CLASS(name, bits) \
-uint ## bits ## _t helper_float_ ## name (uint ## bits ## _t arg) \
+uint ## bits ## _t float_ ## name (uint ## bits ## _t arg, \
+ float_status *fst) \
{ \
- if (float ## bits ## _is_signaling_nan(arg)) { \
+ if (float ## bits ## _is_signaling_nan(arg, fst)) { \
return FLOAT_CLASS_SIGNALING_NAN; \
- } else if (float ## bits ## _is_quiet_nan(arg)) { \
+ } else if (float ## bits ## _is_quiet_nan(arg, fst)) { \
return FLOAT_CLASS_QUIET_NAN; \
} else if (float ## bits ## _is_neg(arg)) { \
if (float ## bits ## _is_infinity(arg)) { \
@@ -3227,6 +3228,12 @@ uint ## bits ## _t helper_float_ ## name (uint ## bits ## _t arg) \
return FLOAT_CLASS_POSITIVE_NORMAL; \
} \
} \
+} \
+ \
+uint ## bits ## _t helper_float_ ## name (CPUMIPSState *env, \
+ uint ## bits ## _t arg) \
+{ \
+ return float_ ## name(arg, &env->active_fpu.fp_status); \
}
FLOAT_CLASS(class_s, 32)
And in MSA:
+ float_status *status = &env->active_tc.msa_fp_status;
if (df == DF_WORD) {
- pwd->w[0] = helper_float_class_s(pws->w[0]);
- pwd->w[1] = helper_float_class_s(pws->w[1]);
- pwd->w[2] = helper_float_class_s(pws->w[2]);
- pwd->w[3] = helper_float_class_s(pws->w[3]);
+ pwd->w[0] = float_class_s(pws->w[0], status);
+ pwd->w[1] = float_class_s(pws->w[1], status);
+ pwd->w[2] = float_class_s(pws->w[2], status);
+ pwd->w[3] = float_class_s(pws->w[3], status);
} else {
- pwd->d[0] = helper_float_class_d(pws->d[0]);
- pwd->d[1] = helper_float_class_d(pws->d[1]);
+ pwd->d[0] = float_class_d(pws->d[0], status);
+ pwd->d[1] = float_class_d(pws->d[1], status);
}
Thanks,
Leon
next prev parent reply other threads:[~2016-04-14 15:31 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-12 12:58 [Qemu-devel] [PATCH v4 0/9] target-mips: Initiate IEEE 754-2008 support Aleksandar Markovic
2016-04-12 12:58 ` [Qemu-devel] [PATCH v4 1/9] softfloat: Implement run-time-configurable meaning of signaling NaN bit Aleksandar Markovic
2016-04-12 18:45 ` Eduardo Habkost
2016-04-13 18:41 ` Aleksandar Markovic
2016-04-13 19:04 ` Eduardo Habkost
2016-04-13 12:11 ` Leon Alrae
2016-04-14 15:31 ` Leon Alrae [this message]
2016-04-15 8:48 ` Aleksandar Markovic
2016-04-15 10:41 ` Leon Alrae
2016-04-15 11:38 ` Aleksandar Markovic
2016-04-17 18:21 ` Aleksandar Markovic
2016-04-12 12:58 ` [Qemu-devel] [PATCH v4 2/9] softfloat: For Mips only, correct default NaN values Aleksandar Markovic
2016-04-13 12:23 ` Leon Alrae
2016-04-12 12:58 ` [Qemu-devel] [PATCH v4 3/9] softfloat: For Mips only, correct order in pickNaNMulAdd() Aleksandar Markovic
2016-04-13 12:47 ` Leon Alrae
2016-04-13 13:53 ` Aleksandar Markovic
2016-04-12 12:58 ` [Qemu-devel] [PATCH v4 4/9] softfloat: Clean up hex constants capitalization in softfloat-specialize.h Aleksandar Markovic
2016-04-12 12:58 ` [Qemu-devel] [PATCH v4 5/9] softfloat: Clean up white spaces " Aleksandar Markovic
2016-04-12 12:58 ` [Qemu-devel] [PATCH v4 6/9] target-mips: Activate IEEE 274-2008 support Aleksandar Markovic
2016-04-12 12:58 ` [Qemu-devel] [PATCH v4 7/9] target-mips: Add abs2008 flavor of <ABS|NEG>.<S|D> Aleksandar Markovic
2016-04-14 10:52 ` Leon Alrae
2016-04-12 12:58 ` [Qemu-devel] [PATCH v4 8/9] target-mips: Add nan2008 flavor of <CEIL|CVT|FLOOR|ROUND|TRUNC>.<L|W>.<S|D> Aleksandar Markovic
2016-04-12 12:58 ` [Qemu-devel] [PATCH v4 9/9] target-mips: Clean up order of helpers for CVT.<L|W>.<S|D> Aleksandar Markovic
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=570FB7C7.7090404@imgtec.com \
--to=leon.alrae@imgtec.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=aleksandar.markovic@imgtec.com \
--cc=aleksandar.markovic@rt-rk.com \
--cc=aurelien@aurel32.net \
--cc=blauwirbel@gmail.com \
--cc=edgar.iglesias@gmail.com \
--cc=gxt@mprc.pku.edu.cn \
--cc=jcmvbkbc@gmail.com \
--cc=kbastian@mail.uni-paderborn.de \
--cc=maciej.rozycki@imgtec.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=miodrag.dinic@imgtec.com \
--cc=pbonzini@redhat.com \
--cc=petar.jovanovic@imgtec.com \
--cc=proljc@gmail.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=rth@twiddle.net \
/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).