X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firprofile.c;h=1609687dd7c328284a0452cf0907ab1f729dcd10;hb=8f355cb9b3d20c10f71d1b1e17cbf59a51ced83b;hp=c6595d14915964b001357f8f2421c1ae6d1b579f;hpb=4ebc4b6497324aa5d2380a897c75d3c391760ba0;p=libfirm diff --git a/ir/ir/irprofile.c b/ir/ir/irprofile.c index c6595d149..1609687dd 100644 --- a/ir/ir/irprofile.c +++ b/ir/ir/irprofile.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -220,14 +220,14 @@ gen_initializer_irg(ir_entity * ent_filename, ir_entity * bblock_id, ir_entity * start_block = get_irg_start_block(irg); sym.entity_p = init_ent; - symconst = new_r_SymConst(irg, start_block, sym, symconst_addr_ent); + symconst = new_r_SymConst(irg, start_block, mode_P_data, sym, symconst_addr_ent); sym.entity_p = ent_filename; - ins[0] = new_r_SymConst(irg, start_block, sym, symconst_addr_ent); + ins[0] = new_r_SymConst(irg, start_block, mode_P_data, sym, symconst_addr_ent); sym.entity_p = bblock_id; - ins[1] = new_r_SymConst(irg, start_block, sym, symconst_addr_ent); + ins[1] = new_r_SymConst(irg, start_block, mode_P_data, sym, symconst_addr_ent); sym.entity_p = bblock_counts; - ins[2] = new_r_SymConst(irg, start_block, sym, symconst_addr_ent); + ins[2] = new_r_SymConst(irg, start_block, mode_P_data, sym, symconst_addr_ent); ins[3] = new_r_Const_long(irg, start_block, mode_Iu, n_blocks); call = new_r_Call(irg, bb, get_irg_initial_mem(irg), symconst, 4, ins, init_type); @@ -395,13 +395,13 @@ ir_profile_instrument(const char *filename, unsigned flags) align_n = get_type_size_bytes(charptr_type); set_type_alignment_bytes(charptr_type, align_n); loc_name = new_entity(loc_type, IDENT("name"), charptr_type); - size = (size + align_n - 1) & -align_n; + size = (size + align_n - 1) & ~(align_n - 1); set_entity_offset(loc_name, size); size += align_n; if (align_n > align_l) align_l = align_n; - size = (size + align_l - 1) & -align_l; + size = (size + align_l - 1) & ~(align_l - 1); set_type_size_bytes(loc_type, size); set_type_state(loc_type, layout_fixed); @@ -449,7 +449,7 @@ ir_profile_instrument(const char *filename, unsigned flags) /* generate a symbolic constant pointing to the count array */ sym.entity_p = bblock_counts; - wd.symconst = new_r_SymConst(irg, get_irg_start_block(irg), sym, symconst_addr_ent); + wd.symconst = new_r_SymConst(irg, get_irg_start_block(irg), mode_P_data, sym, symconst_addr_ent); irg_block_walk_graph(irg, block_id_walker, NULL, &wd); start_block = get_irg_start_block(irg); @@ -509,7 +509,7 @@ ir_profile_instrument(const char *filename, unsigned flags) set_compound_graph_path_node(path, 1, loc_name); if (wd.locs[i].fname) { sym.entity_p = wd.locs[i].fname; - n = new_SymConst(sym, symconst_addr_ent); + n = new_SymConst(mode_P_data, sym, symconst_addr_ent); } else { n = new_Const(mode_P_data, get_mode_null(mode_P_data)); }