1# Instructions that differ slightly between rv32 and rv64
2@slli.rv32 rd rs1 31..25=0  shamtw  14..12=1 6..2=0x04 1..0=3
3@srli.rv32 rd rs1 31..25=0  shamtw  14..12=5 6..2=0x04 1..0=3
4@srai.rv32 rd rs1 31..25=32 shamtw  14..12=5 6..2=0x04 1..0=3
5
6# SYSTEM pseudo-instructions that map to csr*
7@frflags    rd 19..15=0 31..20=0x001 14..12=2 6..2=0x1C 1..0=3
8@fsflags    rd rs1      31..20=0x001 14..12=1 6..2=0x1C 1..0=3
9@fsflagsi   rd zimm     31..20=0x001 14..12=5 6..2=0x1C 1..0=3
10@frrm       rd 19..15=0 31..20=0x002 14..12=2 6..2=0x1C 1..0=3
11@fsrm       rd rs1      31..20=0x002 14..12=1 6..2=0x1C 1..0=3
12@fsrmi      rd zimm     31..20=0x002 14..12=5 6..2=0x1C 1..0=3
13@fscsr      rd rs1      31..20=0x003 14..12=1 6..2=0x1C 1..0=3
14@frcsr      rd 19..15=0 31..20=0x003 14..12=2 6..2=0x1C 1..0=3
15@rdcycle    rd 19..15=0 31..20=0xC00 14..12=2 6..2=0x1C 1..0=3
16@rdtime     rd 19..15=0 31..20=0xC01 14..12=2 6..2=0x1C 1..0=3
17@rdinstret  rd 19..15=0 31..20=0xC02 14..12=2 6..2=0x1C 1..0=3
18@rdcycleh   rd 19..15=0 31..20=0xC80 14..12=2 6..2=0x1C 1..0=3
19@rdtimeh    rd 19..15=0 31..20=0xC81 14..12=2 6..2=0x1C 1..0=3
20@rdinstreth rd 19..15=0 31..20=0xC82 14..12=2 6..2=0x1C 1..0=3
21
22# Old names for ecall/ebreak
23@scall     11..7=0 19..15=0 31..20=0x000 14..12=0 6..2=0x1C 1..0=3
24@sbreak    11..7=0 19..15=0 31..20=0x001 14..12=0 6..2=0x1C 1..0=3
25
26# Old names for fmv.x.w/fmv.w.x
27@fmv.x.s   rd rs1 24..20=0 31..27=0x1C 14..12=0 26..25=0 6..2=0x14 1..0=3
28@fmv.s.x   rd rs1 24..20=0 31..27=0x1E 14..12=0 26..25=0 6..2=0x14 1..0=3
29
30# specialized fences
31@fence.tso 31..28=8 27..24=3 23..20=3 19..15=ignore 14..12=0 11..7=ignore 6..2=0x03 1..0=3
32@pause     31..28=0 27..24=1 23..20=0 19..15=0      14..12=0 11..7=0      6..2=0x03 1..0=3
33