Revision 6ce0ca12 target-ppc/helper.c
b/target-ppc/helper.c | ||
---|---|---|
2612 | 2612 |
new_msr |= (target_ulong)1 << MSR_CM; |
2613 | 2613 |
} |
2614 | 2614 |
} else { |
2615 |
if (!msr_isf) { |
|
2615 |
if (!msr_isf && !(env->mmu_model & POWERPC_MMU_64)) {
|
|
2616 | 2616 |
new_msr &= ~((target_ulong)1 << MSR_SF); |
2617 | 2617 |
vector = (uint32_t)vector; |
2618 | 2618 |
} else { |
... | ... | |
2793 | 2793 |
ppc_tlb_invalidate_all(env); |
2794 | 2794 |
#endif |
2795 | 2795 |
env->msr = msr & env->msr_mask; |
2796 |
#if defined(TARGET_PPC64) |
|
2797 |
if (env->mmu_model & POWERPC_MMU_64) |
|
2798 |
env->msr |= (1ULL << MSR_SF); |
|
2799 |
#endif |
|
2796 | 2800 |
hreg_compute_hflags(env); |
2797 | 2801 |
env->reserve = (target_ulong)-1ULL; |
2798 | 2802 |
/* Be sure no exception or interrupt is pending */ |
Also available in: Unified diff