aboutsummaryrefslogtreecommitdiff
path: root/sim/aarch64/simulator.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2016-08-12 11:35:32 +0100
committerNick Clifton <nickc@redhat.com>2016-08-12 11:35:32 +0100
commitb14bdb3bab20db9d200d669dfb5e2eadde7b14cc (patch)
treefe7b64177c835dbdf5a6f89189239a3e44ab2a4e /sim/aarch64/simulator.c
parent7b17065f843252c27e8b9c093f78382079fe4d7f (diff)
downloadgdb-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.c13
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