qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 05/10] tcg/mips: use stack for TCG temps


From: Blue Swirl
Subject: Re: [Qemu-devel] [PATCH 05/10] tcg/mips: use stack for TCG temps
Date: Sat, 22 Sep 2012 14:37:35 +0000

On Fri, Sep 21, 2012 at 4:43 PM, Aurelien Jarno <address@hidden> wrote:
> Use stack instead of temp_buf array in CPUState for TCG
> temps.
>
> Signed-off-by: Aurelien Jarno <address@hidden>
> ---
>  tcg/mips/tcg-target.c |   10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/tcg/mips/tcg-target.c b/tcg/mips/tcg-target.c
> index 0ea6a76..c05169f 100644
> --- a/tcg/mips/tcg-target.c
> +++ b/tcg/mips/tcg-target.c
> @@ -1538,11 +1538,15 @@ static void tcg_target_qemu_prologue(TCGContext *s)
>  {
>      int i, frame_size;
>
> -    /* reserve some stack space */
> +    /* reserve some stack space, also for TCG temps. */
>      frame_size = ARRAY_SIZE(tcg_target_callee_save_regs) * 4
> -                 + TCG_STATIC_CALL_ARGS_SIZE;
> +                 + TCG_STATIC_CALL_ARGS_SIZE
> +                 + CPU_TEMP_BUF_NLONGS * sizeof(long);
>      frame_size = (frame_size + TCG_TARGET_STACK_ALIGN - 1) &
>                   ~(TCG_TARGET_STACK_ALIGN - 1);
> +    tcg_set_frame(s, TCG_REG_SP, ARRAY_SIZE(tcg_target_callee_save_regs) * 4
> +                  + TCG_STATIC_CALL_ARGS_SIZE,
> +                  CPU_TEMP_BUF_NLONGS * sizeof(long));

My version used frame_size instead of duplicating a part of the
calculations, wouldn't that take stack alignment also in
consideration?

http://lists.nongnu.org/archive/html/qemu-devel/2011-06/msg02566.html

>
>      /* TB prologue */
>      tcg_out_addi(s, TCG_REG_SP, -frame_size);
> @@ -1597,6 +1601,4 @@ static void tcg_target_init(TCGContext *s)
>      tcg_regset_set_reg(s->reserved_regs, TCG_REG_GP);   /* global pointer */
>
>      tcg_add_target_add_op_defs(mips_op_defs);
> -    tcg_set_frame(s, TCG_AREG0, offsetof(CPUArchState, temp_buf),
> -                  CPU_TEMP_BUF_NLONGS * sizeof(long));
>  }
> --
> 1.7.10.4
>
>



reply via email to

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