[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register |
Date: |
Thu, 29 May 2014 14:48:28 +0100 |
On 29 May 2014 14:35, Petar Jovanovic <address@hidden> wrote:
>> change as CP0_Config3 is a read-only register. If I am right, probably
>> the best is to check directly env->CP0_Config3.
>
> If you take a look at v1 of the patch, that's what was done.
> In the code review, this was marked as unacceptable because it
> required [1] passing env within the translator.
>
>
> [1] http://patchwork.ozlabs.org/patch/349709/
The intention of that review comment is to say that the
bulk of the translator code should not have access directly
to env. This is because most of the fields of env are
not safe to use as a basis for code generation decisions.
Having direct acess to an env pointer makes it very easy
to accidentally use a field that's not safe to use.
Instead we prefer to set up a DisasContext which has only
the required information in it, and pass that around.
The DisasContext is initialised in
gen_intermediate_code_internal from the TB flags and in
some cases from env-> fields where this is safe (for
instancec ctx.insn_flags is a copy of env->insn_flags).
This makes it easy to see at a glance what parts of env are
being relied on by the code generation and when something
new is added it's easy to see and check in code review.
In this case we might choose to copy CP0_Config3 (or
just the relevant flag from it) from env into ctx;
I have no particular opinion there.
thanks
-- PMM
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, (continued)
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, Petar Jovanovic, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, Aurelien Jarno, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, James Hogan, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, Peter Maydell, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, James Hogan, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, Peter Maydell, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, James Hogan, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, Petar Jovanovic, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, Andreas Färber, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, Aurelien Jarno, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register,
Peter Maydell <=
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, Aurelien Jarno, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, Aurelien Jarno, 2014/05/29
- Re: [Qemu-devel] [v3 PATCH] target-mips: implement UserLocal Register, Petar Jovanovic, 2014/05/29