From b1b586d39809786de309095d488d7c86ce55bb8e Mon Sep 17 00:00:00 2001 From: "Wolfgang (Blub) Bumiller" Date: Fri, 2 Nov 2012 12:32:13 +0100 Subject: [PATCH] -disasm should show builtins as builtins rather than trying to print negative statements - skip function 0 since it's not a valid function --- exec.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/exec.c b/exec.c index 1658604..cbbe546 100644 --- a/exec.c +++ b/exec.c @@ -922,7 +922,7 @@ int main(int argc, char **argv) return 0; } if (opts_disasm) { - for (i = 0; i < prog->functions_count; ++i) + for (i = 1; i < prog->functions_count; ++i) prog_disasm_function(prog, i); return 0; } @@ -962,7 +962,12 @@ void prog_disasm_function(qc_program *prog, size_t id) prog_section_function *fdef = prog->functions + id; prog_section_statement *st; - printf("FUNCTION \"%s\"\n", prog_getstring(prog, fdef->name)); + if (fdef->entry < 0) { + printf("FUNCTION \"%s\" = builtin #%i\n", prog_getstring(prog, fdef->name), (int)-fdef->entry); + return; + } + else + printf("FUNCTION \"%s\"\n", prog_getstring(prog, fdef->name)); st = prog->code + fdef->entry; while (st->opcode != AINSTR_END) {