The may be operation means that it has an initial behavior which can be redefined by later extensions to perform some other action.
The May-Be-Operations includes two extension: zimop and zcmop. Zimop has 40 instructions, whose initial behavior is writing zero to the destination register. Zcmop, which requires the Zca extension, has 8 instructions whose initial behavior is reading the source register. The more details on this specifcation is here: https://github.com/riscv/riscv-isa-manual/blob/main/src/zimop.adoc LIU Zhiwei (4): target/riscv: Add zimop extension disas/riscv: Support zimop disassemble target/riscv: Add zcmop extension disas/riscv: Support zcmop disassemble disas/riscv.c | 123 ++++++++++++++++++++ target/riscv/cpu.c | 4 + target/riscv/cpu_cfg.h | 2 + target/riscv/insn16.decode | 1 + target/riscv/insn32.decode | 11 ++ target/riscv/insn_trans/trans_rvzcmop.c.inc | 29 +++++ target/riscv/insn_trans/trans_rvzimop.c.inc | 37 ++++++ target/riscv/tcg/tcg-cpu.c | 5 + target/riscv/translate.c | 2 + 9 files changed, 214 insertions(+) create mode 100644 target/riscv/insn_trans/trans_rvzcmop.c.inc create mode 100644 target/riscv/insn_trans/trans_rvzimop.c.inc -- 2.25.1