Revision 39d51eb8 target-mips/op.c

b/target-mips/op.c
1397 1397

  
1398 1398
void op_mtc0_cause (void)
1399 1399
{
1400
    env->CP0_Cause = (env->CP0_Cause & 0xB000F87C) | (T0 & 0x00C00300);
1400
    uint32_t mask = 0x00C00300;
1401

  
1402
    if ((env->CP0_Config0 & (0x7 << CP0C0_AR)) == (1 << CP0C0_AR))
1403
        mask |= 1 << CP0Ca_DC;
1404

  
1405
    env->CP0_Cause = (env->CP0_Cause & 0xFCC0FF7C) | (T0 & mask);
1401 1406

  
1402 1407
    /* Handle the software interrupt as an hardware one, as they
1403 1408
       are very similar */

Also available in: Unified diff