Lines Matching defs:sym

130 			struct symbol *sym;
196 static struct storage *x86_symbol_expr(struct symbol *sym);
197 static void x86_symbol(struct symbol *sym);
419 static void stor_sym_init(struct symbol *sym)
432 stor->sym = sym;
447 strcpy(name, show_ident(s->sym->ident));
541 static struct storage *new_labelsym(struct symbol *sym)
549 stor->labelsym = sym;
672 static void emit_labelsym (struct symbol *sym, const char *comment)
678 sprintf(s, ".LS%p:\n", sym);
680 sprintf(s, ".LS%p:\t\t\t\t# %s\n", sym, comment);
798 static void emit_func_pre(struct symbol *sym)
806 struct symbol *base_type = sym->ctype.base_type;
847 static void emit_func_post(struct symbol *sym)
849 const char *name = show_ident(sym->ident);
858 if ((sym->ctype.modifiers & MOD_STATIC) == 0)
892 name = show_ident(sym->ident);
959 static void emit_initializer(struct symbol *sym,
965 printf("\t.zero\t%d\n", (sym->bit_size / 8) * distance);
968 struct symbol *base_type = sym->ctype.base_type;
971 emit_scalar(expr, sym->bit_size / get_expression_value(base_type->array_size));
1049 static void emit_array(struct symbol *sym)
1051 struct symbol *base_type = sym->ctype.base_type;
1052 struct expression *expr = sym->initializer;
1057 stor_sym_init(sym);
1061 emit_object_pre(show_ident(sym->ident), sym->ctype.modifiers,
1062 sym->ctype.alignment,
1063 sym->bit_size / 8);
1070 emit_initializer(sym, entry);
1075 emit_initializer(sym, entry->init_expr);
1081 void emit_one_symbol(struct symbol *sym)
1083 x86_symbol(sym);
1120 static void emit_scalar_noinit(struct symbol *sym)
1122 emit_global_noinit(show_ident(sym->ident),
1123 sym->ctype.modifiers, sym->ctype.alignment,
1124 sym->bit_size / 8);
1125 stor_sym_init(sym);
1128 static void emit_array_noinit(struct symbol *sym)
1130 emit_global_noinit(show_ident(sym->ident),
1131 sym->ctype.modifiers, sym->ctype.alignment,
1132 get_expression_value(sym->array_size) * (sym->bit_size / 8));
1133 stor_sym_init(sym);
1611 static struct storage *emit_symbol_expr_init(struct symbol *sym)
1613 struct expression *expr = sym->initializer;
1614 struct symbol_private *priv = sym->aux;
1618 sym->aux = priv;
1623 show_ident(sym->ident),
1714 struct symbol *sym, *default_sym = NULL;
1725 FOR_EACH_PTR(stmt->switch_case->symbol_list, sym) {
1726 struct statement *case_stmt = sym->stmt;
1732 default_sym = sym;
1743 labelsym = new_labelsym(sym);
1766 labelsym = new_labelsym(sym);
1772 } END_FOR_EACH_PTR(sym);
1793 static void x86_struct_member(struct symbol *sym)
1795 printf("\t%s:%d:%ld at offset %ld.%d", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->offset, sym->bit_offset);
1799 static void x86_symbol(struct symbol *sym)
1803 if (!sym)
1806 type = sym->ctype.base_type;
1816 if (sym->initializer)
1817 emit_array(sym);
1819 emit_array_noinit(sym);
1823 if (sym->initializer) {
1824 emit_object_pre(show_ident(sym->ident),
1825 sym->ctype.modifiers,
1826 sym->ctype.alignment,
1827 sym->bit_size / 8);
1828 emit_scalar(sym->initializer, sym->bit_size);
1829 stor_sym_init(sym);
1831 emit_scalar_noinit(sym);
1849 emit_func_pre(sym);
1851 emit_func_post(sym);
1860 if (sym->initializer && (type->type != SYM_BASETYPE) &&
1863 x86_expression(sym->initializer);
1867 static void x86_symbol_init(struct symbol *sym);
1871 struct symbol *sym;
1872 FOR_EACH_PTR(syms, sym) {
1873 x86_symbol_init(sym);
1874 } END_FOR_EACH_PTR(sym);
2104 struct symbol *sym = fn->unop->symbol;
2105 if (sym->ctype.base_type->type == SYM_FN)
2106 direct = sym;
2112 direct_stor->sym = direct;
2192 static int x86_initialization(struct symbol *sym, struct expression *expr)
2202 addr = x86_symbol_expr(sym);
2228 static struct storage *x86_symbol_expr(struct symbol *sym)
2232 if (sym->ctype.modifiers & (MOD_TOPLEVEL | MOD_EXTERN | MOD_STATIC)) {
2233 printf("\tmovi.%d\t\tv%d,$%s\n", bits_in_pointer, new->pseudo, show_ident(sym->ident));
2236 if (sym->ctype.modifiers & MOD_ADDRESSABLE) {
2240 printf("\taddi.%d\t\tv%d,vFP,$offsetof(%s:%p)\n", bits_in_pointer, new->pseudo, show_ident(sym->ident), sym);
2244 static void x86_symbol_init(struct symbol *sym)
2246 struct symbol_private *priv = sym->aux;
2247 struct expression *expr = sym->initializer;
2253 new = stack_alloc(sym->bit_size / 8);
2257 sym->aux = priv;