[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: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH 05/10] tcg/mips: use stack for TCG temps |
Date: |
Sat, 22 Sep 2012 20:17:31 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Sat, Sep 22, 2012 at 06:09:13PM +0000, Blue Swirl wrote:
> On Sat, Sep 22, 2012 at 5:25 PM, Aurelien Jarno <address@hidden> wrote:
> > On Sat, Sep 22, 2012 at 02:37:35PM +0000, Blue Swirl wrote:
> >> 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
> >
> > Oh haven't seen this patch before. Well the choice is basically between
> > adding one value and subtracting one, not sure what is the best.
> >
> > About the alignment, do we require some specific alignment for the
> > temps? As long as they are aligned wrt size, I think it's fine.
>
> Well, since we align the frame, that could be a better reference.
> Usually stack doesn't get unaligned but why is there then the
> alignment calculation?
>
The ABI require the stack frame to be aligned to 8-bytes. It doesn't
require any alignment for the data you put in the local parts.
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net
- [Qemu-devel] [PATCH 01/10] tcg-mips: fix wrong usage of 'Z' constraint, (continued)
- [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
[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