Commit 5b20e017 authored by Matthias Braun's avatar Matthias Braun
Browse files

fix another 2 instances where doubleword lowering didn't check if previous...

fix another 2 instances where doubleword lowering didn't check if previous nodes were already lowered

[r27471]
parent 9e8485b0
......@@ -959,7 +959,14 @@ static void lower_Shl(ir_node *node, ir_mode *mode, lower_env_t *env)
long shf_cnt = get_tarval_long(tv) - get_mode_size_bits(mode);
int idx = get_irn_idx(left);
left = new_r_Conv(block, env->entries[idx]->low_word, mode);
left = env->entries[idx]->low_word;
if (left == NULL) {
/* not ready yet, wait */
pdeq_putr(env->waitq, node);
return;
}
left = new_r_Conv(block, left, mode);
idx = get_irn_idx(node);
mode_l = env->params->low_unsigned;
......@@ -999,8 +1006,13 @@ static void lower_Shrs(ir_node *node, ir_mode *mode, lower_env_t *env)
ir_node *c;
left = env->entries[idx]->high_word;
idx = get_irn_idx(node);
if (left == NULL) {
/* not ready yet, wait */
pdeq_putr(env->waitq, node);
return;
}
idx = get_irn_idx(node);
mode_l = env->params->low_unsigned;
if (shf_cnt > 0) {
c = new_r_Const_long(irg, mode_l, shf_cnt);
......
Supports Markdown
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