Skip to content

Commit

Permalink
target-arm: A64: add set_pc cpu method
Browse files Browse the repository at this point in the history
When executing translation blocks we need to be able to recover
our program counter. Add a method to set it for AArch64 CPUs.
This covers user-mode, but for system mode emulation we will
need to check if the CPU is in an AArch32 execution state.

Signed-off-by: Alexander Graf <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
  • Loading branch information
agraf authored and pm215 committed Dec 17, 2013
1 parent 40f860c commit 5ce4f35
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions target-arm/cpu64.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,22 @@ static void aarch64_cpu_finalizefn(Object *obj)
{
}

static void aarch64_cpu_set_pc(CPUState *cs, vaddr value)
{
ARMCPU *cpu = ARM_CPU(cs);
/*
* TODO: this will need updating for system emulation,
* when the core may be in AArch32 mode.
*/
cpu->env.pc = value;
}

static void aarch64_cpu_class_init(ObjectClass *oc, void *data)
{
CPUClass *cc = CPU_CLASS(oc);

cc->dump_state = aarch64_cpu_dump_state;
cc->set_pc = aarch64_cpu_set_pc;
cc->gdb_read_register = aarch64_cpu_gdb_read_register;
cc->gdb_write_register = aarch64_cpu_gdb_write_register;
cc->gdb_num_core_regs = 34;
Expand Down

0 comments on commit 5ce4f35

Please sign in to comment.