aboutsummaryrefslogtreecommitdiff
path: root/include/opcode/riscv.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/opcode/riscv.h')
-rw-r--r--include/opcode/riscv.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h
index dd2569f..9417dcf 100644
--- a/include/opcode/riscv.h
+++ b/include/opcode/riscv.h
@@ -37,6 +37,9 @@ static inline unsigned int riscv_insn_length (insn_t insn)
return 6;
if ((insn & 0x7f) == 0x3f) /* 64-bit instructions. */
return 8;
+ /* 80- ... 176-bit instructions. */
+ if ((insn & 0x7f) == 0x7f && (insn & 0x7000) != 0x7000)
+ return 10 + ((insn >> 11) & 0xe);
/* Longer instructions not supported at the moment. */
return 2;
}