Is MOP.R.8 a pure no-op by default?
Under the default Zimop definition described here, it writes zero to rd; if rd=x0, x0 remains zero. For redefined behavior, consult the corresponding extension.
MOP.R.8 writes zero to rd under its default Zimop definition; a redefining extension may use rs1.
Extension condition: RV32/RV64 requires Zimop 1.0; this page describes the base behavior unless another extension redefines it.
MOP.R.8 uses opcode 1110011 (0x73), funct3 100. MOP.R.n uses SYSTEM fields: bits 31..20 are the fixed n selector, rs1 and rd are explicit register fields, funct3=100, and opcode=SYSTEM. The default definition writes only 0 to x[rd]; rs1 is not a default read source.
MOP.R.8 is a Zimop may-be-operation with recommended syntax mop.r.8 rd, rs1. If no other extension redefines the encoding, the official default behavior writes 0 to x[rd]. The encoding space allows future extensions to define it as reading x[rs1] and writing x[rd]. Standard software should not execute a MOP unless deliberately targeting an extension that redefines it. rd may be x0, in which case x0 remains zero; register overlap does not turn the base behavior into a copy or computation.
MOP.R.8 is a Zimop compatible encoding reserved for future extensions; when not redefined, its visible result is rd receiving zero.
Assume RV32/RV64 Zimop 1.0 is implemented and this MOP is not redefined: mop.r.8 t0, t1 sets t0 (x5) to zero regardless of the old t1 (x6) values; other registers are unchanged. Overlapping rd with a source field still writes zero; rd=x0 leaves x0 zero. Standard software should execute it only when deliberately targeting an extension that redefines this MOP.
Assume RV32/RV64 Zimop 1.0 is implemented and this MOP is not redefined: mop.r.8 t0, t1 sets t0 (x5) to zero regardless of the old t1 (x6) values; other registers are unchanged. Overlapping rd with a source field still writes zero; rd=x0 leaves x0 zero. Standard software should execute it only when deliberately targeting an extension that redefines this MOP.
Under the default Zimop definition described here, it writes zero to rd; if rd=x0, x0 remains zero. For redefined behavior, consult the corresponding extension.
No, unless the software deliberately targets an extension that redefines that MOP.