From 2ada0ed785a923e35175c084f09a656b10d1a4fa Mon Sep 17 00:00:00 2001 From: blueswir1 Date: Sat, 7 Mar 2009 20:56:21 +0000 Subject: [PATCH] Fix RFI(d) The current implementation masks some MSR bits from SRR1 as it is given on rfi(d). This looks pretty wrong and breaks Altivec. Signed-off-by: Alexander Graf git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6754 c046a42c-6fe2-441c-8c8c-71466251a162 --- target-ppc/op_helper.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c index 76fe8f6f8c..f21f695db6 100644 --- a/target-ppc/op_helper.c +++ b/target-ppc/op_helper.c @@ -1671,20 +1671,20 @@ static always_inline void do_rfi (target_ulong nip, target_ulong msr, void helper_rfi (void) { do_rfi(env->spr[SPR_SRR0], env->spr[SPR_SRR1], - ~((target_ulong)0xFFFF0000), 1); + ~((target_ulong)0x0), 1); } #if defined(TARGET_PPC64) void helper_rfid (void) { do_rfi(env->spr[SPR_SRR0], env->spr[SPR_SRR1], - ~((target_ulong)0xFFFF0000), 0); + ~((target_ulong)0x0), 0); } void helper_hrfid (void) { do_rfi(env->spr[SPR_HSRR0], env->spr[SPR_HSRR1], - ~((target_ulong)0xFFFF0000), 0); + ~((target_ulong)0x0), 0); } #endif #endif