mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
target-ppc: convert return from interrupt instructions to TCG
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5832 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
fa407c030c
commit
d72a19f7bd
5 changed files with 47 additions and 101 deletions
|
@ -1618,7 +1618,7 @@ void do_store_msr (void)
|
|||
}
|
||||
}
|
||||
|
||||
static always_inline void __do_rfi (target_ulong nip, target_ulong msr,
|
||||
static always_inline void do_rfi (target_ulong nip, target_ulong msr,
|
||||
target_ulong msrm, int keep_msrh)
|
||||
{
|
||||
#if defined(TARGET_PPC64)
|
||||
|
@ -1647,23 +1647,23 @@ static always_inline void __do_rfi (target_ulong nip, target_ulong msr,
|
|||
env->interrupt_request |= CPU_INTERRUPT_EXITTB;
|
||||
}
|
||||
|
||||
void do_rfi (void)
|
||||
void helper_rfi (void)
|
||||
{
|
||||
__do_rfi(env->spr[SPR_SRR0], env->spr[SPR_SRR1],
|
||||
~((target_ulong)0xFFFF0000), 1);
|
||||
do_rfi(env->spr[SPR_SRR0], env->spr[SPR_SRR1],
|
||||
~((target_ulong)0xFFFF0000), 1);
|
||||
}
|
||||
|
||||
#if defined(TARGET_PPC64)
|
||||
void do_rfid (void)
|
||||
void helper_rfid (void)
|
||||
{
|
||||
__do_rfi(env->spr[SPR_SRR0], env->spr[SPR_SRR1],
|
||||
~((target_ulong)0xFFFF0000), 0);
|
||||
do_rfi(env->spr[SPR_SRR0], env->spr[SPR_SRR1],
|
||||
~((target_ulong)0xFFFF0000), 0);
|
||||
}
|
||||
|
||||
void do_hrfid (void)
|
||||
void helper_hrfid (void)
|
||||
{
|
||||
__do_rfi(env->spr[SPR_HSRR0], env->spr[SPR_HSRR1],
|
||||
~((target_ulong)0xFFFF0000), 0);
|
||||
do_rfi(env->spr[SPR_HSRR0], env->spr[SPR_HSRR1],
|
||||
~((target_ulong)0xFFFF0000), 0);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1859,9 +1859,9 @@ void do_POWER_rac (void)
|
|||
env->nb_BATs = nb_BATs;
|
||||
}
|
||||
|
||||
void do_POWER_rfsvc (void)
|
||||
void helper_rfsvc (void)
|
||||
{
|
||||
__do_rfi(env->lr, env->ctr, 0x0000FFFF, 0);
|
||||
do_rfi(env->lr, env->ctr, 0x0000FFFF, 0);
|
||||
}
|
||||
|
||||
void do_store_hid0_601 (void)
|
||||
|
@ -1959,28 +1959,28 @@ void do_store_dcr (void)
|
|||
}
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
void do_40x_rfci (void)
|
||||
void helper_40x_rfci (void)
|
||||
{
|
||||
__do_rfi(env->spr[SPR_40x_SRR2], env->spr[SPR_40x_SRR3],
|
||||
~((target_ulong)0xFFFF0000), 0);
|
||||
do_rfi(env->spr[SPR_40x_SRR2], env->spr[SPR_40x_SRR3],
|
||||
~((target_ulong)0xFFFF0000), 0);
|
||||
}
|
||||
|
||||
void do_rfci (void)
|
||||
void helper_rfci (void)
|
||||
{
|
||||
__do_rfi(env->spr[SPR_BOOKE_CSRR0], SPR_BOOKE_CSRR1,
|
||||
~((target_ulong)0x3FFF0000), 0);
|
||||
do_rfi(env->spr[SPR_BOOKE_CSRR0], SPR_BOOKE_CSRR1,
|
||||
~((target_ulong)0x3FFF0000), 0);
|
||||
}
|
||||
|
||||
void do_rfdi (void)
|
||||
void helper_rfdi (void)
|
||||
{
|
||||
__do_rfi(env->spr[SPR_BOOKE_DSRR0], SPR_BOOKE_DSRR1,
|
||||
~((target_ulong)0x3FFF0000), 0);
|
||||
do_rfi(env->spr[SPR_BOOKE_DSRR0], SPR_BOOKE_DSRR1,
|
||||
~((target_ulong)0x3FFF0000), 0);
|
||||
}
|
||||
|
||||
void do_rfmci (void)
|
||||
void helper_rfmci (void)
|
||||
{
|
||||
__do_rfi(env->spr[SPR_BOOKE_MCSRR0], SPR_BOOKE_MCSRR1,
|
||||
~((target_ulong)0x3FFF0000), 0);
|
||||
do_rfi(env->spr[SPR_BOOKE_MCSRR0], SPR_BOOKE_MCSRR1,
|
||||
~((target_ulong)0x3FFF0000), 0);
|
||||
}
|
||||
|
||||
void do_load_403_pb (int num)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue