mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06: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
|
@ -148,6 +148,7 @@ static void openrisc_cpu_class_init(ObjectClass *oc, void *data)
|
|||
cc->reset = openrisc_cpu_reset;
|
||||
|
||||
cc->class_by_name = openrisc_cpu_class_by_name;
|
||||
cc->do_interrupt = openrisc_cpu_do_interrupt;
|
||||
}
|
||||
|
||||
static void cpu_register(const OpenRISCCPUInfo *info)
|
||||
|
|
|
@ -346,7 +346,7 @@ OpenRISCCPU *cpu_openrisc_init(const char *cpu_model);
|
|||
|
||||
void cpu_openrisc_list(FILE *f, fprintf_function cpu_fprintf);
|
||||
int cpu_openrisc_exec(CPUOpenRISCState *s);
|
||||
void do_interrupt(CPUOpenRISCState *env);
|
||||
void openrisc_cpu_do_interrupt(CPUState *cpu);
|
||||
void openrisc_translate_init(void);
|
||||
int cpu_openrisc_handle_mmu_fault(CPUOpenRISCState *env,
|
||||
target_ulong address,
|
||||
|
|
|
@ -25,8 +25,10 @@
|
|||
#include "hw/loader.h"
|
||||
#endif
|
||||
|
||||
void do_interrupt(CPUOpenRISCState *env)
|
||||
void openrisc_cpu_do_interrupt(CPUState *cs)
|
||||
{
|
||||
OpenRISCCPU *cpu = OPENRISC_CPU(cs);
|
||||
CPUOpenRISCState *env = &cpu->env;
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
if (env->flags & D_FLAG) { /* Delay Slot insn */
|
||||
env->flags &= ~D_FLAG;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue