# "C" Standard Extension for Compressed Instructions.
# Version 2.0

c.lwsp     | ci  | clwsp_imm crd                | 010...........10
c.fldsp    | ci  | cldsp_imm crd(fp)            | 001...........10
c.swsp     | css | cswsp_imm crs2               | 110...........10
c.fsdsp    | css | csdsp_imm crs2(fp)           | 101...........10
c.lw       | cl  | clw_imm crs1_ crd_           | 010...........00
c.fld      | cl  | cld_imm crs1_ crd_(fp)       | 001...........00
c.sw       | cs  | csw_imm crs1_ crs2_          | 110...........00
c.fsd      | cs  | csd_imm crs1_ crs2_(fp)      | 101...........00
c.j        | cj  | cj_imm ird_zero              | 101...........01
c.jr       | cr  | iimm_0 crs1 ird_zero         | 1000.....0000010
c.jalr     | cr  | iimm_0 crs1 ird_ra           | 1001.....0000010
c.beqz     | cb  | cb_imm crs1_ irs2_zero       | 110...........01
c.bnez     | cb  | cb_imm crs1_ irs2_zero       | 111...........01
c.li       | ci  | cimm5 irs1_zero crd          | 010...........01
c.lui      | ci  | clui_imm crd                 | 011...........01
c.addi     | ci  | cimm5 icrs1 crd              | 000...........01
c.addi16sp | ci  | caddi16sp_imm irs1_sp ird_sp | 011.00010.....01
c.addi4spn | ciw | ciw_imm irs1_sp crd_         | 000...........00
c.slli     | ci  | cshamt icrs1 crd             | 000...........10
c.srli     | cb  | cshamt icrs1__ crd__         | 100.00........01
c.srai     | cb  | cshamt icrs1__ crd__         | 100.01........01
c.andi     | cb  | cimm5  icrs1__ crd__         | 100.10........01
c.mv       | cr  | crs2 irs1_zero crd           | 1000..........10
c.add      | cr  | crs2 icrs1 crd               | 1001..........10
c.and      | ca  | crs2_ icrs1__ crd__          | 100011...11...01
c.or       | ca  | crs2_ icrs1__ crd__          | 100011...10...01
c.xor      | ca  | crs2_ icrs1__ crd__          | 100011...01...01
c.sub      | ca  | crs2_ icrs1__ crd__          | 100011...00...01
c.nop      | ci  |                              | 0000000000000001
c.ebreak   | cr  |                              | 1001000000000010

# 0x0 is an illegal instruction by ISA specification. However it is often used
# as a canary after non-reachable code therefore it's included here.
unimp      | ci  |                         | 0000000000000000
