summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2009-03-07 20:56:21 +0000
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2009-03-07 20:56:21 +0000
commit2ada0ed785a923e35175c084f09a656b10d1a4fa (patch)
treea912c6a70731de486696431137686cdd54438b3d
parent4911012d267519d104a3123783c9b86bddc59f39 (diff)
downloadfocaccia-qemu-2ada0ed785a923e35175c084f09a656b10d1a4fa.tar.gz
focaccia-qemu-2ada0ed785a923e35175c084f09a656b10d1a4fa.zip
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 <alex@csgraf.de>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6754 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--target-ppc/op_helper.c6
1 files 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