[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] target-mips: Also apply the CP0.Status mask to
From: |
Leon Alrae |
Subject: |
Re: [Qemu-devel] [PATCH] target-mips: Also apply the CP0.Status mask to MTTC0 |
Date: |
Fri, 5 Dec 2014 15:18:27 +0000 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
On 20/11/2014 11:15, Maciej W. Rozycki wrote:
> Make CP0.Status writes made with the MTTC0 instruction respect this
> register's mask just like all the other places. Also preserve the
> current values of masked out bits.
>
> Signed-off-by: Maciej W. Rozycki <address@hidden>
> ---
> Hi,
>
> This should be obvious. Also quite obviously, we are missing a lot of
> stuff in this area so as it is added this is something to watch out for,
> e.g. CP0.ConfigX writes will have to respect the respective masks too.
> But that's another matter. For the time being, please apply.
>
> Maciej
>
> qemu-mips-mttc-status.diff
> Index: qemu-git-trunk/target-mips/op_helper.c
> ===================================================================
> --- qemu-git-trunk.orig/target-mips/op_helper.c 2014-11-12
> 07:41:26.597542010 +0000
> +++ qemu-git-trunk/target-mips/op_helper.c 2014-11-12 07:43:02.107518555
> +0000
> @@ -1413,9 +1413,10 @@ void helper_mtc0_status(CPUMIPSState *en
> void helper_mttc0_status(CPUMIPSState *env, target_ulong arg1)
> {
> int other_tc = env->CP0_VPEControl & (0xff << CP0VPECo_TargTC);
> + uint32_t mask = env->CP0_Status_rw_bitmask & ~0xf1000018;
> CPUMIPSState *other = mips_cpu_map_tc(env, &other_tc);
>
> - other->CP0_Status = arg1 & ~0xf1000018;
> + other->CP0_Status = (other->CP0_Status & ~mask) | (arg1 & mask);
> sync_c0_status(env, other, other_tc);
> }
>
>
Reviewed-by: Leon Alrae <address@hidden>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH] target-mips: Also apply the CP0.Status mask to MTTC0,
Leon Alrae <=