617 |
tb_reset_jump_recursive2(tb, 1); |
tb_reset_jump_recursive2(tb, 1); |
618 |
} |
} |
619 |
|
|
620 |
/* add a breakpoint */ |
/* add a breakpoint. EXCP_DEBUG is returned by the CPU loop if a |
621 |
|
breakpoint is reached */ |
622 |
int cpu_breakpoint_insert(CPUState *env, uint32_t pc) |
int cpu_breakpoint_insert(CPUState *env, uint32_t pc) |
623 |
{ |
{ |
624 |
#if defined(TARGET_I386) |
#if defined(TARGET_I386) |
660 |
#endif |
#endif |
661 |
} |
} |
662 |
|
|
663 |
|
/* enable or disable single step mode. EXCP_DEBUG is returned by the |
664 |
|
CPU loop after each instruction */ |
665 |
|
void cpu_single_step(CPUState *env, int enabled) |
666 |
|
{ |
667 |
|
#if defined(TARGET_I386) |
668 |
|
if (env->singlestep_enabled != enabled) { |
669 |
|
env->singlestep_enabled = enabled; |
670 |
|
/* must flush all the translated code to avoid inconsistancies */ |
671 |
|
tb_flush(); |
672 |
|
} |
673 |
|
#endif |
674 |
|
} |
675 |
|
|
676 |
|
|
677 |
/* mask must never be zero */ |
/* mask must never be zero */ |
678 |
void cpu_interrupt(CPUState *env, int mask) |
void cpu_interrupt(CPUState *env, int mask) |
679 |
{ |
{ |