From: Richard Henderson <rth@twiddle.net>
To: Petar Jovanovic <petar.jovanovic@rt-rk.com>, qemu-devel@nongnu.org
Cc: petar.jovanovic@imgtec.com, aurelien@aurel32.net
Subject: Re: [Qemu-devel] [PATCH 2/2] target-mips: implement UserLocal Register
Date: Sat, 17 May 2014 11:11:07 -0700 [thread overview]
Message-ID: <5377A63B.7050308@twiddle.net> (raw)
In-Reply-To: <1400264014-78911-3-git-send-email-petar.jovanovic@rt-rk.com>
On 05/16/2014 11:13 AM, Petar Jovanovic wrote:
> +target_ulong helper_rdhwr_ul(CPUMIPSState *env)
> +{
> + if ((env->hflags & MIPS_HFLAG_CP0) ||
> + (env->CP0_HWREna & (1 << 29))) {
> + return env->CP0_UserLocal;
> + } else {
> + helper_raise_exception(env, EXCP_RI);
> + }
> +
> + return 0;
> +}
> +
You shouldn't need a helper at all. We're supposed to check all of these
sorts of permissions at translation time, so you should be able to issue a
load or an exception directly from the translator.
> + if (env->CP0_Config3 & (1 << CP0C3_ULRI)) {
What is this check, and why isn't it present in ctx->hflags?
> + tcg_gen_ld_tl(arg, cpu_env,
> + offsetof(CPUMIPSState, CP0_UserLocal));
> + tcg_gen_ext32s_tl(arg, arg);
One operation: tcg_gen_ld32s_tl.
> #else
> - /* XXX: Some CPUs implement this in hardware.
> - Not supported yet. */
> + save_cpu_state(ctx, 1);
> + gen_helper_rdhwr_ul(t0, cpu_env);
> + gen_store_gpr(t0, rt);
> + break;
> #endif
>
This should be at least partially merged with the user-only tls_value code.
r~
next prev parent reply other threads:[~2014-05-17 18:11 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-16 18:13 [Qemu-devel] [PATCH 0/2] implementation of UserLocal register for MIPS Petar Jovanovic
2014-05-16 18:13 ` [Qemu-devel] [PATCH 1/2] target-mips: pass CPUMIPSState to gen_mfc0/mtc0/dmfc0/dmtc0 Petar Jovanovic
2014-05-17 18:03 ` Richard Henderson
2014-05-16 18:13 ` [Qemu-devel] [PATCH 2/2] target-mips: implement UserLocal Register Petar Jovanovic
2014-05-17 18:11 ` Richard Henderson [this message]
2014-05-22 0:03 ` James Hogan
2014-05-22 0:19 ` James Hogan
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=5377A63B.7050308@twiddle.net \
--to=rth@twiddle.net \
--cc=aurelien@aurel32.net \
--cc=petar.jovanovic@imgtec.com \
--cc=petar.jovanovic@rt-rk.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).