execute1: Fix bug in trace interrupt vs. ITLB miss
authorPaul Mackerras <paulus@ozlabs.org>
Sat, 3 Oct 2020 10:08:11 +0000 (20:08 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Sat, 3 Oct 2020 10:08:11 +0000 (20:08 +1000)
commitb0f7237b7f5cbdbf132085f5517d84f6cd19f3c6
tree4d56aa060ec0cd671469d8c3a5925615ac346094
parente40e752b9ab602f5ce1eb79be1fe96932558830d
execute1: Fix bug in trace interrupt vs. ITLB miss

If an instruction fetch results in an instruction TLB miss, an
OP_FETCH_FAILED instruction is sent down the pipe.  If the MSR[TE]
field is set for instruction tracing, the core currently considers
that executing the OP_FETCH_FAILED counts as having executed one
instruction and so generates a trace interrupt on the next valid
instruction, meaning that the trace interrupt happens before the
desired instruction rather than after it.

Fix this by not tracing OP_FETCH_FAILED instructions.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
execute1.vhdl