diff options
Diffstat (limited to 'target-ppc/helper.c')
-rw-r--r-- | target-ppc/helper.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/target-ppc/helper.c b/target-ppc/helper.c index 4daef379f7..b86f8234e6 100644 --- a/target-ppc/helper.c +++ b/target-ppc/helper.c @@ -1203,9 +1203,10 @@ void do_store_msr (CPUPPCState *env, target_ulong value) } #if defined(TARGET_PPC64) -void ppc_store_msr_32 (CPUPPCState *env, target_ulong value) +void ppc_store_msr_32 (CPUPPCState *env, uint32_t value) { - do_store_msr(env, (uint32_t)value); + do_store_msr(env, + (do_load_msr(env) & ~0xFFFFFFFFULL) | (value & 0xFFFFFFFF)); } #endif |