mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
cpu: Replace do_interrupt() by CPUClass::do_interrupt method
This removes a global per-target function and thus takes us one step closer to compiling multiple targets into one executable. It will also allow to override the interrupt handling for certain CPU families. Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
parent
c3affe5670
commit
97a8ea5a3a
63 changed files with 159 additions and 67 deletions
|
|
@ -1567,8 +1567,11 @@ uint32_t HELPER(rbit)(uint32_t x)
|
|||
|
||||
#if defined(CONFIG_USER_ONLY)
|
||||
|
||||
void do_interrupt (CPUARMState *env)
|
||||
void arm_cpu_do_interrupt(CPUState *cs)
|
||||
{
|
||||
ARMCPU *cpu = ARM_CPU(cs);
|
||||
CPUARMState *env = &cpu->env;
|
||||
|
||||
env->exception_index = -1;
|
||||
}
|
||||
|
||||
|
|
@ -1799,9 +1802,10 @@ static void do_interrupt_v7m(CPUARMState *env)
|
|||
}
|
||||
|
||||
/* Handle a CPU exception. */
|
||||
void do_interrupt(CPUARMState *env)
|
||||
void arm_cpu_do_interrupt(CPUState *cs)
|
||||
{
|
||||
CPUState *cs;
|
||||
ARMCPU *cpu = ARM_CPU(cs);
|
||||
CPUARMState *env = &cpu->env;
|
||||
uint32_t addr;
|
||||
uint32_t mask;
|
||||
int new_mode;
|
||||
|
|
@ -1908,7 +1912,6 @@ void do_interrupt(CPUARMState *env)
|
|||
}
|
||||
env->regs[14] = env->regs[15] + offset;
|
||||
env->regs[15] = addr;
|
||||
cs = CPU(arm_env_get_cpu(env));
|
||||
cs->interrupt_request |= CPU_INTERRUPT_EXITTB;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue