Does C.MV expand like MV?
No. C.MV expands to add rd, x0, rs2; canonical MV expands to addi rd, rs, 0. Both copy a register value.
16-bit register copy: the ordinary form copies the full XLEN-bit value of nonzero rs2 to nonzero rd.
C.MV is a 16-bit CR-format instruction with full 5-bit rd and rs2 fields. It copies all XLEN bits of rs2 to rd and expands to add rd, x0, rs2. The ordinary form requires nonzero rd and rs2. With rs2=x0 and nonzero rd, the encoding is C.JR; with both zero it is reserved. Nonzero rs2 with rd=x0 is a HINT. Available with RV32I/RV64I plus C or Zca.
RV32I/RV64I + C (or Zca); 16-bit, IALIGN=16.
c.mv rd, rs2Assume successful instruction fetch, no asynchronous interrupt or extra extension checks; one initial value per register.
0x852ERestore full register fields or fixed operands; distinguish ordinary encodings, HINTs and reserved encodings first.
These are teaching steps for architectural effects, not processor pipeline stages or cycles.
16-bit register copy: the ordinary form copies the full XLEN-bit value of nonzero rs2 to nonzero rd.
RV32I/RV64I plus C/Zca, x11=9: c.mv x10, x11 gives x10=9 and PC+2; old x10 is not a source.
No. C.MV expands to add rd, x0, rs2; canonical MV expands to addi rd, rs, 0. Both copy a register value.
Yes. With nonzero rd=rs2, one old value is read and written back, leaving the register bit pattern unchanged.