-
Notifications
You must be signed in to change notification settings - Fork 303
/
rv_zimop
53 lines (50 loc) · 5.27 KB
/
rv_zimop
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# The Zimop extension defines 32 MOP instructions named mop.r.0 -- mop.r.31.
# They are encoded as 1-00--0111--sssss100ddddd1110011, where - denotes an
# available opcode bit, s denotes the rs1 field, and d denotes the rd field.
# add a pseudo-inst mop.r.N that matches mop.r.*
mop.r.N mop_r_t_30 mop_r_t_27_26 mop_r_t_21_20 rd rs1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.0 rd rs1 30=0 27=0 26=0 21=0 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.1 rd rs1 30=0 27=0 26=0 21=0 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.2 rd rs1 30=0 27=0 26=0 21=1 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.3 rd rs1 30=0 27=0 26=0 21=1 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.4 rd rs1 30=0 27=0 26=1 21=0 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.5 rd rs1 30=0 27=0 26=1 21=0 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.6 rd rs1 30=0 27=0 26=1 21=1 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.7 rd rs1 30=0 27=0 26=1 21=1 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.8 rd rs1 30=0 27=1 26=0 21=0 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.9 rd rs1 30=0 27=1 26=0 21=0 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.10 rd rs1 30=0 27=1 26=0 21=1 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.11 rd rs1 30=0 27=1 26=0 21=1 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.12 rd rs1 30=0 27=1 26=1 21=0 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.13 rd rs1 30=0 27=1 26=1 21=0 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.14 rd rs1 30=0 27=1 26=1 21=1 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.15 rd rs1 30=0 27=1 26=1 21=1 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.16 rd rs1 30=1 27=0 26=0 21=0 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.17 rd rs1 30=1 27=0 26=0 21=0 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.18 rd rs1 30=1 27=0 26=0 21=1 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.19 rd rs1 30=1 27=0 26=0 21=1 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.20 rd rs1 30=1 27=0 26=1 21=0 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.21 rd rs1 30=1 27=0 26=1 21=0 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.22 rd rs1 30=1 27=0 26=1 21=1 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.23 rd rs1 30=1 27=0 26=1 21=1 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.24 rd rs1 30=1 27=1 26=0 21=0 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.25 rd rs1 30=1 27=1 26=0 21=0 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.26 rd rs1 30=1 27=1 26=0 21=1 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.27 rd rs1 30=1 27=1 26=0 21=1 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.28 rd rs1 30=1 27=1 26=1 21=0 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.29 rd rs1 30=1 27=1 26=1 21=0 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.30 rd rs1 30=1 27=1 26=1 21=1 20=0 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.r.N mop.r.31 rd rs1 30=1 27=1 26=1 21=1 20=1 31=1 29..28=0 25..22=7 14..12=4 6..2=0x1C 1..0=3
# The Zimop extension additionally defines 8 MOP instructions named mop.rr.0
# -- mop.rr.7. They are encoded as 1-00--1tttttsssss100ddddd1110011, where t
# denotes the rs2 field.
# add a pseudo-inst mop.rr.N taht matches mop.rr.*
mop.rr.N mop_rr_t_30 mop_rr_t_27_26 rd rs1 rs2 31=1 29..28=0 25=1 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.rr.N mop.rr.0 rd rs1 rs2 30=0 27=0 26=0 31=1 29..28=0 25=1 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.rr.N mop.rr.1 rd rs1 rs2 30=0 27=0 26=1 31=1 29..28=0 25=1 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.rr.N mop.rr.2 rd rs1 rs2 30=0 27=1 26=0 31=1 29..28=0 25=1 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.rr.N mop.rr.3 rd rs1 rs2 30=0 27=1 26=1 31=1 29..28=0 25=1 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.rr.N mop.rr.4 rd rs1 rs2 30=1 27=0 26=0 31=1 29..28=0 25=1 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.rr.N mop.rr.5 rd rs1 rs2 30=1 27=0 26=1 31=1 29..28=0 25=1 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.rr.N mop.rr.6 rd rs1 rs2 30=1 27=1 26=0 31=1 29..28=0 25=1 14..12=4 6..2=0x1C 1..0=3
$pseudo_op rv_zimop::mop.rr.N mop.rr.7 rd rs1 rs2 30=1 27=1 26=1 31=1 29..28=0 25=1 14..12=4 6..2=0x1C 1..0=3