Lines Matching refs:sym

44 static int show_symbol_expr(struct symbol *sym);
47 static void do_debug_symbol(struct symbol *sym, int indent) in do_debug_symbol() argument
73 if (!sym) in do_debug_symbol()
76 indent, indent_string, typestr[sym->type], in do_debug_symbol()
77 sym->bit_size, sym->ctype.alignment, in do_debug_symbol()
78 modifier_string(sym->ctype.modifiers), show_ident(sym->ident), in do_debug_symbol()
79 show_as(sym->ctype.as), in do_debug_symbol()
80 sym, stream_name(sym->pos.stream), sym->pos.line, sym->pos.pos, in do_debug_symbol()
81 builtin_typename(sym) ?: ""); in do_debug_symbol()
83 FOR_EACH_PTR(sym->ctype.contexts, context) { in do_debug_symbol()
90 if (sym->type == SYM_FN) { in do_debug_symbol()
93 FOR_EACH_PTR(sym->arguments, arg) { in do_debug_symbol()
100 do_debug_symbol(sym->ctype.base_type, indent+2); in do_debug_symbol()
103 void debug_symbol(struct symbol *sym) in debug_symbol() argument
105 do_debug_symbol(sym, 0); in debug_symbol()
168 static void show_struct_member(struct symbol *sym) in show_struct_member() argument
170 …"\t%s:%d:%ld at offset %ld.%d", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->… in show_struct_member()
176 struct symbol *sym; in show_symbol_list() local
179 FOR_EACH_PTR(list, sym) { in show_symbol_list()
182 show_symbol(sym); in show_symbol_list()
183 } END_FOR_EACH_PTR(sym); in show_symbol_list()
227 struct symbol *sym; member
263 const char *builtin_typename(struct symbol *sym) in builtin_typename() argument
268 if (typenames[i].sym == sym) in builtin_typename()
273 const char *builtin_type_suffix(struct symbol *sym) in builtin_type_suffix() argument
278 if (typenames[i].sym == sym) in builtin_type_suffix()
288 if (&typenames[i].sym->ctype == ctype) in builtin_ctypename()
293 static void do_show_type(struct symbol *sym, struct type_name *name) in do_show_type() argument
303 if (!sym || (sym->type != SYM_NODE && sym->type != SYM_ARRAY && in do_show_type()
304 sym->type != SYM_BITFIELD)) { in do_show_type()
311 if (sym->type == SYM_BASETYPE || sym->type == SYM_ENUM) in do_show_type()
321 if (!sym) in do_show_type()
324 if ((typename = builtin_typename(sym))) { in do_show_type()
334 switch (sym->type) { in do_show_type()
337 mod = sym->ctype.modifiers; in do_show_type()
338 as = sym->ctype.as; in do_show_type()
354 prepend(name, "struct %s", show_ident(sym->ident)); in do_show_type()
360 prepend(name, "union %s", show_ident(sym->ident)); in do_show_type()
364 prepend(name, "enum %s ", show_ident(sym->ident)); in do_show_type()
368 if (sym->ident) in do_show_type()
369 append(name, "%s", show_ident(sym->ident)); in do_show_type()
370 mod |= sym->ctype.modifiers; in do_show_type()
371 combine_address_space(sym->pos, &as, sym->ctype.as); in do_show_type()
375 mod |= sym->ctype.modifiers; in do_show_type()
376 combine_address_space(sym->pos, &as, sym->ctype.as); in do_show_type()
377 append(name, ":%d", sym->bit_size); in do_show_type()
381 append(name, "label(%s:%p)", show_ident(sym->ident), sym); in do_show_type()
385 mod |= sym->ctype.modifiers; in do_show_type()
386 combine_address_space(sym->pos, &as, sym->ctype.as); in do_show_type()
392 append(name, "[%lld]", get_expression_value(sym->array_size)); in do_show_type()
396 if (!sym->ident) { in do_show_type()
402 prepend(name, "restricted %s", show_ident(sym->ident)); in do_show_type()
412 prepend(name, "unknown type %d", sym->type); in do_show_type()
416 sym = sym->ctype.base_type; in do_show_type()
430 void show_type(struct symbol *sym) in show_type() argument
436 do_show_type(sym, &name); in show_type()
441 const char *show_typename(struct symbol *sym) in show_typename() argument
447 do_show_type(sym, &name); in show_typename()
452 void show_symbol(struct symbol *sym) in show_symbol() argument
456 if (!sym) in show_symbol()
459 if (sym->ctype.alignment) in show_symbol()
460 printf(".align %ld\n", sym->ctype.alignment); in show_symbol()
462 show_type(sym); in show_symbol()
463 type = sym->ctype.base_type; in show_symbol()
502 if (sym->initializer) { in show_symbol()
504 show_expression(sym->initializer); in show_symbol()
508 static int show_symbol_init(struct symbol *sym);
525 struct symbol *sym; in show_switch_statement() local
537 FOR_EACH_PTR(stmt->switch_case->symbol_list, sym) { in show_switch_statement()
538 struct statement *case_stmt = sym->stmt; in show_switch_statement()
557 printf(": .L%p\n", sym); in show_switch_statement()
558 } END_FOR_EACH_PTR(sym); in show_switch_statement()
569 struct symbol *sym; in show_symbol_decl() local
570 FOR_EACH_PTR(syms, sym) { in show_symbol_decl()
571 show_symbol_init(sym); in show_symbol_decl()
572 } END_FOR_EACH_PTR(sym); in show_symbol_decl()
759 struct symbol *sym = fn->unop->symbol; in show_call_expression() local
760 if (sym->ctype.base_type->type == SYM_FN) in show_call_expression()
761 direct = sym; in show_call_expression()
886 static int show_initialization(struct symbol *sym, struct expression *expr) in show_initialization() argument
895 addr = show_symbol_expr(sym); in show_initialization()
943 static int show_symbol_expr(struct symbol *sym) in show_symbol_expr() argument
947 if (sym->initializer && sym->initializer->type == EXPR_STRING) in show_symbol_expr()
948 return show_string_expr(sym->initializer); in show_symbol_expr()
950 if (sym->ctype.modifiers & (MOD_TOPLEVEL | MOD_EXTERN | MOD_STATIC)) { in show_symbol_expr()
951 printf("\tmovi.%d\t\tv%d,$%s\n", bits_in_pointer, new, show_ident(sym->ident)); in show_symbol_expr()
954 if (sym->ctype.modifiers & MOD_ADDRESSABLE) { in show_symbol_expr()
958 …intf("\taddi.%d\t\tv%d,vFP,$offsetof(%s:%p)\n", bits_in_pointer, new, show_ident(sym->ident), sym); in show_symbol_expr()
962 static int show_symbol_init(struct symbol *sym) in show_symbol_init() argument
964 struct expression *expr = sym->initializer; in show_symbol_init()
971 addr = show_symbol_expr(sym); in show_symbol_init()
1100 int show_symbol_expr_init(struct symbol *sym) in show_symbol_expr_init() argument
1102 struct expression *expr = sym->initializer; in show_symbol_expr_init()
1106 return show_symbol_expr(sym); in show_symbol_expr_init()