mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-03-01 06:21:04 +00:00
Better codegen
This commit is contained in:
parent
07c6aea7dc
commit
fd31c203dc
1 changed files with 17 additions and 2 deletions
19
asm.c
19
asm.c
|
@ -142,18 +142,33 @@ static inline bool asm_parse_func(const char *skip, size_t line, asm_state *stat
|
||||||
mem_d(name);
|
mem_d(name);
|
||||||
name = util_strchp(name, strchr(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){
|
code_functions_add((prog_section_function){
|
||||||
-atoi(find), /* needs to be negated */
|
-atoi(find), /* needs to be negated */
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
.name = code_chars_elements,
|
.name = code_chars_elements,
|
||||||
0, 0,{0}
|
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_put(name, strlen(name));
|
||||||
code_chars_add('\0');
|
code_chars_add('\0');
|
||||||
|
|
||||||
|
/* TODO: sanatize `find` to ensure all numerical digits */
|
||||||
|
|
||||||
printf("found internal function %s, -%d\n", name, atoi(find));
|
printf("found internal function %s, -%d\n", name, atoi(find));
|
||||||
|
} else {
|
||||||
}
|
}
|
||||||
|
|
||||||
mem_d(copy);
|
mem_d(copy);
|
||||||
|
|
Loading…
Reference in a new issue