Switch MIPS movn/movz to TCG.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4506 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
a4e7dd5267
commit
20c4c97c9b
|
@ -510,20 +510,6 @@ void op_dmultu (void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Conditional moves */
|
/* Conditional moves */
|
||||||
void op_movn (void)
|
|
||||||
{
|
|
||||||
if (T1 != 0)
|
|
||||||
env->gpr[env->current_tc][PARAM1] = T0;
|
|
||||||
FORCE_RET();
|
|
||||||
}
|
|
||||||
|
|
||||||
void op_movz (void)
|
|
||||||
{
|
|
||||||
if (T1 == 0)
|
|
||||||
env->gpr[env->current_tc][PARAM1] = T0;
|
|
||||||
FORCE_RET();
|
|
||||||
}
|
|
||||||
|
|
||||||
void op_movf (void)
|
void op_movf (void)
|
||||||
{
|
{
|
||||||
if (!(env->fpu->fcr31 & PARAM1))
|
if (!(env->fpu->fcr31 & PARAM1))
|
||||||
|
|
|
@ -1707,11 +1707,23 @@ static void gen_arith (CPUState *env, DisasContext *ctx, uint32_t opc,
|
||||||
opn = "mul";
|
opn = "mul";
|
||||||
break;
|
break;
|
||||||
case OPC_MOVN:
|
case OPC_MOVN:
|
||||||
gen_op_movn(rd);
|
{
|
||||||
|
int l1 = gen_new_label();
|
||||||
|
|
||||||
|
tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[1], tcg_const_tl(0), l1);
|
||||||
|
gen_op_store_gpr_T0(rd);
|
||||||
|
gen_set_label(l1);
|
||||||
|
}
|
||||||
opn = "movn";
|
opn = "movn";
|
||||||
goto print;
|
goto print;
|
||||||
case OPC_MOVZ:
|
case OPC_MOVZ:
|
||||||
gen_op_movz(rd);
|
{
|
||||||
|
int l1 = gen_new_label();
|
||||||
|
|
||||||
|
tcg_gen_brcond_tl(TCG_COND_NE, cpu_T[1], tcg_const_tl(0), l1);
|
||||||
|
gen_op_store_gpr_T0(rd);
|
||||||
|
gen_set_label(l1);
|
||||||
|
}
|
||||||
opn = "movz";
|
opn = "movz";
|
||||||
goto print;
|
goto print;
|
||||||
case OPC_SLLV:
|
case OPC_SLLV:
|
||||||
|
|
Loading…
Reference in New Issue