From 3bf79be6379b877beb90b9bd6ea285b2d928dbd8 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Mon, 18 Sep 2006 09:04:01 +0000 Subject: [PATCH] Added support for include files --- ir/be/ia32/ia32_emitter.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/ir/be/ia32/ia32_emitter.c b/ir/be/ia32/ia32_emitter.c index 3ae889045..fb11964d7 100644 --- a/ir/be/ia32/ia32_emitter.c +++ b/ir/be/ia32/ia32_emitter.c @@ -1988,6 +1988,7 @@ static void ia32_register_emitters(void) { #undef IA32_EMIT } +static const char *last_name = NULL; static unsigned last_line = -1; static unsigned num = -1; @@ -1999,14 +2000,21 @@ static void ia32_emit_dbg(const ir_node *irn, ia32_emit_env_t *env) { unsigned lineno; const char *fname = be_retrieve_dbg_info(db, &lineno); - if (fname && last_line != lineno) { - char name[64]; - FILE *F = env->out; - - snprintf(name, sizeof(name), ".LM%u", ++num); - last_line = lineno; - be_dbg_line(env->cg->birg->main_env->db_handle, lineno, name); - fprintf(F, "%s:\n", name); + if (fname) { + if (last_name != fname) { + last_line = -1; + be_dbg_include_begin(env->cg->birg->main_env->db_handle, fname); + last_name = fname; + } + if (last_line != lineno) { + char name[64]; + FILE *F = env->out; + + snprintf(name, sizeof(name), ".LM%u", ++num); + last_line = lineno; + be_dbg_line(env->cg->birg->main_env->db_handle, lineno, name); + fprintf(F, "%s:\n", name); + } } } -- 2.20.1