summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target-sparc/translate.c64
1 files changed, 0 insertions, 64 deletions
diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index 7b18c9c198..90d9278152 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -614,7 +614,6 @@ static inline void gen_sub_tv(TCGv dst, TCGv src1, TCGv src2)
tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l1);
tcg_gen_helper_0_1(raise_exception, tcg_const_i32(TT_TOVF));
gen_set_label(l1);
- tcg_gen_discard_tl(r_temp);
}
static inline void gen_op_sub_cc(TCGv dst, TCGv src1, TCGv src2)
@@ -736,7 +735,6 @@ static inline void gen_op_mulscc(TCGv dst, TCGv src1, TCGv src2)
/* do addition and update flags */
tcg_gen_add_tl(dst, cpu_cc_src, cpu_cc_src2);
- tcg_gen_discard_tl(r_temp);
gen_cc_clear_icc();
gen_cc_NZ_icc(dst);
@@ -763,9 +761,6 @@ static inline void gen_op_umul(TCGv dst, TCGv src1, TCGv src2)
#else
tcg_gen_trunc_i64_tl(dst, r_temp2);
#endif
-
- tcg_gen_discard_i64(r_temp);
- tcg_gen_discard_i64(r_temp2);
}
static inline void gen_op_smul(TCGv dst, TCGv src1, TCGv src2)
@@ -787,9 +782,6 @@ static inline void gen_op_smul(TCGv dst, TCGv src1, TCGv src2)
#else
tcg_gen_trunc_i64_tl(dst, r_temp2);
#endif
-
- tcg_gen_discard_i64(r_temp);
- tcg_gen_discard_i64(r_temp2);
}
#ifdef TARGET_SPARC64
@@ -1644,7 +1636,6 @@ static inline void gen_ld_asi(TCGv dst, TCGv addr, int insn, int size, int sign)
r_asi = gen_get_asi(insn, addr);
tcg_gen_helper_1_4(helper_ld_asi, dst, addr, r_asi,
tcg_const_i32(size), tcg_const_i32(sign));
- tcg_gen_discard_i32(r_asi);
}
static inline void gen_st_asi(TCGv src, TCGv addr, int insn, int size)
@@ -1653,7 +1644,6 @@ static inline void gen_st_asi(TCGv src, TCGv addr, int insn, int size)
r_asi = gen_get_asi(insn, addr);
tcg_gen_helper_0_4(helper_st_asi, addr, src, r_asi, tcg_const_i32(size));
- tcg_gen_discard_i32(r_asi);
}
static inline void gen_ldf_asi(TCGv addr, int insn, int size, int rd)
@@ -1663,7 +1653,6 @@ static inline void gen_ldf_asi(TCGv addr, int insn, int size, int rd)
r_asi = gen_get_asi(insn, addr);
tcg_gen_helper_0_4(helper_ldf_asi, addr, r_asi, tcg_const_i32(size),
tcg_const_i32(rd));
- tcg_gen_discard_i32(r_asi);
}
static inline void gen_stf_asi(TCGv addr, int insn, int size, int rd)
@@ -1673,7 +1662,6 @@ static inline void gen_stf_asi(TCGv addr, int insn, int size, int rd)
r_asi = gen_get_asi(insn, addr);
tcg_gen_helper_0_4(helper_stf_asi, addr, r_asi, tcg_const_i32(size),
tcg_const_i32(rd));
- tcg_gen_discard_i32(r_asi);
}
static inline void gen_swap_asi(TCGv dst, TCGv addr, int insn)
@@ -1687,8 +1675,6 @@ static inline void gen_swap_asi(TCGv dst, TCGv addr, int insn)
tcg_gen_helper_0_4(helper_st_asi, addr, dst, r_asi,
tcg_const_i32(4));
tcg_gen_extu_i32_tl(dst, r_temp);
- tcg_gen_discard_i32(r_asi);
- tcg_gen_discard_i32(r_temp);
}
static inline void gen_ldda_asi(TCGv lo, TCGv hi, TCGv addr, int insn)
@@ -1701,7 +1687,6 @@ static inline void gen_ldda_asi(TCGv lo, TCGv hi, TCGv addr, int insn)
tcg_gen_andi_i64(lo, cpu_tmp64, 0xffffffffULL);
tcg_gen_shri_i64(cpu_tmp64, cpu_tmp64, 32);
tcg_gen_andi_i64(hi, cpu_tmp64, 0xffffffffULL);
- tcg_gen_discard_i32(r_asi);
}
static inline void gen_stda_asi(TCGv hi, TCGv addr, int insn, int rd)
@@ -1715,8 +1700,6 @@ static inline void gen_stda_asi(TCGv hi, TCGv addr, int insn, int rd)
r_asi = gen_get_asi(insn, addr);
tcg_gen_helper_0_4(helper_st_asi, addr, cpu_tmp64, r_asi,
tcg_const_i32(8));
- tcg_gen_discard_i32(r_asi);
- tcg_gen_discard_i32(r_temp);
}
static inline void gen_cas_asi(TCGv dst, TCGv addr, TCGv val2, int insn, int rd)
@@ -1727,8 +1710,6 @@ static inline void gen_cas_asi(TCGv dst, TCGv addr, TCGv val2, int insn, int rd)
gen_movl_reg_TN(rd, r_val1);
r_asi = gen_get_asi(insn, addr);
tcg_gen_helper_1_4(helper_cas_asi, dst, addr, r_val1, val2, r_asi);
- tcg_gen_discard_i32(r_asi);
- tcg_gen_discard_i32(r_val1);
}
static inline void gen_casx_asi(TCGv dst, TCGv addr, TCGv val2, int insn, int rd)
@@ -1738,7 +1719,6 @@ static inline void gen_casx_asi(TCGv dst, TCGv addr, TCGv val2, int insn, int rd
gen_movl_reg_TN(rd, cpu_tmp64);
r_asi = gen_get_asi(insn, addr);
tcg_gen_helper_1_4(helper_casx_asi, dst, addr, cpu_tmp64, val2, r_asi);
- tcg_gen_discard_i32(r_asi);
}
#elif !defined(CONFIG_USER_ONLY)
@@ -1775,7 +1755,6 @@ static inline void gen_swap_asi(TCGv dst, TCGv addr, int insn)
tcg_gen_helper_0_4(helper_st_asi, addr, dst, tcg_const_i32(asi),
tcg_const_i32(4));
tcg_gen_extu_i32_tl(dst, r_temp);
- tcg_gen_discard_i32(r_temp);
}
static inline void gen_ldda_asi(TCGv lo, TCGv hi, TCGv addr, int insn)
@@ -1941,16 +1920,11 @@ static void disas_sparc_insn(DisasContext * dc)
goto jmp_insn;
}
case 0x4: /* SETHI */
-#define OPTIM
-#if defined(OPTIM)
if (rd) { // nop
-#endif
uint32_t value = GET_FIELD(insn, 10, 31);
tcg_gen_movi_tl(cpu_dst, value << 10);
gen_movl_TN_reg(rd, cpu_dst);
-#if defined(OPTIM)
}
-#endif
break;
case 0x0: /* UNIMPL */
default:
@@ -1981,14 +1955,10 @@ static void disas_sparc_insn(DisasContext * dc)
tcg_gen_addi_tl(cpu_dst, cpu_src1, rs2);
} else {
rs2 = GET_FIELD(insn, 27, 31);
-#if defined(OPTIM)
if (rs2 != 0) {
-#endif
gen_movl_reg_TN(rs2, cpu_src2);
tcg_gen_add_tl(cpu_dst, cpu_src1, cpu_src2);
-#if defined(OPTIM)
}
-#endif
}
cond = GET_FIELD(insn, 3, 6);
if (cond == 0x8) {
@@ -2012,7 +1982,6 @@ static void disas_sparc_insn(DisasContext * dc)
gen_cond(r_cond, 0, cond);
#endif
tcg_gen_helper_0_2(helper_trapcc, cpu_dst, r_cond);
- tcg_gen_discard_tl(r_cond);
}
gen_op_next_insn();
tcg_gen_exit_tb(0);
@@ -2055,7 +2024,6 @@ static void disas_sparc_insn(DisasContext * dc)
tcg_gen_helper_1_1(helper_tick_get_count, cpu_dst,
r_tickptr);
gen_movl_TN_reg(rd, cpu_dst);
- tcg_gen_discard_ptr(r_tickptr);
}
break;
case 0x5: /* V9 rdpc */
@@ -2089,7 +2057,6 @@ static void disas_sparc_insn(DisasContext * dc)
tcg_gen_helper_1_1(helper_tick_get_count, cpu_dst,
r_tickptr);
gen_movl_TN_reg(rd, cpu_dst);
- tcg_gen_discard_ptr(r_tickptr);
}
break;
case 0x19: /* System tick compare */
@@ -2160,7 +2127,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, tsptr));
tcg_gen_ld_tl(cpu_dst, r_tsptr,
offsetof(trap_state, tpc));
- tcg_gen_discard_ptr(r_tsptr);
}
break;
case 1: // tnpc
@@ -2172,7 +2138,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, tsptr));
tcg_gen_ld_tl(cpu_dst, r_tsptr,
offsetof(trap_state, tnpc));
- tcg_gen_discard_ptr(r_tsptr);
}
break;
case 2: // tstate
@@ -2184,7 +2149,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, tsptr));
tcg_gen_ld_tl(cpu_dst, r_tsptr,
offsetof(trap_state, tstate));
- tcg_gen_discard_ptr(r_tsptr);
}
break;
case 3: // tt
@@ -2196,7 +2160,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, tsptr));
tcg_gen_ld_i32(cpu_dst, r_tsptr,
offsetof(trap_state, tt));
- tcg_gen_discard_ptr(r_tsptr);
}
break;
case 4: // tick
@@ -2209,7 +2172,6 @@ static void disas_sparc_insn(DisasContext * dc)
tcg_gen_helper_1_1(helper_tick_get_count, cpu_dst,
r_tickptr);
gen_movl_TN_reg(rd, cpu_dst);
- tcg_gen_discard_ptr(r_tickptr);
}
break;
case 5: // tba
@@ -2725,7 +2687,6 @@ static void disas_sparc_insn(DisasContext * dc)
glue(glue(gen_op_load_fpr_, size_FDQ), T0)(glue(size_FDQ, FPREG(rs2))); \
glue(glue(gen_op_store_, size_FDQ), T0_fpr)(glue(size_FDQ, FPREG(rd))); \
gen_set_label(l1); \
- tcg_gen_discard_tl(r_cond); \
}
case 0x001: /* V9 fmovscc %fcc0 */
FMOVCC(F, 0);
@@ -2794,7 +2755,6 @@ static void disas_sparc_insn(DisasContext * dc)
glue(glue(gen_op_load_fpr_, size_FDQ), T0)(glue(size_FDQ, FPREG(rs2))); \
glue(glue(gen_op_store_, size_FDQ), T0_fpr)(glue(size_FDQ, FPREG(rd))); \
gen_set_label(l1); \
- tcg_gen_discard_tl(r_cond); \
}
case 0x101: /* V9 fmovscc %icc */
@@ -2865,7 +2825,6 @@ static void disas_sparc_insn(DisasContext * dc)
default:
goto illegal_insn;
}
-#if defined(OPTIM)
} else if (xop == 0x2) {
// clr/mov shortcut
@@ -2894,7 +2853,6 @@ static void disas_sparc_insn(DisasContext * dc)
}
}
gen_movl_TN_reg(rd, cpu_dst);
-#endif
#ifdef TARGET_SPARC64
} else if (xop == 0x25) { /* sll, V9 sllx */
cpu_src1 = get_src1(insn, cpu_src1);
@@ -3176,7 +3134,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, tick));
tcg_gen_helper_0_2(helper_tick_set_limit,
r_tickptr, cpu_dst);
- tcg_gen_discard_ptr(r_tickptr);
}
break;
case 0x18: /* System tick */
@@ -3194,7 +3151,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, stick));
tcg_gen_helper_0_2(helper_tick_set_count,
r_tickptr, cpu_dst);
- tcg_gen_discard_ptr(r_tickptr);
}
break;
case 0x19: /* System tick compare */
@@ -3214,7 +3170,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, stick));
tcg_gen_helper_0_2(helper_tick_set_limit,
r_tickptr, cpu_dst);
- tcg_gen_discard_ptr(r_tickptr);
}
break;
@@ -3277,7 +3232,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, tsptr));
tcg_gen_st_tl(cpu_dst, r_tsptr,
offsetof(trap_state, tpc));
- tcg_gen_discard_ptr(r_tsptr);
}
break;
case 1: // tnpc
@@ -3289,7 +3243,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, tsptr));
tcg_gen_st_tl(cpu_dst, r_tsptr,
offsetof(trap_state, tnpc));
- tcg_gen_discard_ptr(r_tsptr);
}
break;
case 2: // tstate
@@ -3301,7 +3254,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, tsptr));
tcg_gen_st_tl(cpu_dst, r_tsptr,
offsetof(trap_state, tstate));
- tcg_gen_discard_ptr(r_tsptr);
}
break;
case 3: // tt
@@ -3313,7 +3265,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, tsptr));
tcg_gen_st_i32(cpu_dst, r_tsptr,
offsetof(trap_state, tt));
- tcg_gen_discard_ptr(r_tsptr);
}
break;
case 4: // tick
@@ -3325,7 +3276,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, tick));
tcg_gen_helper_0_2(helper_tick_set_count,
r_tickptr, cpu_dst);
- tcg_gen_discard_ptr(r_tickptr);
}
break;
case 5: // tba
@@ -3430,7 +3380,6 @@ static void disas_sparc_insn(DisasContext * dc)
offsetof(CPUState, hstick));
tcg_gen_helper_0_2(helper_tick_set_limit,
r_tickptr, cpu_dst);
- tcg_gen_discard_ptr(r_tickptr);
}
break;
case 6: // hver readonly
@@ -3474,7 +3423,6 @@ static void disas_sparc_insn(DisasContext * dc)
}
gen_movl_TN_reg(rd, cpu_dst);
gen_set_label(l1);
- tcg_gen_discard_tl(r_cond);
break;
}
case 0x2d: /* V9 sdivx */
@@ -3934,14 +3882,10 @@ static void disas_sparc_insn(DisasContext * dc)
tcg_gen_addi_tl(cpu_dst, cpu_src1, (int)rs2);
} else { /* register */
rs2 = GET_FIELD(insn, 27, 31);
-#if defined(OPTIM)
if (rs2) {
-#endif
gen_movl_reg_TN(rs2, cpu_src2);
tcg_gen_add_tl(cpu_dst, cpu_src1, cpu_src2);
-#if defined(OPTIM)
}
-#endif
}
tcg_gen_helper_0_0(helper_restore);
gen_mov_pc_npc(dc, cpu_cond);
@@ -3957,14 +3901,10 @@ static void disas_sparc_insn(DisasContext * dc)
tcg_gen_addi_tl(cpu_dst, cpu_src1, (int)rs2);
} else { /* register */
rs2 = GET_FIELD(insn, 27, 31);
-#if defined(OPTIM)
if (rs2) {
-#endif
gen_movl_reg_TN(rs2, cpu_src2);
tcg_gen_add_tl(cpu_dst, cpu_src1, cpu_src2);
-#if defined(OPTIM)
}
-#endif
}
switch (xop) {
case 0x38: /* jmpl */
@@ -4052,14 +3992,10 @@ static void disas_sparc_insn(DisasContext * dc)
tcg_gen_addi_tl(cpu_addr, cpu_src1, (int)rs2);
} else { /* register */
rs2 = GET_FIELD(insn, 27, 31);
-#if defined(OPTIM)
if (rs2 != 0) {
-#endif
gen_movl_reg_TN(rs2, cpu_src2);
tcg_gen_add_tl(cpu_addr, cpu_src1, cpu_src2);
-#if defined(OPTIM)
}
-#endif
}
if (xop < 4 || (xop > 7 && xop < 0x14 && xop != 0x0e) ||
(xop > 0x17 && xop <= 0x1d ) ||