X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firio.c;h=ea7286788487ba359bbca3ab69345519324f175c;hb=4cd078ec5fa77ed44ab3e7ed5f4b991676dd536c;hp=81a023990bc1c2f652c69736f07b9347bc695e0f;hpb=fb2a783c4d6e8a2c203c6ce9833ac50d381fa2e1;p=libfirm diff --git a/ir/ir/irio.c b/ir/ir/irio.c index 81a023990..ea7286788 100644 --- a/ir/ir/irio.c +++ b/ir/ir/irio.c @@ -396,17 +396,8 @@ static void write_tarval(io_env_t *env, ir_tarval *tv) fputc(' ', env->file); } -static void write_align(io_env_t *env, ir_node *irn) +static void write_align(io_env_t *env, ir_align align) { - ir_align align; - - if (is_Load(irn)) - align = get_Load_align(irn); - else if (is_Store(irn)) - align = get_Store_align(irn); - else - panic("Invalid optype for write_align"); - fputs(get_align_name(align), env->file); fputc(' ', env->file); } @@ -454,9 +445,9 @@ static void write_initializer(io_env_t *env, ir_initializer_t *ini) break; case IR_INITIALIZER_COMPOUND: { - unsigned i, n = get_initializer_compound_n_entries(ini); - fprintf(f, "%u ", n); - for (i = 0; i < n; i++) + size_t i, n = get_initializer_compound_n_entries(ini); + ir_fprintf(f, "%zu ", n); + for (i = 0; i < n; ++i) write_initializer(env, get_initializer_compound_value(ini, i)); break; } @@ -472,17 +463,8 @@ static void write_pin_state(io_env_t *env, ir_node *irn) fputc(' ', env->file); } -static void write_volatility(io_env_t *env, ir_node *irn) +static void write_volatility(io_env_t *env, ir_volatility vol) { - ir_volatility vol; - - if (is_Load(irn)) - vol = get_Load_volatility(irn); - else if (is_Store(irn)) - vol = get_Store_volatility(irn); - else - panic("Invalid optype for write_volatility"); - fputs(get_volatility_name(vol), env->file); fputc(' ', env->file); } @@ -600,7 +582,7 @@ static void export_type_post(io_env_t *env, ir_type *tp) write_long(env, get_type_nr(get_method_param_type(tp, i))); for (i = 0; i < nresults; i++) write_long(env, get_type_nr(get_method_res_type(tp, i))); - ir_fprintf(f, "%zu ", get_method_first_variadic_param_index(tp)); + ir_fprintf(f, "%u ", get_method_variadicity(tp)); break; } @@ -707,7 +689,6 @@ static void export_type_or_ent_post(type_or_ent tore, void *ctx) default: panic("export_type_or_ent_post: Unknown type or entity."); - break; } } @@ -1069,7 +1050,6 @@ static char *read_string(io_env_t *env) default: parse_error(env, "Unknown escape sequence '\\%c'\n", env->c); exit(1); - break; } } else { obstack_1grow(&env->obst, env->c); @@ -1157,6 +1137,12 @@ static unsigned read_unsigned(io_env_t *env) return (unsigned) read_long(env); } +static size_t read_size_t(io_env_t *env) +{ + /* FIXME */ + return (size_t) read_unsigned(env); +} + static void expect_list_begin(io_env_t *env) { skip_ws(env); @@ -1355,7 +1341,7 @@ static ir_initializer_t *read_initializer(io_env_t *env) return get_initializer_null(); case IR_INITIALIZER_COMPOUND: { - unsigned i, n = (unsigned) read_long(env); + size_t i, n = read_size_t(env); ir_initializer_t *ini = create_initializer_compound(n); for (i = 0; i < n; i++) { ir_initializer_t *curini = read_initializer(env); @@ -1424,29 +1410,25 @@ static void import_type(io_env_t *env) mtp_additional_properties addprops = (mtp_additional_properties) read_long(env); int nparams = (int) read_long(env); int nresults = (int) read_long(env); - int variaindex; + int variadicity; type = new_type_method(nparams, nresults); for (i = 0; i < nparams; i++) { - long typenr = read_long(env); - ir_type *paramtype = get_type(env, typenr); + long ptypenr = read_long(env); + ir_type *paramtype = get_type(env, ptypenr); set_method_param_type(type, i, paramtype); } for (i = 0; i < nresults; i++) { - long typenr = read_long(env); - ir_type *restype = get_type(env, typenr); + long ptypenr = read_long(env); + ir_type *restype = get_type(env, ptypenr); set_method_res_type(type, i, restype); } - variaindex = (int) read_long(env); - if (variaindex != -1) { - set_method_variadicity(type, variadicity_variadic); - if (variaindex != nparams) - set_method_first_variadic_param_index(type, variaindex); - } + variadicity = (int) read_long(env); + set_method_variadicity(type, variadicity); set_method_calling_convention(type, callingconv); set_method_additional_properties(type, addprops); @@ -1516,23 +1498,23 @@ static void import_entity(io_env_t *env) skip_ws(env); while (!isdigit(env->c)) { - char *str = read_word(env); + char *vstr = read_word(env); unsigned v; skip_ws(env); - v = symbol(str, tt_visibility); + v = symbol(vstr, tt_visibility); if (v != SYMERROR) { visibility = (ir_visibility)v; continue; } - v = symbol(str, tt_linkage); + v = symbol(vstr, tt_linkage); if (v != SYMERROR) { linkage |= (ir_linkage)v; continue; } printf("Parser error, expected visibility or linkage, got '%s'\n", - str); + vstr); break; }