1# compressed instructions
2
3# these aren't really pseudo-ops, but they overlay other encodings,
4# so they are here to prevent parse_opcodes from barfing
5
6@c.nop      1..0=1 15..13=0 12=0      11..7=0      6..2=0
7@c.addi16sp 1..0=1 15..13=3 12=ignore 11..7=2      6..2=ignore
8@c.jr       1..0=2 15..13=4 12=0      11..7=ignore 6..2=0
9@c.jalr     1..0=2 15..13=4 12=1      11..7=ignore 6..2=0
10@c.ebreak   1..0=2 15..13=4 12=1      11..7=0      6..2=0
11
12# C0 encoding space
13c.addi4spn 1..0=0 15..13=0 12=ignore 11..2=ignore
14c.fld      1..0=0 15..13=1 12=ignore 11..2=ignore # c.lq for RV128
15c.lw       1..0=0 15..13=2 12=ignore 11..2=ignore
16c.flw      1..0=0 15..13=3 12=ignore 11..2=ignore # c.ld for RV64
17c.fsd      1..0=0 15..13=5 12=ignore 11..2=ignore # c.sq for RV128
18c.sw       1..0=0 15..13=6 12=ignore 11..2=ignore
19c.fsw      1..0=0 15..13=7 12=ignore 11..2=ignore # c.sd for RV64
20
21# C1 encoding space
22c.addi     1..0=1 15..13=0 12=ignore 11..2=ignore
23c.jal      1..0=1 15..13=1 12=ignore 11..2=ignore # c.addiw for RV64
24c.li       1..0=1 15..13=2 12=ignore 11..2=ignore
25c.lui      1..0=1 15..13=3 12=ignore 11..2=ignore # c.addi16sp when rd=2
26c.srli     1..0=1 15..13=4 12=ignore 11..10=0 9..2=ignore
27c.srai     1..0=1 15..13=4 12=ignore 11..10=1 9..2=ignore
28c.andi     1..0=1 15..13=4 12=ignore 11..10=2 9..2=ignore
29c.sub      1..0=1 15..13=4 12=0      11..10=3 9..7=ignore 6..5=0 4..2=ignore
30c.xor      1..0=1 15..13=4 12=0      11..10=3 9..7=ignore 6..5=1 4..2=ignore
31c.or       1..0=1 15..13=4 12=0      11..10=3 9..7=ignore 6..5=2 4..2=ignore
32c.and      1..0=1 15..13=4 12=0      11..10=3 9..7=ignore 6..5=3 4..2=ignore
33c.j        1..0=1 15..13=5 12=ignore 11..2=ignore
34c.beqz     1..0=1 15..13=6 12=ignore 11..2=ignore
35c.bnez     1..0=1 15..13=7 12=ignore 11..2=ignore
36
37# C2 encoding space
38c.slli     1..0=2 15..13=0 12=ignore 11..2=ignore
39c.fldsp    1..0=2 15..13=1 12=ignore 11..2=ignore # c.lqsp for RV128
40c.lwsp     1..0=2 15..13=2 12=ignore 11..2=ignore
41c.flwsp    1..0=2 15..13=3 12=ignore 11..2=ignore # c.ldsp for RV64
42c.mv       1..0=2 15..13=4 12=0      11..2=ignore # !rs2 = c.jr
43c.add      1..0=2 15..13=4 12=1      11..2=ignore # !rs1 = c.ebreak; !rs2=c.jalr
44c.fsdsp    1..0=2 15..13=5 12=ignore 11..2=ignore # c.sqsp for RV128
45c.swsp     1..0=2 15..13=6 12=ignore 11..2=ignore
46c.fswsp    1..0=2 15..13=7 12=ignore 11..2=ignore # c.sdsp for RV64
47