[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] target-arm: Update PC before calling gen_helper
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH] target-arm: Update PC before calling gen_helper_check_breakpoints() |
Date: |
Tue, 10 Nov 2015 17:50:51 +0000 |
On 10 November 2015 at 17:23, Sergey Fedorov <address@hidden> wrote:
> PC should be updated in the CPU state before calling check_breakpoints()
> helper. Otherwise, the helper would not see the correct PC in the CPU
> state if it is not at the start of a TB.
>
> Signed-off-by: Sergey Fedorov <address@hidden>
> ---
> target-arm/translate-a64.c | 1 +
> target-arm/translate.c | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/target-arm/translate-a64.c b/target-arm/translate-a64.c
> index d7e0954..fe485a4 100644
> --- a/target-arm/translate-a64.c
> +++ b/target-arm/translate-a64.c
> @@ -11102,6 +11102,7 @@ void gen_intermediate_code_a64(ARMCPU *cpu,
> TranslationBlock *tb)
> QTAILQ_FOREACH(bp, &cs->breakpoints, entry) {
> if (bp->pc == dc->pc) {
> if (bp->flags & BP_CPU) {
> + gen_a64_set_pc_im(dc->pc);
> gen_helper_check_breakpoints(cpu_env);
> /* End the TB early; it likely won't be executed */
> dc->is_jmp = DISAS_UPDATE;
> diff --git a/target-arm/translate.c b/target-arm/translate.c
> index a56f7fe..4351854 100644
> --- a/target-arm/translate.c
> +++ b/target-arm/translate.c
> @@ -11373,6 +11373,7 @@ void gen_intermediate_code(CPUARMState *env,
> TranslationBlock *tb)
> QTAILQ_FOREACH(bp, &cs->breakpoints, entry) {
> if (bp->pc == dc->pc) {
> if (bp->flags & BP_CPU) {
> + gen_set_pc_im(dc, dc->pc);
> gen_helper_check_breakpoints(cpu_env);
> /* End the TB early; it's likely not going to be
> executed */
> dc->is_jmp = DISAS_UPDATE;
> --
> 1.9.1
>
Applied to target-arm.next, thanks.
-- PMM