Revision e6bf7d70 target-sparc/helper.c

b/target-sparc/helper.c
742 742
        return;
743 743
    }
744 744
#endif
745
    if (env->tl < MAXTL - 1) {
746
        env->tl++;
747
    } else {
748
        env->pstate |= PS_RED;
749
        if (env->tl != MAXTL)
750
            env->tl++;
751
    }
752
    env->tsptr = &env->ts[env->tl];
745 753
    env->tsptr->tstate = ((uint64_t)GET_CCR(env) << 32) |
746 754
        ((env->asi & 0xff) << 24) | ((env->pstate & 0xf3f) << 8) |
747 755
        GET_CWP64(env);
......
758 766
        cpu_set_cwp(env, cpu_cwp_inc(env, env->cwp + 1));
759 767
    env->tbr &= ~0x7fffULL;
760 768
    env->tbr |= ((env->tl > 1) ? 1 << 14 : 0) | (intno << 5);
761
    if (env->tl < MAXTL - 1) {
762
        env->tl++;
763
    } else {
764
        env->pstate |= PS_RED;
765
        if (env->tl != MAXTL)
766
            env->tl++;
767
    }
768
    env->tsptr = &env->ts[env->tl];
769 769
    env->pc = env->tbr;
770 770
    env->npc = env->pc + 4;
771 771
    env->exception_index = 0;

Also available in: Unified diff