Commit 2ada0ed785a923e35175c084f09a656b10d1a4fa
1 parent
4911012d
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
Showing
1 changed file
with
3 additions
and
3 deletions
target-ppc/op_helper.c
... | ... | @@ -1671,20 +1671,20 @@ static always_inline void do_rfi (target_ulong nip, target_ulong msr, |
1671 | 1671 | void helper_rfi (void) |
1672 | 1672 | { |
1673 | 1673 | do_rfi(env->spr[SPR_SRR0], env->spr[SPR_SRR1], |
1674 | - ~((target_ulong)0xFFFF0000), 1); | |
1674 | + ~((target_ulong)0x0), 1); | |
1675 | 1675 | } |
1676 | 1676 | |
1677 | 1677 | #if defined(TARGET_PPC64) |
1678 | 1678 | void helper_rfid (void) |
1679 | 1679 | { |
1680 | 1680 | do_rfi(env->spr[SPR_SRR0], env->spr[SPR_SRR1], |
1681 | - ~((target_ulong)0xFFFF0000), 0); | |
1681 | + ~((target_ulong)0x0), 0); | |
1682 | 1682 | } |
1683 | 1683 | |
1684 | 1684 | void helper_hrfid (void) |
1685 | 1685 | { |
1686 | 1686 | do_rfi(env->spr[SPR_HSRR0], env->spr[SPR_HSRR1], |
1687 | - ~((target_ulong)0xFFFF0000), 0); | |
1687 | + ~((target_ulong)0x0), 0); | |
1688 | 1688 | } |
1689 | 1689 | #endif |
1690 | 1690 | #endif | ... | ... |