From b14bdb3bab20db9d200d669dfb5e2eadde7b14cc Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 12 Aug 2016 11:35:32 +0100 Subject: Undo the previous change to the aarch64 sim - exporting aarch64_step() - and instead make aarch64_run correctly process sim events. * simulator.c (aarch64_step): Revert pervious delta. (aarch64_run): Call sim_events_tick after each instruction is simulated, and if necessary call sim_events_process. * simulator.h: Revert previous delta. --- sim/aarch64/ChangeLog | 10 ++++++++++ sim/aarch64/simulator.c | 13 +++++++++---- sim/aarch64/simulator.h | 5 ----- 3 files changed, 19 insertions(+), 9 deletions(-) (limited to 'sim') diff --git a/sim/aarch64/ChangeLog b/sim/aarch64/ChangeLog index d32a81b..c6d635c 100644 --- a/sim/aarch64/ChangeLog +++ b/sim/aarch64/ChangeLog @@ -1,3 +1,11 @@ +2016-08-12 Nick Clifton + + * simulator.c (aarch64_step): Revert pervious delta. + (aarch64_run): Call sim_events_tick after each + instruction is simulated, and if necessary call + sim_events_process. + * simulator.h: Revert previous delta. + 2016-08-11 Nick Clifton * interp.c (sim_create_inferior): Allow for being called with a @@ -5,6 +13,8 @@ with that start address. * simulator.c (HALT_NYI): Just print out the numeric value of the instruction when not tracing. + (aarch64_step): Change from static to global. + * simulator.h: Add a prototype for aarch64_step(). 2016-07-27 Alan Modra diff --git a/sim/aarch64/simulator.c b/sim/aarch64/simulator.c index 150bf34..67e61e7 100644 --- a/sim/aarch64/simulator.c +++ b/sim/aarch64/simulator.c @@ -14072,7 +14072,7 @@ aarch64_decode_and_execute (sim_cpu *cpu, uint64_t pc) } } -bfd_boolean +static bfd_boolean aarch64_step (sim_cpu *cpu) { uint64_t pc = aarch64_get_PC (cpu); @@ -14102,10 +14102,15 @@ aarch64_run (SIM_DESC sd) sim_cpu *cpu = STATE_CPU (sd, 0); while (aarch64_step (cpu)) - aarch64_update_PC (cpu); + { + aarch64_update_PC (cpu); + + if (sim_events_tick (sd)) + sim_events_process (sd); + } - sim_engine_halt (sd, NULL, NULL, aarch64_get_PC (cpu), - sim_exited, aarch64_get_reg_s32 (cpu, R0, SP_OK)); + sim_engine_halt (sd, cpu, NULL, aarch64_get_PC (cpu), + sim_exited, aarch64_get_reg_s32 (cpu, R0, NO_SP)); } void diff --git a/sim/aarch64/simulator.h b/sim/aarch64/simulator.h index a17bd21..128d242 100644 --- a/sim/aarch64/simulator.h +++ b/sim/aarch64/simulator.h @@ -46,11 +46,6 @@ extern void aarch64_init (sim_cpu *, uint64_t); hit an error. */ extern void aarch64_run (SIM_DESC); - -/* Call this to execute one instruction at the current PC. */ - -extern bfd_boolean aarch64_step (sim_cpu *); - extern const char * aarch64_get_func (uint64_t); extern uint64_t aarch64_get_sym_value (const char *); extern void aarch64_init_LIT_table (void); -- cgit v1.1