On Sun, 26 Jun 2011, Blue Swirl wrote: > Use stack instead of temp_buf array in CPUState for TCG temps. >
This works. > Signed-off-by: Blue Swirl <blauwir...@gmail.com> > --- > tcg/ppc/tcg-target.c | 7 +++++-- > tcg/ppc64/tcg-target.c | 7 +++++-- > 2 files changed, 10 insertions(+), 4 deletions(-) > > diff --git a/tcg/ppc/tcg-target.c b/tcg/ppc/tcg-target.c > index 5ab5d6d..100ef12 100644 > --- a/tcg/ppc/tcg-target.c > +++ b/tcg/ppc/tcg-target.c > @@ -907,9 +907,14 @@ static void tcg_target_qemu_prologue (TCGContext *s) > + LINKAGE_AREA_SIZE > + TCG_STATIC_CALL_ARGS_SIZE > + ARRAY_SIZE (tcg_target_callee_save_regs) * 4 > + + CPU_TEMP_BUF_NLONGS * sizeof(long) > ; > frame_size = (frame_size + 15) & ~15; > > + tcg_set_frame(s, TCG_REG_CALL_STACK, frame_size > + - CPU_TEMP_BUF_NLONGS * sizeof(long), > + CPU_TEMP_BUF_NLONGS * sizeof(long)); > + > #ifdef _CALL_AIX > { > uint32_t addr; > @@ -1923,6 +1928,4 @@ static void tcg_target_init(TCGContext *s) > #endif > > tcg_add_target_add_op_defs(ppc_op_defs); > - tcg_set_frame(s, TCG_AREG0, offsetof(CPUState, temp_buf), > - CPU_TEMP_BUF_NLONGS * sizeof(long)); > } > diff --git a/tcg/ppc64/tcg-target.c b/tcg/ppc64/tcg-target.c > index 5f79342..6c92d84 100644 > --- a/tcg/ppc64/tcg-target.c > +++ b/tcg/ppc64/tcg-target.c > @@ -875,9 +875,14 @@ static void tcg_target_qemu_prologue (TCGContext *s) > + 8 /* TOC save area */ > + TCG_STATIC_CALL_ARGS_SIZE > + ARRAY_SIZE (tcg_target_callee_save_regs) * 8 > + + CPU_TEMP_BUF_NLONGS * sizeof(long) > ; > frame_size = (frame_size + 15) & ~15; > > + tcg_set_frame(s, TCG_REG_CALL_STACK, frame_size > + - CPU_TEMP_BUF_NLONGS * sizeof(long), > + CPU_TEMP_BUF_NLONGS * sizeof(long)); > + > #ifndef __APPLE__ > /* First emit adhoc function descriptor */ > addr = (uint64_t) s->code_ptr + 24; > @@ -1698,6 +1703,4 @@ static void tcg_target_init (TCGContext *s) > tcg_regset_set_reg (s->reserved_regs, TCG_REG_R13); > > tcg_add_target_add_op_defs (ppc_op_defs); > - tcg_set_frame(s, TCG_AREG0, offsetof(CPUState, temp_buf), > - CPU_TEMP_BUF_NLONGS * sizeof(long)); > } > -- mailto:av1...@comtv.ru