Is it always equivalent to a same-named 32-bit instruction?
Not always. Some C/Zc instructions compress common 32-bit operations, while others have dedicated stack-frame or table-jump semantics.
RV64C stores a 64-bit doubleword from rs2; RV32 Zclsd stores a 64-bit value from the even rs2/rs2+1 register pair.
C.SD has two extension-defined forms: RV64C CS format stores the 64-bit value of rs2' (x8-x15) to rs1' plus a zero-extended offset scaled by 8, expanding to sd rs2',offset(rs1'); RV32 Zclsd instead stores a 64-bit value from the even/odd rs2', rs2'+1 register pair. Zclsd depends on Zilsd and Zca and is incompatible with Zcf.
Shows only ISA-visible 16-bit encoding, operands, and state, not a pipeline, cache, or timing.
This animation models the RV64C form; the static detail retains the RV32 Zclsd register-pair condition. An 8-byte naturally aligned address must not raise an address-misaligned exception; the EEI decides completion or exception for a misaligned access.
Continue to Commit result to reveal architectural state.
RV64C C.SD uses two x8-x15 compressed-register fields and a zero-extended offset scaled by 8; RV32 Zclsd uses an even/odd register pair.
Understand this scenario with real code like «c.sd x8, 0(x10)».
Not always. Some C/Zc instructions compress common 32-bit operations, while others have dedicated stack-frame or table-jump semantics.
Many 16-bit encodings can represent only a compressed register subset or fixed registers such as sp, ra, a0/a1.