- if(a != NULL) {
- tarval *tv = new_tarval_from_long(get_mode_size_bits(lowered_mode) - 1, mode_Iu);
- ir_node *shift_cnt = new_d_Const(dbgi, mode_Iu, tv);
-
- if(mode != lowered_mode) {
- a = new_rd_Conv(dbgi, irg, block, a, lowered_mode);
- b = new_rd_Conv(dbgi, irg, block, b, lowered_mode);
- }
-
- res = new_rd_Sub(dbgi, irg, block, a, b, lowered_mode);
- if(need_not) {
- res = new_rd_Not(dbgi, irg, block, res, lowered_mode);
- }
- res = new_rd_Shr(dbgi, irg, block, res, shift_cnt,
- lowered_mode);
-
- set_irn_link(node, res);
- pdeq_putr(lowered_nodes, node);
- return res;
- }
- }
+ bits = get_mode_size_bits(mode);
+ tv = new_tarval_from_long(bits-1, mode_Iu);
+ shift_cnt = new_d_Const(dbgi, tv);