Is MOP.R.14 a NOP by default?
Not a pure no-op. It writes zero to rd by default.
Zimop MOP.R.14; by default writes zero to rd and may be redefined to read rs1 and write rd.
MOP-R-14 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.14 is a Zimop may-be-operation with recommended syntax mop.r.14 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.
MOP.R.14 is a Zimop compatible encoding reserved for future extensions; when not redefined, its visible result is rd receiving zero.
Understand this scenario with real code like «mop.r.14 t0, t1».
Understand this scenario with real code like «mop.r.14 t0, t1».
Not a pure no-op. It writes zero to rd by default.
No, unless the software deliberately targets an extension that redefines that MOP.