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