mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
target/m68k: add the Interrupt Stack Pointer
Add the third stack pointer, the Interrupt Stack Pointer (ISP) (680x0 only). This stack will be needed in softmmu mode. Update movec to set/get the value of the three stacks. Signed-off-by: Laurent Vivier <laurent@vivier.eu> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20180104012913.30763-17-laurent@vivier.eu>
This commit is contained in:
parent
b5ae1edc29
commit
6e22b28e22
7 changed files with 190 additions and 17 deletions
|
@ -55,17 +55,17 @@ static void m68k_cpu_reset(CPUState *s)
|
|||
mcc->parent_reset(s);
|
||||
|
||||
memset(env, 0, offsetof(CPUM68KState, end_reset_fields));
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
env->sr = 0x2700;
|
||||
#ifdef CONFIG_SOFTMMU
|
||||
cpu_m68k_set_sr(env, SR_S | SR_I);
|
||||
#else
|
||||
cpu_m68k_set_sr(env, 0);
|
||||
#endif
|
||||
m68k_switch_sp(env);
|
||||
for (i = 0; i < 8; i++) {
|
||||
env->fregs[i].d = nan;
|
||||
}
|
||||
cpu_m68k_set_fpcr(env, 0);
|
||||
env->fpsr = 0;
|
||||
|
||||
cpu_m68k_set_ccr(env, 0);
|
||||
/* TODO: We should set PC from the interrupt vector. */
|
||||
env->pc = 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue