Commit 94c37f5c authored by Christoph Mallon's avatar Christoph Mallon
Browse files

Get the mode from the element type instead of hard-coding it.

parent 1786345c
......@@ -220,14 +220,15 @@ static void instrument_block(ir_node *const bb, ir_node *const address, unsigned
ir_type *const type_arr = get_entity_type(get_irn_entity_attr(address));
ir_type *const type_ctr = get_array_element_type(type_arr);
ir_mode *const mode_ctr = get_type_mode(type_ctr);
ir_node *const unknown = new_r_Unknown(irg, mode_M);
ir_mode *const mode_off = get_reference_offset_mode(get_irn_mode(address));
ir_node *const cnst = new_r_Const_long(irg, mode_off, get_mode_size_bytes(mode_Iu) * id);
ir_node *const cnst = new_r_Const_long(irg, mode_off, get_mode_size_bytes(mode_ctr) * id);
ir_node *const offset = new_r_Add(bb, address, cnst);
ir_node *const load = new_r_Load(bb, unknown, offset, mode_Iu, type_ctr, cons_none);
ir_node *const load = new_r_Load(bb, unknown, offset, mode_ctr, type_ctr, cons_none);
ir_node *const lmem = new_r_Proj(load, mode_M, pn_Load_M);
ir_node *const proji = new_r_Proj(load, mode_Iu, pn_Load_res);
ir_node *const one = new_r_Const_one(irg, mode_Iu);
ir_node *const proji = new_r_Proj(load, mode_ctr, pn_Load_res);
ir_node *const one = new_r_Const_one(irg, mode_ctr);
ir_node *const add = new_r_Add(bb, proji, one);
ir_node *const store = new_r_Store(bb, lmem, offset, add, type_ctr, cons_none);
ir_node *const smem = new_r_Proj(store, mode_M, pn_Store_M);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment