mgba/src/sm83
bigfarts 42f7876731 Add range watchpoints.
These are accessible via the following new CLI debugger commands:

 - rw: watchr minAddr maxAddr [cond]
 - r: watchr/r minAddr maxAddr [cond]
 - w: watchr/w minAddr maxAddr [cond]
 - c: watchr/c minAddr maxAddr [cond]

This also makes all watchpoints range watchpoints under the hood.

Preliminary benchmark results:

Time taken to run 10000 frames of Megaman Battle Network 1 (U) with a write watchpoint set at 0x02000000 in milliseconds, 10 runs each:

control (no watchpoint):
[4184, 4185, 4197, 4207, 4220, 4178, 4304, 4226, 4234, 4292]
mean = 4223, stdev = 43.95

old (single address watchpoint):
[4743, 4685, 4679, 4670, 4782, 4704, 4698, 4875, 4746, 4718]
mean = 4730, stdev = 61.67

new (range watchpoint):
[4683, 4691, 4693, 4706, 4782, 4674, 4746, 4768, 4770, 4776]
mean = 4728, stdev = 43.36
2022-10-16 02:10:38 -07:00
..
debugger Add range watchpoints. 2022-10-16 02:10:38 -07:00
CMakeLists.txt SM83: Rename LR35902 to SM83 2020-01-01 11:35:00 -08:00
decoder.c All: More warning burndown 2022-06-30 05:55:56 -07:00
isa-sm83.c SM83: HALT should not consume an extra T-state 2021-03-17 18:20:38 -07:00
sm83.c SM83: Improve mid-M-cycle interrupts 2021-03-17 18:20:38 -07:00