PDP11: Fix PC breakpoint check

Don't modify the CPU state when checking for physical address match on
PC address breakpoints.  Reported and verified by Lars.
This commit is contained in:
Paul Koning 2022-10-10 13:38:09 -04:00
parent c6a6c72c63
commit 253b8ec358

View file

@ -338,6 +338,7 @@ int32 relocR (int32 addr);
int32 relocW (int32 addr);
void relocR_test (int32 va, int32 apridx);
void relocW_test (int32 va, int32 apridx);
int32 relocC (int32 va, int32 sw);
t_bool PLF_test (int32 va, int32 apr);
void reloc_abort (int32 err, int32 apridx);
int32 ReadE (int32 addr);
@ -937,7 +938,7 @@ while (reason == 0) {
inst_psw = get_PSW ();
saved_sim_interval = sim_interval;
if (BPT_SUMM_PC) { /* possible breakpoint */
t_addr pa = relocR (PC | isenable); /* relocate PC */
t_addr pa = relocC (PC, 0); /* relocate PC */
if (sim_brk_test (PC, BPT_PCVIR) || /* Normal PC breakpoint? */
sim_brk_test (pa, BPT_PCPHY)) /* Physical Address breakpoint? */
ABORT (ABRT_BKPT); /* stop simulation */