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 */ |