Revision 20c4c97c

b/target-mips/op.c
510 510
#endif
511 511

  
512 512
/* Conditional moves */
513
void op_movn (void)
514
{
515
    if (T1 != 0)
516
        env->gpr[env->current_tc][PARAM1] = T0;
517
    FORCE_RET();
518
}
519

  
520
void op_movz (void)
521
{
522
    if (T1 == 0)
523
        env->gpr[env->current_tc][PARAM1] = T0;
524
    FORCE_RET();
525
}
526

  
527 513
void op_movf (void)
528 514
{
529 515
    if (!(env->fpu->fcr31 & PARAM1))
b/target-mips/translate.c
1707 1707
        opn = "mul";
1708 1708
        break;
1709 1709
    case OPC_MOVN:
1710
        gen_op_movn(rd);
1710
        {
1711
            int l1 = gen_new_label();
1712

  
1713
            tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[1], tcg_const_tl(0), l1);
1714
            gen_op_store_gpr_T0(rd);
1715
            gen_set_label(l1);
1716
        }
1711 1717
        opn = "movn";
1712 1718
        goto print;
1713 1719
    case OPC_MOVZ:
1714
        gen_op_movz(rd);
1720
        {
1721
            int l1 = gen_new_label();
1722

  
1723
            tcg_gen_brcond_tl(TCG_COND_NE, cpu_T[1], tcg_const_tl(0), l1);
1724
            gen_op_store_gpr_T0(rd);
1725
            gen_set_label(l1);
1726
        }
1715 1727
        opn = "movz";
1716 1728
        goto print;
1717 1729
    case OPC_SLLV:

Also available in: Unified diff