Eliminate some uses of T2
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4065 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
1a7b60e727
commit
748b9d8ef0
|
@ -2019,23 +2019,23 @@ static void disas_sparc_insn(DisasContext * dc)
|
||||||
save_state(dc);
|
save_state(dc);
|
||||||
tcg_gen_helper_0_1(helper_trap, cpu_T[0]);
|
tcg_gen_helper_0_1(helper_trap, cpu_T[0]);
|
||||||
} else if (cond != 0) {
|
} else if (cond != 0) {
|
||||||
|
TCGv r_cond = tcg_temp_new(TCG_TYPE_TL);
|
||||||
#ifdef TARGET_SPARC64
|
#ifdef TARGET_SPARC64
|
||||||
/* V9 icc/xcc */
|
/* V9 icc/xcc */
|
||||||
int cc = GET_FIELD_SP(insn, 11, 12);
|
int cc = GET_FIELD_SP(insn, 11, 12);
|
||||||
flush_T2(dc);
|
|
||||||
save_state(dc);
|
save_state(dc);
|
||||||
if (cc == 0)
|
if (cc == 0)
|
||||||
gen_cond(cpu_T[2], 0, cond);
|
gen_cond(r_cond, 0, cond);
|
||||||
else if (cc == 2)
|
else if (cc == 2)
|
||||||
gen_cond(cpu_T[2], 1, cond);
|
gen_cond(r_cond, 1, cond);
|
||||||
else
|
else
|
||||||
goto illegal_insn;
|
goto illegal_insn;
|
||||||
#else
|
#else
|
||||||
flush_T2(dc);
|
|
||||||
save_state(dc);
|
save_state(dc);
|
||||||
gen_cond(cpu_T[2], 0, cond);
|
gen_cond(r_cond, 0, cond);
|
||||||
#endif
|
#endif
|
||||||
tcg_gen_helper_0_2(helper_trapcc, cpu_T[0], cpu_T[2]);
|
tcg_gen_helper_0_2(helper_trapcc, cpu_T[0], r_cond);
|
||||||
}
|
}
|
||||||
gen_op_next_insn();
|
gen_op_next_insn();
|
||||||
tcg_gen_exit_tb(0);
|
tcg_gen_exit_tb(0);
|
||||||
|
@ -3433,25 +3433,25 @@ static void disas_sparc_insn(DisasContext * dc)
|
||||||
{
|
{
|
||||||
int cc = GET_FIELD_SP(insn, 11, 12);
|
int cc = GET_FIELD_SP(insn, 11, 12);
|
||||||
int cond = GET_FIELD_SP(insn, 14, 17);
|
int cond = GET_FIELD_SP(insn, 14, 17);
|
||||||
TCGv r_zero;
|
TCGv r_cond;
|
||||||
int l1;
|
int l1;
|
||||||
|
|
||||||
flush_T2(dc);
|
r_cond = tcg_temp_new(TCG_TYPE_TL);
|
||||||
if (insn & (1 << 18)) {
|
if (insn & (1 << 18)) {
|
||||||
if (cc == 0)
|
if (cc == 0)
|
||||||
gen_cond(cpu_T[2], 0, cond);
|
gen_cond(r_cond, 0, cond);
|
||||||
else if (cc == 2)
|
else if (cc == 2)
|
||||||
gen_cond(cpu_T[2], 1, cond);
|
gen_cond(r_cond, 1, cond);
|
||||||
else
|
else
|
||||||
goto illegal_insn;
|
goto illegal_insn;
|
||||||
} else {
|
} else {
|
||||||
gen_fcond(cpu_T[2], cc, cond);
|
gen_fcond(r_cond, cc, cond);
|
||||||
}
|
}
|
||||||
|
|
||||||
l1 = gen_new_label();
|
l1 = gen_new_label();
|
||||||
|
|
||||||
r_zero = tcg_const_tl(0);
|
tcg_gen_brcond_tl(TCG_COND_EQ, r_cond,
|
||||||
tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[2], r_zero, l1);
|
tcg_const_tl(0), l1);
|
||||||
if (IS_IMM) { /* immediate */
|
if (IS_IMM) { /* immediate */
|
||||||
rs2 = GET_FIELD_SPs(insn, 0, 10);
|
rs2 = GET_FIELD_SPs(insn, 0, 10);
|
||||||
gen_movl_simm_T1(rs2);
|
gen_movl_simm_T1(rs2);
|
||||||
|
|
Loading…
Reference in New Issue