Commit 85d72a50 authored by Matthias Braun's avatar Matthias Braun
Browse files

do Conv after Set command (instead of mov 0,) before the set, should be as...

do Conv after Set command (instead of mov 0,) before the set, should be as fast as before but opens up other optimisation possibilities

[r15591]
parent 502acdd9
......@@ -1112,11 +1112,6 @@ void Set_emitter(ia32_emit_env_t *env, const ir_node *node)
}
be_emit_finish_line_gas(env, node);
/* use mov to clear target because it doesn't affect the eflags */
be_emit_cstring(env, "\tmovl $0, %");
be_emit_string(env, arch_register_get_name(out));
be_emit_finish_line_gas(env, node);
be_emit_cstring(env, "\tset");
ia32_emit_cmp_suffix(env, pnc);
be_emit_cstring(env, " %");
......
......@@ -1981,6 +1981,9 @@ static ir_node *create_set(long pnc, ir_node *cmp_left, ir_node *cmp_right,
new_cmp_left, new_cmp_right, nomem, pnc);
set_ia32_am_support(res, ia32_am_Source, ia32_am_binary);
res = new_rd_ia32_Conv_I2I8Bit(dbgi, irg, block, noreg, noreg, res,
nomem, mode_Bu);
return res;
}
......@@ -1993,8 +1996,10 @@ static ir_node *create_set(long pnc, ir_node *cmp_left, ir_node *cmp_right,
new_cmp_left = maybe_scale_up(new_cmp_left, mode, dbgi);
new_cmp_right = maybe_scale_up(new_cmp_right, mode, dbgi);
res = new_rd_ia32_CmpSet(dbgi, irg, block, noreg, noreg,
new_cmp_left, new_cmp_right, nomem, pnc);
res = new_rd_ia32_CmpSet(dbgi, irg, block, noreg, noreg, new_cmp_left,
new_cmp_right, nomem, pnc);
res = new_rd_ia32_ConvI2I8Bit(dbgi, irg, block, noreg, noreg, res, nomem,
mode_Bu);
return res;
}
......
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