[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Some cleanups after dyngen removal
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH] Some cleanups after dyngen removal |
Date: |
Sun, 7 Dec 2008 21:36:17 +0100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Sun, Dec 07, 2008 at 08:17:46PM +0100, Laurent Desnogues wrote:
> On Sun, Dec 7, 2008 at 8:10 PM, Laurent Desnogues
> <address@hidden> wrote:
> >
> > Here are some further cleanups.
> >
> > 1. hostregs_helper.h: fix comment
> > 2. translate-all.c: rename dyngen_code(_search_pc) to
> > tcg_gen_code(_search_pc)
> > 3. tcg.c:
> > - rename dyngen_table_op_count to tcg_table_op_count
> > - no need to generate a log of dyngen ops generated
> > - rename dyngen_code(_search_pc) to tcg_gen_code(_search_pc)
> > 4. tcg.h: rename dyngen_code(_search_pc) to
> > tcg_gen_code(_search_pc)
>
> Sorry, the previous patch contained an obvious mistake.
>
Thanks, applied.
> Laurent
>
> Signed-off-by: Laurent Desnogues <address@hidden>
> Index: hostregs_helper.h
> ===================================================================
> --- hostregs_helper.h (revision 5931)
> +++ hostregs_helper.h (working copy)
> @@ -18,9 +18,9 @@
> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> */
>
> -/* The GCC global register vairable extension is used to reserve some
> - host registers for use by dyngen. However only the core parts of the
> - translation engine are compiled with these settings. We must manually
> +/* The GCC global register variable extension is used to reserve some
> + host registers for use by generated code. However only the core parts of
> + the translation engine are compiled with these settings. We must manually
> save/restore these registers when called from regular code.
> It is not sufficient to save/restore T0 et. al. as these may be declared
> with a datatype smaller than the actual register. */
> Index: translate-all.c
> ===================================================================
> --- translate-all.c (revision 5931)
> +++ translate-all.c (working copy)
> @@ -118,7 +118,7 @@
> s->interm_time += profile_getclock() - ti;
> s->code_time -= profile_getclock();
> #endif
> - gen_code_size = dyngen_code(s, gen_code_buf);
> + gen_code_size = tcg_gen_code(s, gen_code_buf);
> *gen_code_size_ptr = gen_code_size;
> #ifdef CONFIG_PROFILER
> s->code_time += profile_getclock();
> @@ -177,7 +177,7 @@
> s->tb_jmp_offset = NULL;
> s->tb_next = tb->tb_next;
> #endif
> - j = dyngen_code_search_pc(s, (uint8_t *)tc_ptr, searched_pc - tc_ptr);
> + j = tcg_gen_code_search_pc(s, (uint8_t *)tc_ptr, searched_pc - tc_ptr);
> if (j < 0)
> return -1;
> /* now find start of instruction before */
> Index: tcg/tcg.c
> ===================================================================
> --- tcg/tcg.c (revision 5931)
> +++ tcg/tcg.c (working copy)
> @@ -1890,20 +1890,15 @@
>
> #ifdef CONFIG_PROFILER
>
> -static int64_t dyngen_table_op_count[NB_OPS];
> +static int64_t tcg_table_op_count[NB_OPS];
>
> void dump_op_count(void)
> {
> int i;
> FILE *f;
> - f = fopen("/tmp/op1.log", "w");
> - for(i = 0; i < INDEX_op_end; i++) {
> - fprintf(f, "%s %" PRId64 "\n", tcg_op_defs[i].name,
> dyngen_table_op_count[i]);
> - }
> - fclose(f);
> - f = fopen("/tmp/op2.log", "w");
> + f = fopen("/tmp/op.log", "w");
> for(i = INDEX_op_end; i < NB_OPS; i++) {
> - fprintf(f, "%s %" PRId64 "\n", tcg_op_defs[i].name,
> dyngen_table_op_count[i]);
> + fprintf(f, "%s %" PRId64 "\n", tcg_op_defs[i].name,
> tcg_table_op_count[i]);
> }
> fclose(f);
> }
> @@ -1953,7 +1948,7 @@
> for(;;) {
> opc = gen_opc_buf[op_index];
> #ifdef CONFIG_PROFILER
> - dyngen_table_op_count[opc]++;
> + tcg_table_op_count[opc]++;
> #endif
> def = &tcg_op_defs[opc];
> #if 0
> @@ -2030,7 +2025,7 @@
> return -1;
> }
>
> -int dyngen_code(TCGContext *s, uint8_t *gen_code_buf)
> +int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf)
> {
> #ifdef CONFIG_PROFILER
> {
> @@ -2058,7 +2053,7 @@
> offset bytes from the start of the TB. The contents of gen_code_buf must
> not be changed, though writing the same values is ok.
> Return -1 if not found. */
> -int dyngen_code_search_pc(TCGContext *s, uint8_t *gen_code_buf, long offset)
> +int tcg_gen_code_search_pc(TCGContext *s, uint8_t *gen_code_buf, long offset)
> {
> return tcg_gen_code_common(s, gen_code_buf, offset);
> }
> Index: tcg/tcg.h
> ===================================================================
> --- tcg/tcg.h (revision 5931)
> +++ tcg/tcg.h (working copy)
> @@ -314,8 +314,8 @@
> void tcg_context_init(TCGContext *s);
> void tcg_func_start(TCGContext *s);
>
> -int dyngen_code(TCGContext *s, uint8_t *gen_code_buf);
> -int dyngen_code_search_pc(TCGContext *s, uint8_t *gen_code_buf, long offset);
> +int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf);
> +int tcg_gen_code_search_pc(TCGContext *s, uint8_t *gen_code_buf, long
> offset);
>
> void tcg_set_frame(TCGContext *s, int reg,
> tcg_target_long start, tcg_target_long size);
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' address@hidden | address@hidden
`- people.debian.org/~aurel32 | www.aurel32.net