bug 1034: making room for crfbinlog/crfternlogi/crbinlog/crternlogi
[libreriscv.git] / openpower / sv / draft_opcode_tables.mdwn
1 # Draft Opcode tables
2
3 [[sv/draft_opcode_tables]]
4
5 two major opcodes are needed
6
7 ternlog has its own major opcode
8
9 | 29.30 |31| name | Form |
10 | ------ |--| --------- | ---- |
11 | 0 0 |Rc| ternlogi | TLI-Form |
12 | 0 1 |0 | crfternlogi | TLI-Form |
13 | 0 1 |1 | crternlogi | TLI-Form |
14 | 1 iv |1 | grevlogi | TLI-Form |
15 |0nn1 0 |0 | madd/sub | A-Form |
16 | 1 1 |0 | rsvd | A-Form |
17
18 PO5 (temporary)
19
20 | 0.5|6.10|11.15|16.20 |21..25 | 26....30 |31| name | Form |
21 | -- | -- | --- | --- | ----- | -------- |--| ------ | -------- |
22 | NN | RT | RA | RB | RC | / 00 10 |0 | maddsubrs | A-Form |
23 | NN | RT | RA | RB | RC | / 01 10 |0 | maddrs | A-Form |
24 | NN | RT | RA | RB | RC | / 10 10 |0 | msubrs | A-Form |
25
26
27 2nd major opcode for other bitmanip: minor opcode allocation
28
29 | 28.30 |31| name |
30 | ------ |--| --------- |
31 | -00 |0 | xpermi |
32 | -00 |1 | binary lut |
33 | -01 |0 | grevlog |
34 | -01 |1 | swizzle mv/fmv |
35 | 010 |Rc| bitmask |
36 | 011 | | SVP64 |
37 | 110 |Rc| 1/2-op |
38 | 111 | | bmrevi |
39
40 `minmax` is allocated to PO 19 XO `000011`
41
42 1-op and variants
43
44 | dest | src1 | subop | op |
45 | ---- | ---- | ----- | -------- |
46 | RT | RA | .. | bmatflip |
47
48 2-op and variants
49
50 | dest | src1 | src2 | subop | op |
51 | ---- | ---- | ---- | ----- | -------- |
52 | RT | RA | RB | or | bmatflip |
53 | RT | RA | RB | xor | bmatflip |
54 | RT | RA | RB | | grev |
55 | RT | RA | RB | | clmul\* |
56 | RT | RA | RB | | gorc |
57 | RT | RA | RB | shuf | shuffle |
58 | RT | RA | RB | unshuf| shuffle |
59 | RT | RA | RB | width | xperm |
60 | RT | RA | RB | MMM | `minmax` |
61 | RT | RA | RB | | av abs avgadd |
62 | RT | RA | RB | type | vmask ops |
63 | RT | RA | RB | type | abs accumulate (overwrite) |
64
65 3 ops
66
67 * grevlog[w]
68 * GF mul-add
69 * bitmask-reverse
70
71 TODO: convert all instructions to use RT and not RS
72
73 | 0.5|6.10|11.15|16.20 |21..25 | 26....30 |31| name | Form |
74 | -- | -- | --- | --- | ----- | -------- |--| ------ | -------- |
75 | NN | RT | RA |it/im57|im0-4 | 0 00 00 |0 | xpermi | TODO-Form |
76 | NN | | | | | - 10 00 |0 | svshape3 | rsvd |
77 | NN | | | | | - 11 00 |0 | svshape4 | rsvd |
78 | NN | RT | RA | RB | RC | nh 00 00 |1 | binlut | VA-Form |
79 | NN | RT | RA | RB | /BFA/ | 0 01 00 |1 | bincrflut | VA-Form |
80 | NN | | | | | 1 01 00 |1 | svindex | SVI-Form |
81 | NN | RT | RA | RB | mode | L 10 00 |1 | bmask | BM2-Form |
82 | NN | | | | | 0 11 00 |1 | svshape | SVM-Form |
83 | NN | | | | | 1 11 00 |1 | svremap | SVRM-Form |
84 | NN | RT | RA | RB | im0-4 | im5-7 01 |0 | grevlog | TLI-Form |
85 | NN | | | | | - -- 01 |1 | swizzle mv/f | TODO |
86 | NN | RT | RA | RB | RC | mode 010 |Rc| bitmask\* | VA2-Form |
87 | NN |FRS | d1 | d0 | d0 | 00 011 |d2| fmvis | DX-Form |
88 | NN |FRS | d1 | d0 | d0 | 01 011 |d2| fishmv | DX-Form |
89 | NN | | | | | 10 011 |Rc| svstep | SVL-Form |
90 | NN | | | | | 11 011 |Rc| setvl | SVL-Form |
91 | NN | | | | | ---- 110 | | 1/2 ops | other table [1] |
92 | NN | RT | RA | RB | RC | 11 110 |Rc| bmrev | VA2-Form |
93 | NN | RT | RA | RB | sh0-4 | sh5 1 111 |Rc| bmrevi | MDS-Form |
94
95 [1] except bmrev
96
97 ops (note that av avg and abs as well as vec scalar mask
98 are included here [[sv/vector_ops]], and
99 the [[sv/av_opcodes]])
100
101 | 0.5|6.10|11.15|16.20| 21 | 22.23 | 24....30 |31| name | Form |
102 | -- | -- | --- | --- | -- | ----- | -------- |--| ---- | ------- |
103 | NN | RS | me | sh | SH | ME 0 | nn00 110 |Rc| bmopsi | BM-Form |
104 | NN | RS | RA | sh | SH | 0 1 | nn00 110 |Rc| bmopsi | XB-Form |
105 | NN | RS | RA |im04 | im5| 1 1 | im67 00 110 |Rc| bmatxori | TODO |
106 | NN | RT | RA | RB | 1 | 00 | 0001 110 |Rc| cldiv | X-Form |
107 | NN | RT | RA | RB | 1 | 01 | 0001 110 |Rc| clmod | X-Form |
108 | NN | RT | RA | | 1 | 10 | 0001 110 |Rc| clmulh | X-Form |
109 | NN | RT | RA | RB | 1 | 11 | 0001 110 |Rc| clmul | X-Form |
110 | NN | RT | RA | RB | 0 | 00 | 0001 110 |Rc| rsvd | |
111 | NN | RT | RA | RB | 0 | 01 | 0001 110 |Rc| rsvd | |
112 | NN | RT | RA | RB | 0 | 10 | 0001 110 |Rc| rsvd | |
113 | NN | RT | RA | RB | 0 | 11 | 0001 110 |Rc| vec cprop | X-Form |
114 | NN | | | | | 00 | 0101 110 |0 | crfbinlog | CRB-Form|
115 | NN | BT | BA |BFB//| 0 | 00 | 0101 110 |1 | crbinlog | X-Form |
116 | NN | | | | 1 | 00 | 0101 110 |1 | rsvd | |
117 | NN | | | | | 10 | 0101 110 |Rc| rsvd | |
118 | NN | RT | RA | RB | sm0| sm1 1 | 0101 110 |Rc| shaddw | X-Form |
119 | NN | | | | 0 | | 1001 110 |Rc| rsvd | |
120 | NN | RT | RA | RB | 1 | 00 | 1001 110 |Rc| av abss | X-Form |
121 | NN | RT | RA | RB | 1 | 01 | 1001 110 |Rc| av absu | X-Form |
122 | NN | RT | RA | RB | 1 | 10 | 1001 110 |Rc| av avgadd | X-Form |
123 | NN | RT | RA | RB | 1 | 11 | 1001 110 |Rc| grevlutr | X-Form |
124 | NN | RT | RA | RB | sm0| sm1 0 | 1101 110 |Rc| shadd | X-Form |
125 | NN | RT | RA | RB | sm0| sm1 1 | 1101 110 |Rc| shadduw | X-Form |
126 | NN | RT | RA | RB | 0 | 00 | 0010 110 |Rc| rsvd | |
127 | NN | RS | RA | sh | SH | 00 | 1010 110 |Rc| rsvd | |
128 | NN | RT | RA | RB | 0 | 00 | 0110 110 |Rc| rsvd | |
129 | NN | RS | RA | SH | 0 | 00 | 1110 110 |Rc| rsvd | |
130 | NN | RT | RA | RB | 1 | 00 | 1110 110 |Rc| absds | X-Form |
131 | NN | RT | RA | RB | 0 | 01 | 0010 110 |Rc| rsvd | |
132 | NN | RT | RA | RB | 1 | 01 | 0010 110 |Rc| clmulr | X-Form |
133 | NN | RS | RA | sh | SH | 01 | 1010 110 |Rc| rsvd | |
134 | NN | RT | RA | RB | 0 | 01 | 0110 110 |Rc| rsvd | |
135 | NN | RS | RA | SH | 0 | 01 | 1110 110 |Rc| rsvd | |
136 | NN | RT | RA | RB | 1 | 01 | 1110 110 |Rc| absdu | X-Form |
137 | NN | RS | RA | RB | 0 | 10 | 0010 110 |Rc| bmator | X-Form |
138 | NN | RS | RA | RB | 0 | 10 | 0110 110 |Rc| bmatand | X-Form |
139 | NN | RS | RA | RB | 0 | 10 | 1010 110 |Rc| bmatxor | X-Form |
140 | NN | RS | RA | | 0 | 10 | 1110 110 | | bmatflip | X-Form |
141 | NN | RT | RA | RB | 1 | 10 | 0010 110 |Rc| xpermn | X-Form |
142 | NN | RT | RA | RB | 1 | 10 | 0110 110 |Rc| xpermb | X-Form |
143 | NN | RT | RA | RB | 1 | 10 | 1010 110 |Rc| xpermh | X-Form |
144 | NN | RT | RA | RB | 1 | 10 | 1110 110 |Rc| xpermw | X-Form |
145 | NN | RT | RA | RB | 0 | 11 | 1110 110 |Rc| absdacs | X-Form |
146 | NN | RT | RA | RB | 1 | 11 | 1110 110 |Rc| absdacu | X-Form |
147 | NN | | | | | | --11 110 |Rc| bmrev | VA2-Form |
148