X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=driver%2Fgen_firm_asm.c;h=3a96eac356b9037576eb1f066bcb6f090e5cbf31;hb=e51106027da8f505e9e4b71a3bb2ccaa57c598f9;hp=88f20b51d4313d495475632a61e85c58cb4035b6;hpb=d9f918c846087ee7fc1b97e83671181c1ecf2fff;p=cparser diff --git a/driver/gen_firm_asm.c b/driver/gen_firm_asm.c index 88f20b5..3a96eac 100644 --- a/driver/gen_firm_asm.c +++ b/driver/gen_firm_asm.c @@ -39,11 +39,14 @@ typedef struct fix_ctx { */ static void name(FILE *f, const char *prefix, ir_node *n, const char *suffix) { - fprintf(f, "%s%s_%u%s", - prefix ? prefix : "", - get_op_name(get_irn_op(n)), - get_irn_idx(n), - suffix ? suffix : ""); + const char *op_name = get_op_name(get_irn_op(n)); + unsigned index = get_irn_idx(n); + if(prefix == NULL) + prefix = ""; + if(suffix == NULL) + suffix = ""; + + fprintf(f, "%s%s_%u%s", prefix, op_name, index, suffix); } /** @@ -66,16 +69,16 @@ static void generate_header(FILE *f, ir_graph *irg) if (get_method_n_ress(tp) == 0) fprintf(f, "void"); else - fprintf(f, get_type_name(get_method_res_type(tp, 0))); + fputs(get_type_name(get_method_res_type(tp, 0)), f); fprintf(f, " %s(", s); n = get_method_n_params(tp); if (n == 0) - fprintf(f, get_method_variadicity(tp) == variadicity_variadic ? "" : "void"); + fputs(get_method_variadicity(tp) == variadicity_variadic ? "" : "void", f); else { for (i = 0; i < n; ++i) { if (i > 0) fprintf(f, ", "); - fprintf(f, get_type_name(get_method_param_type(tp, i))); + fputs(get_type_name(get_method_param_type(tp, i)), f); } if (get_method_variadicity(tp) == variadicity_variadic) fprintf(f, ", ..."); @@ -238,13 +241,13 @@ static int generate_predef_node(FILE *f, ir_node *n) else if (n == code) \ name(f, " ", n, " = " #code ";\n"); - if (0); + if (0) {} X(get_irg_start(irg)) X(get_irg_start_block(irg)) X(get_irg_end(irg)) X(get_irg_end_block(irg)) + X(get_irg_initial_exec(irg)) X(get_irg_frame(irg)) - X(get_irg_globals(irg)) X(get_irg_tls(irg)) X(get_irg_value_param_base(irg)) X(get_irg_initial_mem(irg)) @@ -507,7 +510,7 @@ static void generate_code_Const(FILE *f, ir_node *n) else { def_mode: tarval_snprintf(buf, sizeof(buf), tv); - fprintf(f, "new_tarval_from_str(\"%s\", %d, ", buf, strlen(buf)); + fprintf(f, "new_tarval_from_str(\"%s\", %u, ", buf, (unsigned) strlen(buf)); fprintf(f, "mode_%s)", get_mode_name(mode)); } } @@ -531,6 +534,7 @@ static void generate_code_SymConst(FILE *f, ir_node *n) ir_label_t label; symconst_kind kind = get_SymConst_kind(n); const char *k_name = "NULL"; + const char *str; switch (kind) { case symconst_addr_ent: @@ -539,7 +543,8 @@ static void generate_code_SymConst(FILE *f, ir_node *n) break; case symconst_addr_name: id = get_SymConst_name(n); - fprintf(f, " sym.ident_p = new_id_from_chars(\"%s\", %d);\n", get_id_str(id), get_id_strlen(id)); + str = get_id_str(id); + fprintf(f, " sym.ident_p = new_id_from_chars(\"%s\", %d);\n", str, get_id_strlen(id)); k_name = "symconst_addr_name"; break; case symconst_type_size: @@ -564,7 +569,8 @@ static void generate_code_SymConst(FILE *f, ir_node *n) break; case symconst_enum_const: id = get_SymConst_name(n); - fprintf(f, " sym.ident_p = new_id_from_chars(\"%s\", %d);\n", get_id_str(id), get_id_strlen(id)); + str = get_id_str(id); + fprintf(f, " sym.ident_p = new_id_from_chars(\"%s\", %d);\n", str, get_id_strlen(id)); k_name = "symconst_enum_const"; break; case symconst_label: @@ -965,11 +971,13 @@ static void generate_code_Proj(FILE *f, ir_node *n) case iro_Cond: generate_code_Proj_Cond(f, n); break; - default: + default: { + const char *mode_name = get_mode_name(get_irn_mode(n)); name(f, " ", n, " = new_r_Proj(irg, "); name(f, NULL, get_nodes_block(n), ", "); name(f, NULL, get_Proj_pred(n), ", "); - fprintf(f, "mode_%s, %ld);\n", get_mode_name(get_irn_mode(n)), get_Proj_proj(n)); + fprintf(f, "mode_%s, %ld);\n", mode_name, get_Proj_proj(n)); + } } }