diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2003-03-29 16:47:34 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2003-03-29 16:47:34 +0000 |
commit | 0ea00c9a3c5e69ca30007f982fb7f2163ab8116c (patch) | |
tree | 96feb096578daf9b9c8642b7bf1477319f1c2783 /dyngen.c | |
parent | e1d4294a4534ef0c14fa83e958f352f5f783e931 (diff) |
added number of arguments
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@52 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'dyngen.c')
-rw-r--r-- | dyngen.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -282,7 +282,9 @@ void gen_code(const char *name, unsigned long offset, unsigned long size, error("inconsistent argument numbering in %s", name); } - if (gen_switch) { + if (gen_switch == 2) { + fprintf(outfile, "DEF(%s, %d)\n", name + 3, nb_args); + } else if (gen_switch == 1) { /* output C code */ fprintf(outfile, "case INDEX_%s: {\n", name); @@ -559,12 +561,13 @@ int load_elf(const char *filename, FILE *outfile, int do_print_enum) } if (do_print_enum) { - fprintf(outfile, "DEF(end)\n"); + fprintf(outfile, "DEF(end, 0)\n"); for(i = 0, sym = symtab; i < nb_syms; i++, sym++) { const char *name, *p; name = strtab + sym->st_name; if (strstart(name, OP_PREFIX, &p)) { - fprintf(outfile, "DEF(%s)\n", p); + gen_code(name, sym->st_value, sym->st_size, outfile, + text, relocs, nb_relocs, reloc_sh_type, symtab, strtab, 2); } } } else { |