SYMBOL INDEX (253 symbols across 24 files) FILE: codegen_x64.c function pop_function (line 25) | static void pop_function(void *ignore UNUSED) function emitf (line 41) | static void emitf(int line, char *fmt, ...) function push_xmm (line 71) | static void push_xmm(int reg) function pop_xmm (line 79) | static void pop_xmm(int reg) function push (line 88) | static void push(char *reg) function pop (line 95) | static void pop(char *reg) function emit_gload (line 103) | static void emit_gload(Ctype *ctype, char *label, int off) function emit_toint (line 122) | static void emit_toint(Ctype *ctype) function emit_todouble (line 130) | static void emit_todouble(Ctype *ctype) function emit_lload (line 138) | static void emit_lload(Ctype *ctype, int off) function emit_gsave (line 155) | static void emit_gsave(char *varname, Ctype *ctype, int off) function emit_lsave (line 166) | static void emit_lsave(Ctype *ctype, int off) function emit_assign_deref_int (line 179) | static void emit_assign_deref_int(Ctype *ctype, int off) function emit_assign_deref (line 191) | static void emit_assign_deref(Ast *var) function emit_pointer_arith (line 199) | static void emit_pointer_arith(char op UNUSED, Ast *left, Ast *right) function emit_assign_struct_ref (line 213) | static void emit_assign_struct_ref(Ast *struc, Ctype *field, int off) function emit_load_struct_ref (line 236) | static void emit_load_struct_ref(Ast *struc, Ctype *field, int off) function emit_assign (line 258) | static void emit_assign(Ast *var) function emit_comp (line 279) | static void emit_comp(char *inst, Ast *ast) function emit_binop_int_arith (line 303) | static void emit_binop_int_arith(Ast *ast) function emit_binop_float_arith (line 345) | static void emit_binop_float_arith(Ast *ast) function emit_binop (line 376) | static void emit_binop(Ast *ast) function emit_inc_dec (line 412) | static void emit_inc_dec(Ast *ast, char *op) function emit_load_deref (line 422) | static void emit_load_deref(Ctype *result_type, Ctype *operand_type, int... function emit_expr (line 438) | static void emit_expr(Ast *ast) function emit_data_int (line 672) | static void emit_data_int(Ast *data) function emit_data (line 691) | static void emit_data(Ast *v) function emit_bss (line 706) | static void emit_bss(Ast *v) function emit_global_var (line 712) | static void emit_global_var(Ast *v) function emit_data_section (line 721) | void emit_data_section(void) function align (line 740) | static int align(int n, int m) function emit_func_prologue (line 746) | static void emit_func_prologue(Ast *func) function emit_func_epilogue (line 785) | static void emit_func_epilogue(void) function emit_toplevel (line 792) | void emit_toplevel(Ast *v) FILE: dict.h type Dict (line 8) | typedef struct Dict { type DictEntry (line 15) | typedef struct { function dict_put (line 40) | static inline void dict_put(Dict *dict, char *key, void *val) function List (line 48) | static inline List *dict_keys(Dict *dict) function List (line 57) | static inline List *dict_values(Dict *dict) FILE: lexer.c function Token (line 16) | static Token make_token(enum TokenType type, uintptr_t data) function getc_nonspace (line 24) | static int getc_nonspace(void) function Token (line 35) | static Token read_number(char c) function Token (line 49) | static Token read_char(void) function Token (line 70) | static Token read_string(void) function Token (line 98) | static Token read_ident(char c) function skip_line_comment (line 113) | static void skip_line_comment(void) function skip_block_comment (line 122) | static void skip_block_comment(void) function Token (line 136) | static Token read_rep(int expect, int t1, int t2) function Token (line 145) | static Token read_token_int(void) function is_punct (line 214) | bool is_punct(const Token tok, int c) function unget_token (line 219) | void unget_token(const Token tok) function Token (line 229) | Token peek_token(void) function Token (line 236) | Token read_token(void) FILE: list.h type ListNode (line 7) | typedef struct __ListNode { type List (line 12) | typedef struct { type Iter (line 17) | typedef struct { function List (line 23) | static inline List *make_list(void) function list_push (line 40) | static inline void list_push(List *list, void *elem) function list_unshift (line 68) | static void list_unshift(List *list, void *elem) function Iter (line 80) | static inline Iter list_iter(void *ptr) function iter_end (line 87) | static inline bool iter_end(const Iter iter) function List (line 101) | static inline List *list_reverse(List *list) function list_len (line 109) | static inline int list_len(List *list) function list_free (line 118) | static inline void list_free(List *list) FILE: main.c function usage (line 10) | static void usage() function print_usage_and_exit (line 19) | static void print_usage_and_exit() function parse_args (line 25) | static void parse_args(int argc, char **argv) function open_output_file (line 66) | static void open_output_file() function open_input_file (line 78) | static void open_input_file() function main (line 91) | int main(int argc, char **argv) FILE: mzcc.h type TokenType (line 10) | enum TokenType { type Token (line 19) | typedef struct { type Ctype (line 63) | typedef struct __Ctype { type Ast (line 73) | typedef struct __Ast { FILE: parser.c function Ast (line 42) | static Ast *ast_uop(int type, Ctype *ctype, Ast *operand) function Ast (line 51) | static Ast *ast_binop(int type, Ast *left, Ast *right) function Ast (line 67) | static Ast *ast_inttype(Ctype *ctype, long val) function Ast (line 76) | static Ast *ast_double(double val) function Ast (line 93) | static Ast *ast_lvar(Ctype *ctype, char *name) function Ast (line 105) | static Ast *ast_gvar(Ctype *ctype, char *name, bool filelocal) function Ast (line 116) | static Ast *ast_string(char *str) function Ast (line 126) | static Ast *ast_funcall(Ctype *ctype, char *fname, List *args) function Ast (line 136) | static Ast *ast_func(Ctype *rettype, function Ast (line 152) | static Ast *ast_decl(Ast *var, Ast *init) function Ast (line 162) | static Ast *ast_array_init(List *arrayinit) function Ast (line 171) | static Ast *ast_if(Ast *cond, Ast *then, Ast *els) function Ast (line 182) | static Ast *ast_ternary(Ctype *ctype, Ast *cond, Ast *then, Ast *els) function Ast (line 193) | static Ast *ast_for(Ast *init, Ast *cond, Ast *step, Ast *body) function Ast (line 205) | static Ast *ast_return(Ast *retval) function Ast (line 214) | static Ast *ast_compound_stmt(List *stmts) function Ast (line 223) | static Ast *ast_struct_ref(Ctype *ctype, Ast *struc, char *name) function Ctype (line 233) | static Ctype *make_ptr_type(Ctype *ctype) function Ctype (line 243) | static Ctype *make_array_type(Ctype *ctype, int len) function Ctype (line 254) | static Ctype *make_struct_field_type(Ctype *ctype, int offset) function Ctype (line 263) | static Ctype *make_struct_type(Dict *fields, int size) function is_inttype (line 273) | bool is_inttype(Ctype *ctype) function is_flotype (line 279) | bool is_flotype(Ctype *ctype) function ensure_lvalue (line 284) | static void ensure_lvalue(Ast *ast) function expect (line 297) | static void expect(char punct) function is_ident (line 304) | static bool is_ident(const Token tok, char *s) function is_right_assoc (line 309) | static bool is_right_assoc(const Token tok) function eval_intexpr (line 314) | static int eval_intexpr(Ast *ast) function priority (line 339) | static int priority(const Token tok) function Ast (line 380) | static Ast *read_func_args(char *fname) function Ast (line 400) | static Ast *read_ident_or_func(char *name) function is_long_token (line 412) | static bool is_long_token(char *p) function is_int_token (line 421) | static bool is_int_token(char *p) function is_float_token (line 429) | static bool is_float_token(char *p) function Ast (line 442) | static Ast *read_prim(void) function Ctype (line 487) | static Ctype *result_type_int(jmp_buf *jmpbuf, char op, Ctype *a, Ctype *b) function Ast (line 550) | static Ast *read_subscript_expr(Ast *ast) function Ctype (line 558) | static Ctype *convert_array(Ctype *ctype) function Ctype (line 565) | static Ctype *result_type(char op, Ctype *a, Ctype *b) function Ast (line 575) | static Ast *read_unary_expr(void) function Ast (line 610) | static Ast *read_cond_expr(Ast *cond) function Ast (line 618) | static Ast *read_struct_field(Ast *struc) function Ast (line 630) | static Ast *read_expr_int(int prec) function Ast (line 686) | static Ast *read_expr(void) function Ctype (line 691) | static Ctype *get_ctype(const Token tok) function is_type_keyword (line 711) | static bool is_type_keyword(const Token tok) function Ast (line 716) | static Ast *read_decl_array_init_int(Ctype *ctype) function Dict (line 749) | static Dict *read_struct_union_fields(void) function Ctype (line 765) | static Ctype *read_union_def(void) function Ctype (line 783) | static Ctype *read_struct_def(void) function Ctype (line 805) | static Ctype *read_decl_spec(void) function Ast (line 824) | static Ast *read_decl_init_val(Ast *var) function Ctype (line 847) | static Ctype *read_array_dimensions_int(Ctype *basetype) function Ctype (line 869) | static Ctype *read_array_dimensions(Ctype *basetype) function Ast (line 875) | static Ast *read_decl_init(Ast *var) function Ctype (line 887) | static Ctype *read_decl_int(Token *name) function Ast (line 896) | static Ast *read_decl(void) function Ast (line 906) | static Ast *read_if_stmt(void) function Ast (line 921) | static Ast *read_opt_decl_or_stmt(void) function Ast (line 930) | static Ast *read_opt_expr(void) function Ast (line 941) | static Ast *read_for_stmt(void) function Ast (line 954) | static Ast *read_return_stmt(void) function Ast (line 961) | static Ast *read_stmt(void) function Ast (line 978) | static Ast *read_decl_or_stmt(void) function Ast (line 986) | static Ast *read_compound_stmt(void) function List (line 1005) | static List *read_params(void) function Ast (line 1029) | static Ast *read_func_def(Ctype *rettype, char *fname) function Ast (line 1045) | static Ast *read_decl_or_func_def(void) function List (line 1075) | List *read_toplevels(void) FILE: sample/nqueen.c function conflict (line 1) | int conflict(int board[][8], int row, int col) function print_board (line 15) | int print_board(int board[][8]) function solve (line 25) | int solve(int board[][8], int row) function main (line 40) | int main() FILE: tests/arith.c function expect (line 3) | int expect(int a, int b) function test_basic (line 12) | int test_basic() function test_inc_dec (line 28) | int test_inc_dec() function test_bool (line 37) | int test_bool() function test_ternary (line 43) | int test_ternary() function test_logand (line 51) | int test_logand() function test_bitand (line 58) | int test_bitand() function test_shift (line 64) | int test_shift() function main (line 70) | int main() FILE: tests/array.c function expect (line 3) | int expect(int a, int b) function t1 (line 12) | int t1() function t2 (line 20) | int t2() function t3 (line 30) | int t3() function t4 (line 38) | int t4() function t5 (line 46) | int t5() function t6a (line 56) | int t6a(int e, int x[][3]) function t6 (line 61) | int t6() function t7 (line 69) | int t7() function main (line 76) | int main() FILE: tests/comp.c function expect (line 3) | int expect(int a, int b) function main (line 12) | int main() FILE: tests/control.c function expect (line 3) | int expect(int a, int b) function testif1 (line 12) | int testif1() function testif2 (line 19) | int testif2() function testif3 (line 26) | int testif3() function testif4 (line 35) | int testif4() function testif5 (line 44) | int testif5() function testif6 (line 50) | int testif6() function testif7 (line 56) | int testif7() function testif8 (line 64) | int testif8() function testif9 (line 72) | int testif9() function testif10 (line 78) | int testif10() function testif (line 85) | int testif() function testfor (line 99) | int testfor() function main (line 114) | int main() FILE: tests/decl.c function expect (line 3) | int expect(int a, int b) function t1 (line 12) | int t1() function t2 (line 18) | int t2() function t3 (line 26) | int t3() function t4 (line 33) | int t4() function t5 (line 40) | int t5() function t6 (line 47) | int t6() function main (line 53) | int main() FILE: tests/float.c function expect (line 3) | int expect(float a, float b) function main (line 12) | int main() FILE: tests/function.c function expect (line 3) | int expect(int a, int b) function t1 (line 12) | int t1() function t2 (line 17) | int t2(int a) function t3 (line 22) | int t3(int a, int b, int c, int d, int e, int f) function t4a (line 32) | int t4a(int *p) function t4 (line 37) | int t4() function t5a (line 43) | int t5a(int *p) function t5b (line 52) | int t5b(int p[]) function t5 (line 61) | int t5() function main (line 74) | int main() FILE: tests/global.c function expect (line 7) | int expect(int a, int b) function main (line 16) | int main() FILE: tests/long.c function expect (line 3) | int expect(long a, long b) function main (line 12) | int main() FILE: tests/pointer.c function expect (line 3) | int expect(int a, int b) function t1 (line 12) | int t1() function t2 (line 19) | int t2() function t3 (line 25) | int t3() function t4 (line 31) | int t4() function t5 (line 38) | int t5() function main (line 45) | int main() FILE: tests/pointer_arith.c function expect (line 3) | int expect(int a, int b) function t1 (line 12) | int t1() function t2 (line 20) | int t2() function t3 (line 28) | int t3() function t4 (line 36) | int t4() function main (line 44) | int main() FILE: tests/scope.c function expect (line 3) | int expect(int a, int b) function main (line 12) | int main() FILE: tests/struct.c function expect (line 3) | int expect(int a, int b) function t1 (line 12) | int t1() function t2 (line 21) | int t2() function t3 (line 32) | int t3() function t4 (line 47) | int t4() function t5 (line 63) | int t5() function t6 (line 73) | int t6() function t7 (line 83) | int t7() function t8 (line 94) | int t8() function t9 (line 105) | int t9() type tag10 (line 118) | struct tag10 { function t10 (line 125) | int t10() type tag11 (line 133) | struct tag11 { function t11 (line 136) | int t11() type tag12 (line 149) | struct tag12 { function t12 (line 153) | int t12() function main (line 166) | int main() FILE: tests/union.c function expect (line 3) | int expect(int a, int b) function t1 (line 12) | int t1() function t2 (line 22) | int t2() function t3 (line 33) | int t3() function main (line 44) | int main() FILE: util.h type String (line 10) | typedef struct { function String (line 19) | static inline String make_string(void) function realloc_body (line 28) | static inline void realloc_body(String *s) function string_append (line 43) | static inline void string_append(String *s, char c) function string_appendf (line 51) | static inline void string_appendf(String *s, char *fmt, ...) function errorf (line 76) | static inline void errorf(char *file, int line, char *fmt, ...) FILE: verbose.c function uop_to_string (line 44) | static void uop_to_string(String *buf, char *op, Ast *ast) function binop_to_string (line 49) | static void binop_to_string(String *buf, char *op, Ast *ast) function ast_to_string_int (line 55) | static void ast_to_string_int(String *buf, Ast *ast) type TokenType (line 215) | enum TokenType