From: Dale Weiler Date: Sat, 28 Apr 2012 07:37:14 +0000 (-0400) Subject: Better codegen X-Git-Tag: 0.1-rc1~578^2~1 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=fd31c203dc60383d8b5d97b0f41175861cea8e99;p=xonotic%2Fgmqcc.git Better codegen --- diff --git a/asm.c b/asm.c index 0e18280..99bb406 100644 --- a/asm.c +++ b/asm.c @@ -142,18 +142,33 @@ static inline bool asm_parse_func(const char *skip, size_t line, asm_state *stat mem_d(name); name = util_strchp(name, strchr(name, ',')); - /* add internal function */ + /* + * Now add the following items to the code system: + * function + * definition (optional) + * global (optional) + * name + */ code_functions_add((prog_section_function){ -atoi(find), /* needs to be negated */ 0, 0, 0, .name = code_chars_elements, 0, 0,{0} }); - /* add name to string table */ + code_defs_add((prog_section_def){ + .type = TYPE_FUNCTION, + .offset = code_globals_elements, + .name = code_chars_elements + }); + code_globals_add(code_chars_elements); + code_chars_put(name, strlen(name)); code_chars_add('\0'); + + /* TODO: sanatize `find` to ensure all numerical digits */ printf("found internal function %s, -%d\n", name, atoi(find)); + } else { } mem_d(copy);