mirror of
https://github.com/qemu/qemu.git
synced 2024-11-25 11:53:39 +08:00
target/openrisc: Use dc->zero in gen_add, gen_addc
We still need the t0 temporary for computing overflow, but we do not need to initialize it to zero first. Reviewed-by: Stafford Horne <shorne@gmail.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
118671f02f
commit
e0efc48fbc
@ -199,10 +199,10 @@ static void gen_ove_cyov(DisasContext *dc)
|
|||||||
|
|
||||||
static void gen_add(DisasContext *dc, TCGv dest, TCGv srca, TCGv srcb)
|
static void gen_add(DisasContext *dc, TCGv dest, TCGv srca, TCGv srcb)
|
||||||
{
|
{
|
||||||
TCGv t0 = tcg_const_tl(0);
|
TCGv t0 = tcg_temp_new();
|
||||||
TCGv res = tcg_temp_new();
|
TCGv res = tcg_temp_new();
|
||||||
|
|
||||||
tcg_gen_add2_tl(res, cpu_sr_cy, srca, t0, srcb, t0);
|
tcg_gen_add2_tl(res, cpu_sr_cy, srca, dc->zero, srcb, dc->zero);
|
||||||
tcg_gen_xor_tl(cpu_sr_ov, srca, srcb);
|
tcg_gen_xor_tl(cpu_sr_ov, srca, srcb);
|
||||||
tcg_gen_xor_tl(t0, res, srcb);
|
tcg_gen_xor_tl(t0, res, srcb);
|
||||||
tcg_gen_andc_tl(cpu_sr_ov, t0, cpu_sr_ov);
|
tcg_gen_andc_tl(cpu_sr_ov, t0, cpu_sr_ov);
|
||||||
@ -216,11 +216,11 @@ static void gen_add(DisasContext *dc, TCGv dest, TCGv srca, TCGv srcb)
|
|||||||
|
|
||||||
static void gen_addc(DisasContext *dc, TCGv dest, TCGv srca, TCGv srcb)
|
static void gen_addc(DisasContext *dc, TCGv dest, TCGv srca, TCGv srcb)
|
||||||
{
|
{
|
||||||
TCGv t0 = tcg_const_tl(0);
|
TCGv t0 = tcg_temp_new();
|
||||||
TCGv res = tcg_temp_new();
|
TCGv res = tcg_temp_new();
|
||||||
|
|
||||||
tcg_gen_add2_tl(res, cpu_sr_cy, srca, t0, cpu_sr_cy, t0);
|
tcg_gen_add2_tl(res, cpu_sr_cy, srca, dc->zero, cpu_sr_cy, dc->zero);
|
||||||
tcg_gen_add2_tl(res, cpu_sr_cy, res, cpu_sr_cy, srcb, t0);
|
tcg_gen_add2_tl(res, cpu_sr_cy, res, cpu_sr_cy, srcb, dc->zero);
|
||||||
tcg_gen_xor_tl(cpu_sr_ov, srca, srcb);
|
tcg_gen_xor_tl(cpu_sr_ov, srca, srcb);
|
||||||
tcg_gen_xor_tl(t0, res, srcb);
|
tcg_gen_xor_tl(t0, res, srcb);
|
||||||
tcg_gen_andc_tl(cpu_sr_ov, t0, cpu_sr_ov);
|
tcg_gen_andc_tl(cpu_sr_ov, t0, cpu_sr_ov);
|
||||||
|
Loading…
Reference in New Issue
Block a user