aboutsummaryrefslogtreecommitdiff
path: root/opcodes-v
blob: 8c750f802c282c67b722bf6cf90bf52df5d564ae (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
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Vector loads & stores
vlb.v       vm       vd     rs1 28..26=4 vmimm 24..20=0 14..12=0 6..0=0x07
vlh.v       vm       vd     rs1 28..26=4 vmimm 24..20=0 14..12=5 6..0=0x07
vlw.v       vm       vd     rs1 28..26=4 vmimm 24..20=0 14..12=6 6..0=0x07
vle.v       vm       vd     rs1 28..26=4 vmimm 24..20=0 14..12=7 6..0=0x07
vlbu.v      vm       vd     rs1 28..26=0 vmimm 24..20=0 14..12=0 6..0=0x07
vlhu.v      vm       vd     rs1 28..26=0 vmimm 24..20=0 14..12=5 6..0=0x07
vlwu.v      vm       vd     rs1 28..26=0 vmimm 24..20=0 14..12=6 6..0=0x07

vlsb.v      vm       vd     rs1 28..26=6 vmimm rs2   14..12=0 6..0=0x07
vlsh.v      vm       vd     rs1 28..26=6 vmimm rs2   14..12=5 6..0=0x07
vlsw.v      vm       vd     rs1 28..26=6 vmimm rs2   14..12=6 6..0=0x07
vlse.v      vm       vd     rs1 28..26=6 vmimm rs2   14..12=7 6..0=0x07
vlsbu.v     vm       vd     rs1 28..26=2 vmimm rs2   14..12=0 6..0=0x07
vlshu.v     vm       vd     rs1 28..26=2 vmimm rs2   14..12=5 6..0=0x07
vlswu.v     vm       vd     rs1 28..26=2 vmimm rs2   14..12=6 6..0=0x07

vlxb.v      vm       vd     rs1 28..26=7 vmimm vs2   14..12=0 6..0=0x07
vlxh.v      vm       vd     rs1 28..26=7 vmimm vs2   14..12=5 6..0=0x07
vlxw.v      vm       vd     rs1 28..26=7 vmimm vs2   14..12=6 6..0=0x07
vlxe.v      vm       vd     rs1 28..26=7 vmimm vs2   14..12=7 6..0=0x07
vlxbu.v     vm       vd     rs1 28..26=3 vmimm vs2   14..12=0 6..0=0x07
vlxhu.v     vm       vd     rs1 28..26=3 vmimm vs2   14..12=5 6..0=0x07
vlxwu.v     vm       vd     rs1 28..26=3 vmimm vs2   14..12=6 6..0=0x07

vsb.v       vm       vd     rs1 28..26=0 vmimm 24..20=0 14..12=0 6..0=0x27
vsh.v       vm       vd     rs1 28..26=0 vmimm 24..20=0 14..12=5 6..0=0x27
vsw.v       vm       vd     rs1 28..26=0 vmimm 24..20=0 14..12=6 6..0=0x27
vse.v       vm       vd     rs1 28..26=0 vmimm 24..20=0 14..12=7 6..0=0x27

vssb.v      vm       vd     rs1 28..26=2 vmimm rs2   14..12=0 6..0=0x27
vssh.v      vm       vd     rs1 28..26=2 vmimm rs2   14..12=5 6..0=0x27
vssw.v      vm       vd     rs1 28..26=2 vmimm rs2   14..12=6 6..0=0x27
vsse.v      vm       vd     rs1 28..26=2 vmimm rs2   14..12=7 6..0=0x27

vsxb.v      vm       vd     rs1 28..26=3 vmimm vs2   14..12=0 6..0=0x27
vsxh.v      vm       vd     rs1 28..26=3 vmimm vs2   14..12=5 6..0=0x27
vsxw.v      vm       vd     rs1 28..26=3 vmimm vs2   14..12=6 6..0=0x27
vsxe.v      vm       vd     rs1 28..26=3 vmimm vs2   14..12=7 6..0=0x27
vsuxb.v     vm       vd     rs1 28..26=7 vmimm vs2   14..12=0 6..0=0x27
vsuxh.v     vm       vd     rs1 28..26=7 vmimm vs2   14..12=5 6..0=0x27
vsuxw.v     vm       vd     rs1 28..26=7 vmimm vs2   14..12=6 6..0=0x27
vsuxe.v     vm       vd     rs1 28..26=7 vmimm vs2   14..12=7 6..0=0x27

# Vector AMOs
vamoadd.w   vm   vwd vd rs1 vs2 31..29=0 28..27=0 14..12=6 6..0=0x2F
vamoxor.w   vm   vwd vd rs1 vs2 31..29=1 28..27=0 14..12=6 6..0=0x2F
vamoor.w    vm   vwd vd rs1 vs2 31..29=2 28..27=0 14..12=6 6..0=0x2F
vamoand.w   vm   vwd vd rs1 vs2 31..29=3 28..27=0 14..12=6 6..0=0x2F
vamomin.w   vm   vwd vd rs1 vs2 31..29=4 28..27=0 14..12=6 6..0=0x2F
vamomax.w   vm   vwd vd rs1 vs2 31..29=5 28..27=0 14..12=6 6..0=0x2F
vamominu.w  vm   vwd vd rs1 vs2 31..29=6 28..27=0 14..12=6 6..0=0x2F
vamomaxu.w  vm   vwd vd rs1 vs2 31..29=7 28..27=0 14..12=6 6..0=0x2F
vamoswap.w  vm   vwd vd rs1 vs2 31..29=0 28..27=1 14..12=6 6..0=0x2F

vamoadd.d   vm   vwd vd rs1 vs2 31..29=0 28..27=0 14..12=7 6..0=0x2F
vamoxor.d   vm   vwd vd rs1 vs2 31..29=1 28..27=0 14..12=7 6..0=0x2F
vamoor.d    vm   vwd vd rs1 vs2 31..29=2 28..27=0 14..12=7 6..0=0x2F
vamoand.d   vm   vwd vd rs1 vs2 31..29=3 28..27=0 14..12=7 6..0=0x2F
vamomin.d   vm   vwd vd rs1 vs2 31..29=4 28..27=0 14..12=7 6..0=0x2F
vamomax.d   vm   vwd vd rs1 vs2 31..29=5 28..27=0 14..12=7 6..0=0x2F
vamominu.d  vm   vwd vd rs1 vs2 31..29=6 28..27=0 14..12=7 6..0=0x2F
vamomaxu.d  vm   vwd vd rs1 vs2 31..29=7 28..27=0 14..12=7 6..0=0x2F
vamoswap.d  vm   vwd vd rs1 vs2 31..29=0 28..27=1 14..12=7 6..0=0x2F

vamoadd.q   vm   vwd vd rs1 vs2 31..29=0 28..27=0 14..12=0 6..0=0x2F
vamoxor.q   vm   vwd vd rs1 vs2 31..29=1 28..27=0 14..12=0 6..0=0x2F
vamoor.q    vm   vwd vd rs1 vs2 31..29=2 28..27=0 14..12=0 6..0=0x2F
vamoand.q   vm   vwd vd rs1 vs2 31..29=3 28..27=0 14..12=0 6..0=0x2F
vamomin.q   vm   vwd vd rs1 vs2 31..29=4 28..27=0 14..12=0 6..0=0x2F
vamomax.q   vm   vwd vd rs1 vs2 31..29=5 28..27=0 14..12=0 6..0=0x2F
vamominu.q  vm   vwd vd rs1 vs2 31..29=6 28..27=0 14..12=0 6..0=0x2F
vamomaxu.q  vm   vwd vd rs1 vs2 31..29=7 28..27=0 14..12=0 6..0=0x2F
vamoswap.q  vm   vwd vd rs1 vs2 31..29=0 28..27=1 14..12=0 6..0=0x2F

# Vector arithmetic with OPI funct6 field
vadd.vv    vm vd vs1  vs2 14..12=2  31..26=0x00      6..0=0x57
vadd.vs    vm vd rs1  vs2 14..12=0  31..26=0x00      6..0=0x57
vadd.vi    vm vd vimm vs2 14..12=1  31..26=0x00      6..0=0x57
vwadd.vv   vm vd vs1  vs2 14..12=2  31..26=0x04      6..0=0x57
vwadd.vs   vm vd rs1  vs2 14..12=0  31..26=0x04      6..0=0x57
vwadd.vi   vm vd vimm vs2 14..12=1  31..26=0x04      6..0=0x57
vnsrl.vv   vm vd vs1  vs2 14..12=2  31..26=0x18      6..0=0x57
vnsrl.vs   vm vd rs1  vs2 14..12=0  31..26=0x18      6..0=0x57
vnsrl.vi   vm vd vimm vs2 14..12=1  31..26=0x18      6..0=0x57
# Vector arithmetic with OPM funct6 field
vmul.vv    vm vd vs1  vs2 14..12=6  31..26=0x00      6..0=0x57
vmul.vs    vm vd rs1  vs2 14..12=4  31..26=0x00      6..0=0x57
vmadd.vv   vm vd vs1  vs2 14..12=6  31..26=0x09      6..0=0x57
vmadd.vs   vm vd rs1  vs2 14..12=4  31..26=0x09      6..0=0x57
# Vector arithmetic with OPF funct6 field
vfadd.vv   vm vd vs1  vs2 14..12=3  31..26=0x00      6..0=0x57
vfadd.vs   vm vd rs1  vs2 14..12=7  31..26=0x00      6..0=0x57
# Vector config
vsetvli    rd rs1 vcimmlo 14..12=5 25=1 vcimmhi      6..0=0x57
vsetvl     rd rs1 rs2     14..12=5 25=0 31..26=0x00  6..0=0x57