[Top][All Lists]
[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
>
>
- [Qemu-devel] [PATCH 00/10] tcg/mips: cleanup and improvements, Aurelien Jarno, 2012/09/21
- [Qemu-devel] [PATCH 09/10] tcg/mips: implement deposit op on MIPS32R2, Aurelien Jarno, 2012/09/21
- [Qemu-devel] [PATCH 07/10] tcg/mips: optimize bswap{16, 16s, 32} on MIPS32R2, Aurelien Jarno, 2012/09/21
- [Qemu-devel] [PATCH 01/10] tcg-mips: fix wrong usage of 'Z' constraint, Aurelien Jarno, 2012/09/21
- [Qemu-devel] [PATCH 04/10] tcg/mips: don't use global pointer, Aurelien Jarno, 2012/09/21
- [Qemu-devel] [PATCH 10/10] tcg/mips: implement movcond op on MIPS32R2, Aurelien Jarno, 2012/09/21
- [Qemu-devel] [PATCH 08/10] tcg/mips: implement rotl/rotr ops on MIPS32R2, Aurelien Jarno, 2012/09/21
- [Qemu-devel] [PATCH 05/10] tcg/mips: use stack for TCG temps, Aurelien Jarno, 2012/09/21
- Re: [Qemu-devel] [PATCH 05/10] tcg/mips: use stack for TCG temps,
Blue Swirl <=
[Qemu-devel] [PATCH 02/10] tcg/mips: kill warnings in user mode, Aurelien Jarno, 2012/09/21
[Qemu-devel] [PATCH 06/10] tcg/mips: optimize brcond arg, 0, Aurelien Jarno, 2012/09/21
[Qemu-devel] [PATCH 03/10] tcg/mips: use TCGArg or TCGReg instead of int, Aurelien Jarno, 2012/09/21
Re: [Qemu-devel] [PATCH 00/10] tcg/mips: cleanup and improvements, Richard Henderson, 2012/09/21