From: ths Date: Thu, 5 Jun 2008 08:38:44 +0000 (+0000) Subject: Free constant temporaries. X-Git-Tag: TizenStudio_2.0_p2.3.2~208^2~14616 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c239529e7f4d8f9adfaae7aeb6d73632868d3acd;p=sdk%2Femulator%2Fqemu.git Free constant temporaries. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4670 c046a42c-6fe2-441c-8c8c-71466251a162 --- diff --git a/target-mips/translate.c b/target-mips/translate.c index beb7cf6..f0dc14d 100644 --- a/target-mips/translate.c +++ b/target-mips/translate.c @@ -425,6 +425,24 @@ enum { /* global register indices */ static TCGv cpu_env, current_tc_gprs, current_tc_hi, cpu_T[2]; +static inline void tcg_gen_helper_0_1i(void *func, TCGv arg) +{ + TCGv t = tcg_const_i32(arg); + + tcg_gen_helper_0_1(func, t); + tcg_temp_free(t); +} + +static inline void tcg_gen_helper_0_2ii(void *func, TCGv arg1, TCGv arg2) +{ + TCGv t1 = tcg_const_i32(arg1); + TCGv t2 = tcg_const_i32(arg2); + + tcg_gen_helper_0_2(func, t1, t2); + tcg_temp_free(t1); + tcg_temp_free(t2); +} + typedef struct DisasContext { struct TranslationBlock *tb; target_ulong pc, saved_pc; @@ -797,7 +815,7 @@ static always_inline void generate_exception_err (DisasContext *ctx, int excp, int err) { save_cpu_state(ctx, 1); - tcg_gen_helper_0_2(do_raise_exception_err, tcg_const_i32(excp), tcg_const_i32(err)); + tcg_gen_helper_0_2ii(do_raise_exception_err, excp, err); tcg_gen_helper_0_0(do_interrupt_restart); tcg_gen_exit_tb(0); } @@ -806,7 +824,7 @@ static always_inline void generate_exception (DisasContext *ctx, int excp) { save_cpu_state(ctx, 1); - tcg_gen_helper_0_1(do_raise_exception, tcg_const_i32(excp)); + tcg_gen_helper_0_1i(do_raise_exception, excp); tcg_gen_helper_0_0(do_interrupt_restart); tcg_gen_exit_tb(0); }