qemu-devel
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]