mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
sparc64: interrupt trap handling
cpu_check_irqs - handle SOFTINT register TICK and STICK timer bits - only check interrupt levels greater than PIL value - handle preemption by higher level traps cpu_exec - handle CPU_INTERRUPT_HARD only if interrupts are enabled - PIL 15 is not special level on sparcv9 Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
2df6c2d0de
commit
d532b26c9d
3 changed files with 57 additions and 25 deletions
|
@ -577,6 +577,16 @@ static inline int cpu_interrupts_enabled(CPUState *env1)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline int cpu_pil_allowed(CPUState *env1, int pil)
|
||||
{
|
||||
#if !defined(TARGET_SPARC64)
|
||||
/* level 15 is non-maskable on sparc v8 */
|
||||
return pil == 15 || pil > env1->psrpil;
|
||||
#else
|
||||
return pil > env1->psrpil;
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline int cpu_fpu_enabled(CPUState *env1)
|
||||
{
|
||||
#if defined(CONFIG_USER_ONLY)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue