aboutsummaryrefslogtreecommitdiff
path: root/opcodes-rvc-pseudo
blob: 57ed05ca955e471691369584f958ffef957f2ab1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# these aren't really pseudo-ops, but they overlay other encodings,
# so they are here to prevent parse_opcodes from barfing

@c.nop      1..0=1 15..13=0 12=0      11..7=0      6..2=0
@c.addi16sp 1..0=1 15..13=3 12=ignore 11..7=2      6..2=ignore
@c.jr       1..0=2 15..13=4 12=0      11..7=ignore 6..2=0
@c.jalr     1..0=2 15..13=4 12=1      11..7=ignore 6..2=0
@c.ebreak   1..0=2 15..13=4 12=1      11..7=0      6..2=0

# RV32C
@c.srli.rv32  1..0=1 15..13=4 12=0 11..10=0 9..2=ignore
@c.srai.rv32  1..0=1 15..13=4 12=0 11..10=1 9..2=ignore
@c.slli.rv32  1..0=2 15..13=0 12=0 11..2=ignore

# RV64C
@c.ld      1..0=0 15..13=3 12=ignore 11..2=ignore # c.flw for RV32
@c.sd      1..0=0 15..13=7 12=ignore 11..2=ignore # c.fsw for RV32
@c.addiw   1..0=1 15..13=1 12=ignore 11..2=ignore # c.jal for RV32
@c.ldsp    1..0=2 15..13=3 12=ignore 11..2=ignore # c.flwsp for RV32
@c.sdsp    1..0=2 15..13=7 12=ignore 11..2=ignore # c.fswsp for RV32

# RV128C
@c.lq      1..0=0 15..13=1 12=ignore 11..2=ignore # c.fld for RV32/64
@c.sq      1..0=0 15..13=5 12=ignore 11..2=ignore # c.fsd for RV32/64
@c.lqsp    1..0=2 15..13=1 12=ignore 11..2=ignore # c.fldsp for RV32/64
@c.sqsp    1..0=2 15..13=5 12=ignore 11..2=ignore # c.fsdsp for RV32/64