Revision d4218d99 target-sparc/op_helper.c

b/target-sparc/op_helper.c
615 615
{
616 616
    unsigned int cwp;
617 617

  
618
    if (env->psret == 1)
619
        raise_exception(TT_ILL_INSN);
620

  
618 621
    env->psret = 1;
619 622
    cwp = (env->cwp + 1) & (NWINDOWS - 1); 
620 623
    if (env->wim & (1 << cwp)) {
......
655 658
#ifndef TARGET_SPARC64
656 659
void do_wrpsr()
657 660
{
658
    PUT_PSR(env, T0);
661
    if ((T0 & PSR_CWP) >= NWINDOWS)
662
        raise_exception(TT_ILL_INSN);
663
    else
664
        PUT_PSR(env, T0);
659 665
}
660 666

  
661 667
void do_rdpsr()

Also available in: Unified diff