mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
cpu: Move breakpoints field from CPU_COMMON to CPUState
Most targets were using offsetof(CPUFooState, breakpoints) to determine how much of CPUFooState to clear on reset. Use the next field after CPU_COMMON instead, if any, or sizeof(CPUFooState) otherwise. Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
parent
ff4700b05c
commit
f0c3c505a8
43 changed files with 94 additions and 73 deletions
|
|
@ -41,7 +41,11 @@ static void openrisc_cpu_reset(CPUState *s)
|
|||
|
||||
occ->parent_reset(s);
|
||||
|
||||
memset(&cpu->env, 0, offsetof(CPUOpenRISCState, breakpoints));
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
memset(&cpu->env, 0, offsetof(CPUOpenRISCState, tlb));
|
||||
#else
|
||||
memset(&cpu->env, 0, offsetof(CPUOpenRISCState, irq));
|
||||
#endif
|
||||
|
||||
tlb_flush(&cpu->env, 1);
|
||||
/*tb_flush(&cpu->env); FIXME: Do we need it? */
|
||||
|
|
|
|||
|
|
@ -304,6 +304,7 @@ typedef struct CPUOpenRISCState {
|
|||
|
||||
CPU_COMMON
|
||||
|
||||
/* Fields from here on are preserved across CPU reset. */
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
CPUOpenRISCTLBContext * tlb;
|
||||
|
||||
|
|
|
|||
|
|
@ -1619,10 +1619,11 @@ static void disas_openrisc_insn(DisasContext *dc, OpenRISCCPU *cpu)
|
|||
|
||||
static void check_breakpoint(OpenRISCCPU *cpu, DisasContext *dc)
|
||||
{
|
||||
CPUState *cs = CPU(cpu);
|
||||
CPUBreakpoint *bp;
|
||||
|
||||
if (unlikely(!QTAILQ_EMPTY(&cpu->env.breakpoints))) {
|
||||
QTAILQ_FOREACH(bp, &cpu->env.breakpoints, entry) {
|
||||
if (unlikely(!QTAILQ_EMPTY(&cs->breakpoints))) {
|
||||
QTAILQ_FOREACH(bp, &cs->breakpoints, entry) {
|
||||
if (bp->pc == dc->pc) {
|
||||
tcg_gen_movi_tl(cpu_pc, dc->pc);
|
||||
gen_exception(dc, EXCP_DEBUG);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue