diff options
Diffstat (limited to 'opcodes/riscv-opc.c')
-rw-r--r-- | opcodes/riscv-opc.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c index 22474f0..c55a264 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -2302,10 +2302,24 @@ struct riscv_opcode riscv_vendor_thead_opcodes[] = }; +/* Vendor SiFive extensions. */ +const struct riscv_opcode riscv_vendor_sifive_opcodes[] = +{ +/* name, xlen, isa, operands, match, mask, match_func, pinfo. */ +/* Half-precision floating-point instruction subset. */ +{"cflush.d.l1", 0, INSN_CLASS_XSF_CFLUSHDLONE, "s", MATCH_CFLUSH_D_L1, MASK_CFLUSH_D_L1, match_opcode, 0 }, +{"cdiscard.d.l1", 0, INSN_CLASS_XSF_CDISCARDDLONE, "s", MATCH_CDISCARD_D_L1, MASK_CDISCARD_D_L1, match_opcode, 0 }, +{"cflush.i.l1", 0, INSN_CLASS_XSF_CFLUSHILONE, "", MATCH_CFLUSH_I_L1, MASK_CFLUSH_I_L1, match_opcode, 0 }, + +/* Terminate the list. */ +{0, 0, INSN_CLASS_NONE, 0, 0, 0, 0, 0 }, +}; + /* The supported extended extensions. */ const struct riscv_opcode *riscv_extended_opcodes[] = { riscv_draft_opcodes, riscv_vendor_thead_opcodes, + riscv_vendor_sifive_opcodes, NULL }; |