aboutsummaryrefslogtreecommitdiff
path: root/target-ppc/helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'target-ppc/helper.c')
-rw-r--r--target-ppc/helper.c5
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