qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 4/7] target-arm: support AArch64 for arm_cpu_set


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH 4/7] target-arm: support AArch64 for arm_cpu_set_pc
Date: Mon, 5 May 2014 17:22:51 +0100

On 5 May 2014 17:00, Rob Herring <address@hidden> wrote:
> From: Rob Herring <address@hidden>
>
> Add AArch64 support to arm_cpu_set_pc and make it available to other files.
>
> Signed-off-by: Rob Herring <address@hidden>
> ---
>  target-arm/cpu.c |  7 -------
>  target-arm/cpu.h | 12 ++++++++++++
>  2 files changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/target-arm/cpu.c b/target-arm/cpu.c
> index 03c025b..2d18a20 100644
> --- a/target-arm/cpu.c
> +++ b/target-arm/cpu.c
> @@ -30,13 +30,6 @@
>  #include "sysemu/sysemu.h"
>  #include "sysemu/kvm.h"
>
> -static void arm_cpu_set_pc(CPUState *cs, vaddr value)
> -{
> -    ARMCPU *cpu = ARM_CPU(cs);
> -
> -    cpu->env.regs[15] = value;
> -}
> -
>  static bool arm_cpu_has_work(CPUState *cs)
>  {
>      ARMCPU *cpu = ARM_CPU(cs);
> diff --git a/target-arm/cpu.h b/target-arm/cpu.h
> index 905ba02..efe3cd2 100644
> --- a/target-arm/cpu.h
> +++ b/target-arm/cpu.h
> @@ -1197,6 +1197,18 @@ static inline void cpu_pc_from_tb(CPUARMState *env, 
> TranslationBlock *tb)
>      }
>  }
>
> +static inline void arm_cpu_set_pc(CPUState *cs, vaddr value)
> +{
> +    ARMCPU *cpu = ARM_CPU(cs);
> +
> +    if (is_a64(&cpu->env)) {
> +        cpu->env.pc = value;
> +    } else {
> +        cpu->env.regs[15] = value;
> +    }
> +
> +}

The set_pc() functions are supposed to be private implementations
of methods on the CPU object. This one is fine where it is;
the AArch64 support is in aarch64_cpu_set_pc(). In either case
you should only be calling it via the CPUClass->set_pc pointer.
Assuming you have a CPUState *cpu, then:

    CPUClass *cc = CPU_GET_CLASS(cpu);
    cc->set_pc(cpu, pc);

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]