/*
- * 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.
*
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);
tarval *tv;
int filename_len = strlen(filename)+1;
ident *cur_ident;
- int align_l, align_n, size;
+ unsigned align_l, align_n, size;
ir_graph *rem;
block_id_walker_data_t wd;
symconst_symbol sym;
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);
/* 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);
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));
}