From: Richard Henderson <richard.henderson@linaro.org>
To: "Paul A. Clarke" <pc@us.ibm.com>, qemu-devel@nongnu.org
Cc: qemu-ppc@nongnu.org, david@gibson.dropbear.id.au
Subject: Re: [Qemu-devel] [PATCH v2 1/2] ppc: Add support for 'mffscrn', 'mffscrni' instructions
Date: Tue, 17 Sep 2019 13:45:35 -0700 [thread overview]
Message-ID: <a561c80e-68b0-bd56-2718-6c3325d27716@linaro.org> (raw)
In-Reply-To: <1568653336-16819-1-git-send-email-pc@us.ibm.com>
On 9/16/19 1:02 PM, Paul A. Clarke wrote:
> +#define FP_DRN2 (1ull << FPSCR_DRN2)
> +#define FP_DRN1 (1ull << FPSCR_DRN1)
> +#define FP_DRN0 (1ull << FPSCR_DRN0)
> +#define FP_DRN (FP_DRN2 | FP_DRN1 | FP_DRN0)
Why not just 7ull << FPSCR_DRN?
Are the individual DRN bits separately useful?
They don't appear to be...
> -#define FP_MODE FP_RN
> +#define FP_MODE (FP_DRN | FP_RN)
This, I think, isn't helpful.
> +static void gen_helper_mffscrn(DisasContext *ctx, TCGv_i64 t1)
> +{
> + TCGv_i64 t0 = tcg_temp_new_i64();
> + TCGv_i32 mask = tcg_const_i32(0x0001);
> +
> + gen_reset_fpstatus();
> + tcg_gen_extu_tl_i64(t0, cpu_fpscr);
> + tcg_gen_andi_i64(t0, t0, FP_MODE | FP_ENABLES);
> + set_fpr(rD(ctx->opcode), t0);
> +
> + /* Mask FPSCR value to clear RN. */
> + tcg_gen_andi_i64(t0, t0, ~FP_MODE);
Because here,
> +static void gen_mffscrn(DisasContext *ctx)
> +{
> + TCGv_i64 t1;
> +
> + if (unlikely(!(ctx->insns_flags2 & PPC2_ISA300))) {
> + return gen_mffs(ctx);
> + }
> +
> + if (unlikely(!ctx->fpu_enabled)) {
> + gen_exception(ctx, POWERPC_EXCP_FPU);
> + return;
> + }
> +
> + t1 = tcg_temp_new_i64();
> + get_fpr(t1, rB(ctx->opcode));
> + /* Mask FRB to get just RN. */
> + tcg_gen_andi_i64(t1, t1, FP_MODE);
and here, we're only interested in RN, not DRN.
Possibly FP_MODE should itself be removed. It's used
exactly once, in mffsl, which could just as easily
reference FP_RN | FP_DRN.
r~
next prev parent reply other threads:[~2019-09-17 20:50 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-16 17:02 [Qemu-devel] [PATCH v2 1/2] ppc: Add support for 'mffscrn', 'mffscrni' instructions Paul A. Clarke
2019-09-17 20:45 ` Richard Henderson [this message]
2019-09-17 21:49 ` Paul Clarke
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=a561c80e-68b0-bd56-2718-6c3325d27716@linaro.org \
--to=richard.henderson@linaro.org \
--cc=david@gibson.dropbear.id.au \
--cc=pc@us.ibm.com \
--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).