[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [6936] target-mips: optimize gen_compute_branch()
From: |
Stefan Weil |
Subject: |
Re: [Qemu-devel] [6936] target-mips: optimize gen_compute_branch() |
Date: |
Sun, 29 Mar 2009 22:39:58 +0200 |
User-agent: |
Mozilla-Thunderbird 2.0.0.19 (X11/20090103) |
Aurelien Jarno schrieb:
> Revision: 6936
> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6936
> Author: aurel32
> Date: 2009-03-29 01:18:52 +0000 (Sun, 29 Mar 2009)
> Log Message:
> -----------
> target-mips: optimize gen_compute_branch()
>
> Signed-off-by: Aurelien Jarno <address@hidden>
>
> Modified Paths:
> --------------
> trunk/target-mips/cpu.h
> trunk/target-mips/machine.c
> trunk/target-mips/translate.c
>
> Modified: trunk/target-mips/cpu.h
> ===================================================================
> --- trunk/target-mips/cpu.h 2009-03-29 01:18:43 UTC (rev 6935)
> +++ trunk/target-mips/cpu.h 2009-03-29 01:18:52 UTC (rev 6936)
> @@ -443,7 +443,7 @@
> #define MIPS_HFLAG_BL 0x0C00 /* Likely branch */
> #define MIPS_HFLAG_BR 0x1000 /* branch to register (can't link TB) */
> target_ulong btarget; /* Jump / branch target */
> - int bcond; /* Branch condition (if needed) */
> + target_ulong bcond; /* Branch condition (if needed) */
>
> int SYNCI_Step; /* Address step size for SYNCI */
> int CCRes; /* Cycle count resolution/divisor */
>
> Modified: trunk/target-mips/machine.c
> ===================================================================
> --- trunk/target-mips/machine.c 2009-03-29 01:18:43 UTC (rev 6935)
> +++ trunk/target-mips/machine.c 2009-03-29 01:18:52 UTC (rev 6936)
> @@ -91,7 +91,8 @@
> qemu_put_sbe32s(f, &env->error_code);
> qemu_put_be32s(f, &env->hflags);
> qemu_put_betls(f, &env->btarget);
> - qemu_put_sbe32s(f, &env->bcond);
> + i = env->bcond;
> + qemu_put_sbe32s(f, &i);
>
bcond is now target_ulong (32 or 64 bit target), i is int.
Are the upper 32 bits of bcond not needed?
>
> /* Save remaining CP1 registers */
> qemu_put_sbe32s(f, &env->CP0_Index);
> @@ -240,7 +241,8 @@
> qemu_get_sbe32s(f, &env->error_code);
> qemu_get_be32s(f, &env->hflags);
> qemu_get_betls(f, &env->btarget);
> - qemu_get_sbe32s(f, &env->bcond);
> + qemu_get_sbe32s(f, &i);
> + env->bcond = i;
>
See above.
>
> /* Load remaining CP1 registers */
> qemu_get_sbe32s(f, &env->CP0_Index);
>
>
Regards
Stefan