Revision 3fc00a7b target-mips/helper.c

b/target-mips/helper.c
491 491
            int SX = (env->CP0_Status & (1 << CP0St_SX)) != 0;
492 492
            int KX = (env->CP0_Status & (1 << CP0St_KX)) != 0;
493 493

  
494
            if ((R == 0 && UX) || (R == 1 && SX) || (R == 3 && KX))
494
            if (((R == 0 && UX) || (R == 1 && SX) || (R == 3 && KX)) &&
495
                (!(env->insn_flags & (INSN_LOONGSON2E | INSN_LOONGSON2F))))
495 496
                offset = 0x080;
496 497
            else
497 498
#endif
......
507 508
            int SX = (env->CP0_Status & (1 << CP0St_SX)) != 0;
508 509
            int KX = (env->CP0_Status & (1 << CP0St_KX)) != 0;
509 510

  
510
            if ((R == 0 && UX) || (R == 1 && SX) || (R == 3 && KX))
511
            if (((R == 0 && UX) || (R == 1 && SX) || (R == 3 && KX)) &&
512
                (!(env->insn_flags & (INSN_LOONGSON2E | INSN_LOONGSON2F))))
511 513
                offset = 0x080;
512 514
            else
513 515
#endif

Also available in: Unified diff