env->entries[idx]->low_word = op;
if (mode_is_signed(imode)) {
- env->entries[idx]->high_word = new_rd_Shrs(dbg, irg, block, op,
+ ir_node *op_conv = new_rd_Conv(dbg, irg, block, op, dst_mode_h);
+ env->entries[idx]->high_word = new_rd_Shrs(dbg, irg, block, op_conv,
new_Const_long(mode_Iu, get_mode_size_bits(dst_mode_h) - 1), dst_mode_h);
} else {
env->entries[idx]->high_word = new_Const(dst_mode_h, get_mode_null(dst_mode_h));
int idx = get_irn_idx(node);
ir_mode *mode = get_irn_mode(node);
- if (mode == mode_b || get_irn_op(node) == op_Psi) {
+ if (mode == mode_b || is_Psi(node)) {
int i;
for (i = get_irn_arity(node) - 1; i >= 0; --i) {