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
This commit is contained in:
parent
4911012d26
commit
2ada0ed785
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue