Revision 20e1fb52 target-mips/translate.c

b/target-mips/translate.c
2128 2128
                    int rd, int rs)
2129 2129
{
2130 2130
    const char *opn = "CLx";
2131
    TCGv t0 = tcg_temp_local_new();
2131
    TCGv t0;
2132 2132

  
2133 2133
    if (rd == 0) {
2134 2134
        /* Treat as NOP. */
2135 2135
        MIPS_DEBUG("NOP");
2136
        goto out;
2136
        return;
2137 2137
    }
2138
    t0 = tcg_temp_new();
2138 2139
    gen_load_gpr(t0, rs);
2139 2140
    switch (opc) {
2140 2141
    case OPC_CLO:
2141
        gen_helper_clo(t0, t0);
2142
        gen_helper_clo(cpu_gpr[rd], t0);
2142 2143
        opn = "clo";
2143 2144
        break;
2144 2145
    case OPC_CLZ:
2145
        gen_helper_clz(t0, t0);
2146
        gen_helper_clz(cpu_gpr[rd], t0);
2146 2147
        opn = "clz";
2147 2148
        break;
2148 2149
#if defined(TARGET_MIPS64)
2149 2150
    case OPC_DCLO:
2150
        gen_helper_dclo(t0, t0);
2151
        gen_helper_dclo(cpu_gpr[rd], t0);
2151 2152
        opn = "dclo";
2152 2153
        break;
2153 2154
    case OPC_DCLZ:
2154
        gen_helper_dclz(t0, t0);
2155
        gen_helper_dclz(cpu_gpr[rd], t0);
2155 2156
        opn = "dclz";
2156 2157
        break;
2157 2158
#endif
2158
    default:
2159
        MIPS_INVAL(opn);
2160
        generate_exception(ctx, EXCP_RI);
2161
        goto out;
2162 2159
    }
2163
    gen_store_gpr(t0, rd);
2164 2160
    MIPS_DEBUG("%s %s, %s", opn, regnames[rd], regnames[rs]);
2165

  
2166
 out:
2167 2161
    tcg_temp_free(t0);
2168 2162
}
2169 2163

  
......
7711 7705
        case OPC_MUL:
7712 7706
            gen_arith(env, ctx, op1, rd, rs, rt);
7713 7707
            break;
7714
        case OPC_CLZ ... OPC_CLO:
7708
        case OPC_CLO:
7709
        case OPC_CLZ:
7715 7710
            check_insn(env, ctx, ISA_MIPS32);
7716 7711
            gen_cl(ctx, op1, rd, rs);
7717 7712
            break;
......
7728 7723
            /* Treat as NOP. */
7729 7724
            break;
7730 7725
#if defined(TARGET_MIPS64)
7731
        case OPC_DCLZ ... OPC_DCLO:
7726
        case OPC_DCLO:
7727
        case OPC_DCLZ:
7732 7728
            check_insn(env, ctx, ISA_MIPS64);
7733 7729
            check_mips_64(ctx);
7734 7730
            gen_cl(ctx, op1, rd, rs);

Also available in: Unified diff