c.sub

Subtract

Subtract the value in xs2 from xd, and store the result in xd. The xd and xs2 register indexes should be used as xd+8 and xs2+8 (registers x8-x15). C.SUB expands into sub xd, xd, xs2.

This instruction must have data-independent timing when extension Zkt is enabled.

Assembly format

c.sub xd, xs2

Decode Variables

Bits<3> xs2 = $encoding[4:2];
Bits<3> xd = $encoding[9:7];

Execution

XReg t0 = X[creg2reg(xd)];
XReg t1 = X[creg2reg(xs2)];
X[creg2reg(xd)] = t0 - t1;

Encoding

svg

Defining extension

Zca

Access

M

Always

Containing profiles

  • Mandatory: None

  • Optional: RVA20S64, RVA20U64, RVA22S64, RVA22U64, RVA23S64, RVA23U64, RVB23S64, RVB23U64, RVI20U32, RVI20U64