Mercurial > hg-old > index.cgi
diff src/symbol.c @ 58:b1d81800bc91
Added symbol listing to list file; various fixes
author | lost |
---|---|
date | Mon, 05 Jan 2009 00:20:45 +0000 |
parents | b9856da2674a |
children | d85ba47b1e8f |
line wrap: on
line diff
--- a/src/symbol.c Mon Jan 05 00:01:21 2009 +0000 +++ b/src/symbol.c Mon Jan 05 00:20:45 2009 +0000 @@ -70,6 +70,8 @@ scontext = as -> context; } + debug_message(3, "lwasm_register_symbol(): registering '%s' (%d) at %04X", sym, scontext, val); + // now look it for to see if it is a duplicate se = lwasm_find_symbol(as, sym, scontext); if (se) @@ -129,3 +131,31 @@ se -> value = val; return 0; } + +void lwasm_list_symbols(asmstate_t *as, FILE *lf) +{ + lwasm_symbol_ent_t *se; + + for (se = as -> symhead; se; se = se -> next) + { + if (se -> value > 0xffff || se -> value < -0x8000) + { + fprintf(lf, "%08X ", se -> value); + } + else + { + fprintf(lf, " %04X ", se -> value); + } + if (se -> context < 0) + fputc('G', lf); + else + fputc('L', lf); + + fprintf(lf, " %s", se -> sym); + + if (se -> context >= 0) + fprintf(lf, " (%d)", se -> context); + + fputc('\n', lf); + } +}