Does the prefetcher cause Invalid Memory Access?
In this example it seems that the JMP instruction is directly adjacent
to uninitialized memory. But since we jump away from that address, the prefetcher is wrong and running into unallocated memory.
Code:
...
AllocMem ID= 140: 00000000 70e6d800 - 70e6d81d (30) AllocFlags: 00010001 PC: 00f820a0
....
Invalid access. Addr=70e6d81c RW=R Size=4: Accessing invalid memory
Page: 70e6d800 - 70e6d8ff. State=W Modified=*, Start=00, End=1D
D0 00000000 D1 70E6D818 D2 00000000 D3 00000000
D4 00000000 D5 00000000 D6 00000000 D7 00000000
A0 00000000 A1 70E6D818 A2 00000000 A3 00000000
A4 00000000 A5 00000000 A6 70E5C600 A7 70E5D6DC
USP 70E5D6DC ISP 400022A8 SFC 00000000 DFC 00000000
CACR 00002111 VBR 41FFFF00 CAAR 00000000 MSP 00000000
T=00 S=0 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=0 STP=0
SRP: 0 CRP: 0
TT0: 00000000 TT1: 00000000 TC: 00000000
Prefetch 70e6d81c deadf00d (1) 4018 (NEGX) dead (ADD) f00d (MMUOP030) Chip latch 00000000
70e6d818 4ef9 4018 19b6 jmp $401819b6
Next PC: 70e6d81e
>
>
>seg
Segment 1: 000003e9 70008000 - 700c2c5b (765020)
Segment 2: 000003ea 700cad00 - 700dc7ff (72448)
Segment 3: 000003eb 700e4800 - 70158c03 (476164)
Segment 4: 000003ea 70160d00 - 70160d87 (136)
Segment 5: 0000ffff 70168e00 - 70199b3f (200000) STACK
>d 70e6d818
70e6d818 4ef9 4018 19b6 jmp $401819b6
70e6d81e 9797 sub.l d3,(a7) [00f9f86a]
70e6d820 9797 sub.l d3,(a7) [00f9f86a]
70e6d822 9797 sub.l d3,(a7) [00f9f86a]
70e6d824 9797 sub.l d3,(a7) [00f9f86a]
70e6d826 9797 sub.l d3,(a7) [00f9f86a]
70e6d828 9797 sub.l d3,(a7) [00f9f86a]
70e6d82a 9797 sub.l d3,(a7) [00f9f86a]
70e6d82c 9797 sub.l d3,(a7) [00f9f86a]
70e6d82e 9797 sub.l d3,(a7) [00f9f86a]