aboutsummaryrefslogtreecommitdiff
path: root/sys/cddl
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cddl')
-rw-r--r--sys/cddl/dev/dtrace/riscv/dtrace_subr.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/cddl/dev/dtrace/riscv/dtrace_subr.c b/sys/cddl/dev/dtrace/riscv/dtrace_subr.c
index 68d98db30c83..ccc6b77090ab 100644
--- a/sys/cddl/dev/dtrace/riscv/dtrace_subr.c
+++ b/sys/cddl/dev/dtrace/riscv/dtrace_subr.c
@@ -255,6 +255,8 @@ dtrace_invop_start(struct trapframe *frame)
int invop;
invop = dtrace_invop(frame->tf_sepc, frame, frame->tf_sepc);
+ if (invop == 0)
+ return (-1);
if (match_opcode(invop, (MATCH_SD | RS2_RA | RS1_SP),
(MASK_SD | RS2_MASK | RS1_MASK))) {
@@ -292,6 +294,10 @@ dtrace_invop_start(struct trapframe *frame)
return (0);
}
+#ifdef INVARIANTS
+ panic("Instruction %x doesn't match any opcode.", invop);
+#endif
+
return (-1);
}