From 1c3903e2cea1b30e9ab7cc3a0dc5a249e1922739 Mon Sep 17 00:00:00 2001 From: Philipp Wagner Date: Thu, 17 Oct 2019 12:03:26 +0100 Subject: [PATCH] Tracer: Decode an all-zero instruction as c.unimp Fixes #396 --- rtl/ibex_tracer.sv | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/rtl/ibex_tracer.sv b/rtl/ibex_tracer.sv index 423b76d6..deba8e54 100644 --- a/rtl/ibex_tracer.sv +++ b/rtl/ibex_tracer.sv @@ -721,7 +721,14 @@ module ibex_tracer ( end else begin unique casez (rvfi_insn[15:0]) // C0 Opcodes - INSN_CADDI4SPN: decode_ciw_insn("c.addi4spn"); + INSN_CADDI4SPN: begin + if (rvfi_insn[12:2] == 11'h0) begin + // Align with pseudo-mnemonic used by GNU binutils and LLVM's MC layer + decode_mnemonic("c.unimp"); + end else begin + decode_ciw_insn("c.addi4spn"); + end + end INSN_CLW: decode_compressed_load_insn("c.lw"); INSN_CSW: decode_compressed_store_insn("c.sw"); // C1 Opcodes