diff options
author | Nick Clifton <nickc@redhat.com> | 2016-08-12 11:35:32 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2016-08-12 11:35:32 +0100 |
commit | b14bdb3bab20db9d200d669dfb5e2eadde7b14cc (patch) | |
tree | fe7b64177c835dbdf5a6f89189239a3e44ab2a4e /sim/aarch64/simulator.c | |
parent | 7b17065f843252c27e8b9c093f78382079fe4d7f (diff) | |
download | gdb-b14bdb3bab20db9d200d669dfb5e2eadde7b14cc.zip gdb-b14bdb3bab20db9d200d669dfb5e2eadde7b14cc.tar.gz gdb-b14bdb3bab20db9d200d669dfb5e2eadde7b14cc.tar.bz2 |
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.
Diffstat (limited to 'sim/aarch64/simulator.c')
-rw-r--r-- | sim/aarch64/simulator.c | 13 |
1 files changed, 9 insertions, 4 deletions
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 |