aboutsummaryrefslogtreecommitdiff
path: root/sim/README-HACKING
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-03-23 00:44:54 -0400
committerMike Frysinger <vapier@gentoo.org>2021-02-06 12:12:51 -0500
commit4c0d76b9c420bb29cb3365c5edc9c78c50d2b231 (patch)
tree1cbf362654cf185294337a5f27e6d3c94fdb9d65 /sim/README-HACKING
parentcd89c53f6d475cd05a1858b9195770e347fb2e9e (diff)
downloadfsf-binutils-gdb-4c0d76b9c420bb29cb3365c5edc9c78c50d2b231.zip
fsf-binutils-gdb-4c0d76b9c420bb29cb3365c5edc9c78c50d2b231.tar.gz
fsf-binutils-gdb-4c0d76b9c420bb29cb3365c5edc9c78c50d2b231.tar.bz2
sim: watchpoints: use common sim_pc_get
Few arches implement STATE_WATCHPOINTS()->pc while all of them implement sim_pc_get. Lets switch the sim-watch core for monitoring pc events to the sim_pc_get API so this module works for all ports, and then we can delete this old back channel of snooping in the port's cpu state -- the code needs the pointer to the pc storage so that it can read out bytes and compare them to the watchrange. This also fixes the logic on multi-cpu sims by removing the limitation of only being able to watch CPU0's state.
Diffstat (limited to 'sim/README-HACKING')
-rw-r--r--sim/README-HACKING4
1 files changed, 2 insertions, 2 deletions
diff --git a/sim/README-HACKING b/sim/README-HACKING
index 9953f99..2f985bd 100644
--- a/sim/README-HACKING
+++ b/sim/README-HACKING
@@ -267,8 +267,8 @@ And in your insn fetcher:
PROFILE_COUNT_CORE (cpu, target_addr, size_in_bytes, map_exec);
To use the PC profiling code, you simply have to tell the system where to find
-your simulator's PC. So in your sim_open() function:
- STATE_WATCHPOINTS (sd)->pc = address_of_cpu0_pc;
+your simulator's PC. So in your model initialization function:
+ CPU_PC_FETCH (cpu) = function_that_fetches_the_pc;
To profile branches, in every location where a branch insn is executed, call
one of the related helpers: