icache: Log 36 bits of instruction rather than 32
authorPaul Mackerras <paulus@ozlabs.org>
Thu, 4 Aug 2022 05:17:25 +0000 (15:17 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Tue, 9 Aug 2022 10:14:39 +0000 (20:14 +1000)
commit6db626d24547b96bce576c8c3fdf2790c7d6c7ce
tree8805c6cf0dde728a60d407791f885aa995469a76
parent30f65741350630b88a25fa43a3ee5ecfe5cdeb39
icache: Log 36 bits of instruction rather than 32

This expands the field in the log buffer that stores the instruction
fetched from the icache to 36 bits, so that we get the insn_code and
illegal instruction indication.  To do this, we reclaim 3 unused bits
from execute1's portion and one other unused bit (previously just set
to 0 in core.vhdl).

This also alters the trigger behaviour to stop after one quarter of
the log buffer has been filled with samples after the trigger, or 256
entries, whichever is less.  This is to ensure that the trigger event
doesn't get overwritten when the log buffer is small.

This updates fmt_log to the new log format.  Valid instructions are
printed as a decimal insn_code value followed by the bottom 26 bits of
the instruction.  Illegal instructions are printed as "ill" followed
by the full 32 bits of the instruction.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
core.vhdl
core_debug.vhdl
execute1.vhdl
icache.vhdl
scripts/fmt_log/fmt_log.c