Use tcg_const_tl for zero constant

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4054 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
blueswir1 2008-03-13 20:47:53 +00:00
parent a98824ac42
commit 1ec6d2ea99
1 changed files with 19 additions and 42 deletions

View File

@ -389,8 +389,7 @@ static inline void gen_cc_NZ(TCGv dst)
l1 = gen_new_label();
l2 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_brcond_i32(TCG_COND_NE, dst, r_zero, l1);
tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_ZERO);
gen_set_label(l1);
@ -451,8 +450,7 @@ static inline void gen_cc_V_add(TCGv dst, TCGv src1, TCGv src2)
r_temp = tcg_temp_new(TCG_TYPE_TL);
r_temp2 = tcg_temp_new(TCG_TYPE_TL);
r_temp3 = tcg_temp_new(TCG_TYPE_TL);
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_xor_tl(r_temp, src1, src2);
tcg_gen_xori_tl(r_temp, r_temp, -1);
tcg_gen_xor_tl(r_temp2, src1, dst);
@ -466,7 +464,6 @@ static inline void gen_cc_V_add(TCGv dst, TCGv src1, TCGv src2)
int l2;
l2 = gen_new_label();
tcg_gen_movi_tl(r_zero, 0);
tcg_gen_xor_tl(r_temp, src1, src2);
tcg_gen_xori_tl(r_temp, r_temp, -1);
tcg_gen_xor_tl(r_temp2, src1, dst);
@ -489,8 +486,7 @@ static inline void gen_add_tv(TCGv dst, TCGv src1, TCGv src2)
r_temp = tcg_temp_new(TCG_TYPE_TL);
r_temp2 = tcg_temp_new(TCG_TYPE_TL);
r_temp3 = tcg_temp_new(TCG_TYPE_TL);
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_xor_tl(r_temp, src1, src2);
tcg_gen_xori_tl(r_temp, r_temp, -1);
tcg_gen_xor_tl(r_temp2, src1, dst);
@ -504,7 +500,6 @@ static inline void gen_add_tv(TCGv dst, TCGv src1, TCGv src2)
int l2;
l2 = gen_new_label();
tcg_gen_movi_tl(r_zero, 0);
tcg_gen_xor_tl(r_temp, src1, src2);
tcg_gen_xori_tl(r_temp, r_temp, -1);
tcg_gen_xor_tl(r_temp2, src1, dst);
@ -523,9 +518,8 @@ static inline void gen_cc_V_tag(TCGv src1, TCGv src2)
TCGv r_zero, r_temp;
l1 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
r_zero = tcg_const_tl(0);
r_temp = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
tcg_gen_or_tl(r_temp, src1, src2);
tcg_gen_andi_tl(r_temp, r_temp, 0x3);
tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, r_zero, l1);
@ -539,9 +533,8 @@ static inline void gen_tag_tv(TCGv src1, TCGv src2)
TCGv r_zero, r_temp;
l1 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
r_zero = tcg_const_tl(0);
r_temp = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
tcg_gen_or_tl(r_temp, src1, src2);
tcg_gen_andi_tl(r_temp, r_temp, 0x3);
tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, r_zero, l1);
@ -632,8 +625,7 @@ static inline void gen_cc_V_sub(TCGv dst, TCGv src1, TCGv src2)
r_temp = tcg_temp_new(TCG_TYPE_TL);
r_temp2 = tcg_temp_new(TCG_TYPE_TL);
r_temp3 = tcg_temp_new(TCG_TYPE_TL);
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_xor_tl(r_temp, src1, src2);
tcg_gen_xor_tl(r_temp2, src1, dst);
tcg_gen_and_tl(r_temp, r_temp, r_temp2);
@ -646,7 +638,6 @@ static inline void gen_cc_V_sub(TCGv dst, TCGv src1, TCGv src2)
int l2;
l2 = gen_new_label();
tcg_gen_movi_tl(r_zero, 0);
tcg_gen_xor_tl(r_temp, src1, src2);
tcg_gen_xor_tl(r_temp2, src1, dst);
tcg_gen_and_tl(r_temp, r_temp, r_temp2);
@ -668,8 +659,7 @@ static inline void gen_sub_tv(TCGv dst, TCGv src1, TCGv src2)
r_temp = tcg_temp_new(TCG_TYPE_TL);
r_temp2 = tcg_temp_new(TCG_TYPE_TL);
r_temp3 = tcg_temp_new(TCG_TYPE_TL);
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_xor_tl(r_temp, src1, src2);
tcg_gen_xor_tl(r_temp2, src1, dst);
tcg_gen_and_tl(r_temp, r_temp, r_temp2);
@ -682,7 +672,6 @@ static inline void gen_sub_tv(TCGv dst, TCGv src1, TCGv src2)
int l2;
l2 = gen_new_label();
tcg_gen_movi_tl(r_zero, 0);
tcg_gen_xor_tl(r_temp, src1, src2);
tcg_gen_xor_tl(r_temp2, src1, dst);
tcg_gen_and_tl(r_temp, r_temp, r_temp2);
@ -747,8 +736,7 @@ static inline void gen_op_div_cc(void)
gen_cc_clear();
gen_cc_NZ(cpu_T[0]);
l1 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_brcond_i32(TCG_COND_EQ, cpu_T[1], r_zero, l1);
tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_OVF);
gen_set_label(l1);
@ -1084,8 +1072,7 @@ static inline void gen_branch2(DisasContext *dc, target_ulong pc1,
int l1;
l1 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_brcond_tl(TCG_COND_EQ, r_cond, r_zero, l1);
@ -1102,8 +1089,7 @@ static inline void gen_branch_a(DisasContext *dc, target_ulong pc1,
int l1;
l1 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_brcond_tl(TCG_COND_EQ, r_cond, r_zero, l1);
@ -1127,8 +1113,7 @@ static inline void gen_generic_branch(target_ulong npc1, target_ulong npc2,
l1 = gen_new_label();
l2 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_brcond_tl(TCG_COND_EQ, r_cond, r_zero, l1);
@ -1348,8 +1333,7 @@ static inline void gen_cond_reg(TCGv r_dst, int cond)
int l1;
l1 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_mov_tl(r_dst, r_zero);
tcg_gen_brcond_tl(gen_tcg_cond_reg[cond], cpu_T[0], r_zero, l1);
tcg_gen_movi_tl(r_dst, 1);
@ -2658,11 +2642,10 @@ static void disas_sparc_insn(DisasContext * dc)
int l1;
l1 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
r_zero = tcg_const_tl(0);
cond = GET_FIELD_SP(insn, 14, 17);
rs1 = GET_FIELD(insn, 13, 17);
gen_movl_reg_T0(rs1);
tcg_gen_movi_tl(r_zero, 0);
tcg_gen_brcond_tl(gen_tcg_cond_reg[cond], cpu_T[0], r_zero, l1);
gen_op_load_fpr_FT0(rs2);
gen_op_store_FT0_fpr(rd);
@ -2673,11 +2656,10 @@ static void disas_sparc_insn(DisasContext * dc)
int l1;
l1 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
r_zero = tcg_const_tl(0);
cond = GET_FIELD_SP(insn, 14, 17);
rs1 = GET_FIELD(insn, 13, 17);
gen_movl_reg_T0(rs1);
tcg_gen_movi_tl(r_zero, 0);
tcg_gen_brcond_tl(gen_tcg_cond_reg[cond], cpu_T[0], r_zero, l1);
gen_op_load_fpr_DT0(DFPREG(rs2));
gen_op_store_DT0_fpr(DFPREG(rd));
@ -2689,11 +2671,10 @@ static void disas_sparc_insn(DisasContext * dc)
int l1;
l1 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
r_zero = tcg_const_tl(0);
cond = GET_FIELD_SP(insn, 14, 17);
rs1 = GET_FIELD(insn, 13, 17);
gen_movl_reg_T0(rs1);
tcg_gen_movi_tl(r_zero, 0);
tcg_gen_brcond_tl(gen_tcg_cond_reg[cond], cpu_T[0], r_zero, l1);
gen_op_load_fpr_QT0(QFPREG(rs2));
gen_op_store_QT0_fpr(QFPREG(rd));
@ -2712,9 +2693,8 @@ static void disas_sparc_insn(DisasContext * dc)
int l1; \
\
l1 = gen_new_label(); \
r_zero = tcg_temp_new(TCG_TYPE_TL); \
r_zero = tcg_const_tl(0); \
r_cond = tcg_temp_new(TCG_TYPE_TL); \
tcg_gen_movi_tl(r_zero, 0); \
cond = GET_FIELD_SP(insn, 14, 17); \
gen_fcond(r_cond, fcc, cond); \
tcg_gen_brcond_tl(TCG_COND_EQ, r_cond, r_zero, l1); \
@ -2781,9 +2761,8 @@ static void disas_sparc_insn(DisasContext * dc)
int l1; \
\
l1 = gen_new_label(); \
r_zero = tcg_temp_new(TCG_TYPE_TL); \
r_zero = tcg_const_tl(0); \
r_cond = tcg_temp_new(TCG_TYPE_TL); \
tcg_gen_movi_tl(r_zero, 0); \
cond = GET_FIELD_SP(insn, 14, 17); \
gen_cond(r_cond, icc, cond); \
tcg_gen_brcond_tl(TCG_COND_EQ, r_cond, r_zero, l1); \
@ -3441,8 +3420,7 @@ static void disas_sparc_insn(DisasContext * dc)
l1 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[2], r_zero, l1);
if (IS_IMM) { /* immediate */
rs2 = GET_FIELD_SPs(insn, 0, 10);
@ -3485,8 +3463,7 @@ static void disas_sparc_insn(DisasContext * dc)
l1 = gen_new_label();
r_zero = tcg_temp_new(TCG_TYPE_TL);
tcg_gen_movi_tl(r_zero, 0);
r_zero = tcg_const_tl(0);
tcg_gen_brcond_tl(gen_tcg_cond_reg[cond], cpu_T[0], r_zero, l1);
if (IS_IMM) { /* immediate */
rs2 = GET_FIELD_SPs(insn, 0, 9);