Revision 29929e34 target-mips/translate.c

b/target-mips/translate.c
4164 4164
}
4165 4165
#endif /* TARGET_MIPS64 */
4166 4166

  
4167
static void gen_cp0 (DisasContext *ctx, uint32_t opc, int rt, int rd)
4167
static void gen_cp0 (CPUState *env, DisasContext *ctx, uint32_t opc, int rt, int rd)
4168 4168
{
4169 4169
    const char *opn = "ldst";
4170 4170

  
......
4199 4199
        opn = "dmtc0";
4200 4200
        break;
4201 4201
#endif
4202
#if defined(MIPS_USES_R4K_TLB)
4203 4202
    case OPC_TLBWI:
4204
        gen_op_tlbwi();
4205 4203
        opn = "tlbwi";
4204
        if (!env->do_tlbwi)
4205
            goto die;
4206
        gen_op_tlbwi();
4206 4207
        break;
4207 4208
    case OPC_TLBWR:
4208
        gen_op_tlbwr();
4209 4209
        opn = "tlbwr";
4210
        if (!env->do_tlbwr)
4211
            goto die;
4212
        gen_op_tlbwr();
4210 4213
        break;
4211 4214
    case OPC_TLBP:
4212
        gen_op_tlbp();
4213 4215
        opn = "tlbp";
4216
        if (!env->do_tlbp)
4217
            goto die;
4218
        gen_op_tlbp();
4214 4219
        break;
4215 4220
    case OPC_TLBR:
4216
        gen_op_tlbr();
4217 4221
        opn = "tlbr";
4222
        if (!env->do_tlbr)
4223
            goto die;
4224
        gen_op_tlbr();
4218 4225
        break;
4219
#endif
4220 4226
    case OPC_ERET:
4221 4227
        opn = "eret";
4222 4228
        save_cpu_state(ctx, 0);
......
4244 4250
        ctx->bstate = BS_EXCP;
4245 4251
        break;
4246 4252
    default:
4253
 die:
4247 4254
        MIPS_INVAL(opn);
4248 4255
        generate_exception(ctx, EXCP_RI);
4249 4256
        return;
......
5576 5583
        case OPC_DMFC0:
5577 5584
        case OPC_DMTC0:
5578 5585
#endif
5579
            gen_cp0(ctx, op1, rt, rd);
5586
            gen_cp0(env, ctx, op1, rt, rd);
5580 5587
            break;
5581 5588
        case OPC_C0_FIRST ... OPC_C0_LAST:
5582
            gen_cp0(ctx, MASK_C0(ctx->opcode), rt, rd);
5589
            gen_cp0(env, ctx, MASK_C0(ctx->opcode), rt, rd);
5583 5590
            break;
5584 5591
        case OPC_MFMC0:
5585 5592
            op2 = MASK_MFMC0(ctx->opcode);

Also available in: Unified diff