C.MOP.1

RISC-V C.MOP.1 Instruction Details

Instruction ManualC-type

Zcmop 16-bit C.MOP.1 writes no register in its base behavior; active Zicfiss uses this encoding for C.SSPUSH x1.

Instruction Syntax

c.mop.1
Operand Breakdown
The recommended syntax c.mop.1 has no explicit operands; its 16-bit encoding is fixed to 0110000010000001.
Base Zcmop behavior writes no register; implicit x1 is used by a redefinition. Active Zicfiss uses this encoding for C.SSPUSH x1.
ZcmopMay-Be-Operations

Instruction Encoding

15..0
0110000010000001

C.MOP.1 has fixed 16-bit encoding 0110000010000001; its assembly syntax has no explicit operands.

Format: Zcmop fixed 16-bit encoding
16-bit encoding: 0110000010000001
Compressed instruction, 16-bit encoding.

Instruction Behavior

C.MOP.1 is a nullary 16-bit may-be-operation in Zcmop 1.0, with fixed encoding 0110000010000001 (0x6081). Unless redefined by another extension, it writes no register; the encoding permits a redefinition to read implicit x1. Zcmop depends on Zca. Zicfiss uses this encoding for C.SSPUSH x1; without implemented and active Zicfiss it reverts to Zcmop behavior. This page describes the base Zcmop behavior.

Quick Understanding & Search Notes

C.MOP.1 is a fixed nullary 16-bit encoding that writes no register under base Zcmop behavior. Active Zicfiss uses the same encoding for C.SSPUSH x1.

Zcmop defines only the eight odd-numbered C.MOP.n instructions from 1 through 15.
C.MOP.1 has fixed encoding 0110000010000001 (0x6081) in the reserved space corresponding to C.LUI x1, 0; the recommended syntax is nullary, and a redefinition may read implicit x1.
The default differs from Zimop MOP.R.n, which writes zero to rd.
With Zicfiss implemented and active, this encoding is C.SSPUSH x1; otherwise it reverts to the Zcmop-defined behavior.

Common Usage Scenarios

Zcmop MOP

Understand this scenario with real code like «c.mop.1».

Extension-defined

Understand this scenario with real code like «c.mop.1».

Pre-Use Checklist

Syntax Check
  • Verify Zcmop and its Zca dependency; C.MOP.1 is the fixed nullary 16-bit encoding 0110000010000001.
Semantic Check
  • Base Zcmop behavior writes no register; a redefinition may read implicit x1.
  • Check whether Zicfiss is implemented and active: this encoding is then C.SSPUSH x1; otherwise Zcmop behavior applies.

Pitfalls / Common Confusions

By default C.MOP.n writes no rd; this differs from Zimop MOP.R/MOP.RR, which write zero to rd.
Do not rely on useful C.MOP behavior in ordinary software unless a target extension explicitly redefines the encoding.
Zicfiss already redefines this encoding as C.SSPUSH x1; do not apply the base Zcmop behavior when that extension is active.

FAQ

Does C.MOP.1 write a register by default?

No. The official Zcmop rule says C.MOP.n writes no register by default.

What is the implicit register for C.MOP.1?

Zcmop permits a redefinition to read implicit x1. Zicfiss uses this encoding for C.SSPUSH x1; when Zicfiss is absent or inactive, base Zcmop behavior applies.