newn = get_Sel_ptr(sel);
offset = get_entity_offset(ent);
if (offset != 0) {
- tv = new_tarval_from_long(offset, mode_Int);
- cnst = new_r_Const(irg, get_irg_start_block(irg), mode_Int, tv);
+ ir_mode *mode_UInt = get_reference_mode_unsigned_eq(mode);
+
+ tv = new_tarval_from_long(offset, mode_UInt);
+ cnst = new_r_Const(irg, get_irg_start_block(irg), mode_UInt, tv);
newn = new_rd_Add(dbg, irg, bl, newn, cnst, mode);
}
} else {
*/
void lower_highlevel_graph(ir_graph *irg, int lower_bitfields) {
- if(lower_bitfields) {
+ if (lower_bitfields) {
/* First step: lower bitfield access: must be run as long as Sels still
* exists. */
irg_walk_graph(irg, NULL, lower_bf_access, NULL);
/* Finally: lower SymConst-Size and Sel nodes, Casts, unaligned Load/Stores. */
irg_walk_graph(irg, NULL, lower_irnode, NULL);
set_irg_phase_low(irg);
-} /* lower_highlevel */
+} /* lower_highlevel_graph */
+/*
+ * does the same as lower_highlevel() for all nodes on the const code irg
+ */
void lower_const_code(void) {
walk_const_code(NULL, lower_irnode, NULL);
-}
+} /* lower_const_code */
/*
* Replaces SymConsts by a real constant if possible.