| 806 |
} |
} |
| 807 |
|
|
| 808 |
void do_store_msr (CPUPPCState *env, target_ulong value) |
void do_store_msr (CPUPPCState *env, target_ulong value) |
| 809 |
{ |
{ |
| 810 |
value &= env->msr_mask; |
value &= env->msr_mask; |
| 811 |
if (((value >> MSR_IR) & 1) != msr_ir || |
if (((value >> MSR_IR) & 1) != msr_ir || |
| 812 |
((value >> MSR_DR) & 1) != msr_dr) { |
((value >> MSR_DR) & 1) != msr_dr) { |
| 1436 |
/* Jump to handler */ |
/* Jump to handler */ |
| 1437 |
env->nip = excp; |
env->nip = excp; |
| 1438 |
env->exception_index = EXCP_NONE; |
env->exception_index = EXCP_NONE; |
|
#if 0 |
|
|
/* ensure that no TB jump will be modified as |
|
|
the program flow was changed */ |
|
|
#ifdef __sparc__ |
|
|
tmp_T0 = 0; |
|
|
#else |
|
|
T0 = 0; |
|
|
#endif |
|
|
#endif |
|
|
env->interrupt_request |= CPU_INTERRUPT_EXITTB; |
|
| 1439 |
} |
} |
| 1440 |
#endif /* !CONFIG_USER_ONLY */ |
#endif /* !CONFIG_USER_ONLY */ |