From: "Laurent Desnogues" <laurent.desnogues@gmail.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Some cleanups after dyngen removal
Date: Sun, 7 Dec 2008 20:17:46 +0100 [thread overview]
Message-ID: <761ea48b0812071117j7e180071r847d3935173a8a09@mail.gmail.com> (raw)
In-Reply-To: <761ea48b0812071110m6409f99dje1687b37ccf2f012@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 644 bytes --]
On Sun, Dec 7, 2008 at 8:10 PM, Laurent Desnogues
<laurent.desnogues@gmail.com> 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.
Laurent
Signed-off-by: Laurent Desnogues <laurent.desnogues@gmail.com>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: tcg-no-dyngen3.patch --]
[-- Type: text/x-patch; name=tcg-no-dyngen3.patch, Size: 4030 bytes --]
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);
next prev parent reply other threads:[~2008-12-07 19:17 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-07 17:12 [Qemu-devel] [PATCH] Some cleanups after dyngen removal Laurent Desnogues
2008-12-07 18:17 ` Aurelien Jarno
2008-12-07 19:10 ` Laurent Desnogues
2008-12-07 19:17 ` Laurent Desnogues [this message]
2008-12-07 20:36 ` Aurelien Jarno
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=761ea48b0812071117j7e180071r847d3935173a8a09@mail.gmail.com \
--to=laurent.desnogues@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).