Does MOP.RR.7 write rd by default?
Yes, when the default Zimop definition applies; with rd=x0, x0 remains zero. Use the redefining extension’s semantics when applicable.
MOP.RR.7 writes zero to rd by default in Zimop; Zicfiss already reuses some register combinations for SSPUSH.
MOP.RR.7 uses opcode 1110011 (0x73), funct3 100, fixed n selector 1100111. MOP.RR.n uses SYSTEM fields: bits 31..25 are the fixed n selector, rs2, rs1, and rd are explicit register fields, funct3=100, and opcode=SYSTEM. The default definition writes only 0 to x[rd]; neither rs1 nor rs2 is a default read source.
MOP.RR.7 is a Zimop may-be-operation with recommended syntax mop.rr.7 rd, rs1, rs2. 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 x[rs2] and writing x[rd]. Standard software should not execute a MOP unless deliberately targeting an extension that redefines it. In RV32/RV64, rd may be x0, in which case x0 remains zero; register overlap does not turn the default behavior into a copy or computation. Zicfiss already defines the combinations rd=x0, rs1=x0, and rs2=x1 or x5 as SSPUSH. Interpret those encodings under Zicfiss when applicable; other combinations retain Zimop behavior unless redefined.
MOP.RR.7 is a three-register Zimop MOP encoding; when not redefined, it writes zero to rd.
Assume RV32/RV64 Zimop 1.0 is implemented and no redefinition applies: mop.rr.7 x5, x6, x7 writes x5=0 regardless of old x6 and x7; x6 and x7 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 no redefinition applies: mop.rr.7 x5, x6, x7 writes x5=0 regardless of old x6 and x7; x6 and x7 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.
Yes, when the default Zimop definition applies; with rd=x0, x0 remains zero. Use the redefining extension’s semantics when applicable.
Both write zero by default. The recommended MOP.RR syntax has rd, rs1, and rs2, allowing a redefining extension to use two sources; MOP.R has rd and rs1, allowing one source.
No. Zicfiss SSPUSH fixes rd=x0 and rs1=x0, and allows only rs2=x1 or x5. Combinations unused by Zicfiss retain default Zimop behavior unless another extension redefines them.