whoops realised that postinc-shifted ld/st is 9-bit XO
[libreriscv.git] / openpower / sv / rfc / ls012 / optable.csv
1 op, rfc, priority, cost, SVP64, group, PO1, page, regs
2 # LD/ST-Postincrement
3 lbzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
4 lbzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
5 lhzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
6 lhzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
7 lhaup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
8 lhaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
9 lwzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
10 lwzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
11 lwaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
12 ldup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
13 ldupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
14 stbup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
15 stbupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
16 sthup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
17 sthupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
18 stwup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
19 stwupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
20 stdup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
21 stdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
22 # FP LD/ST-Postincrement
23 lfdu, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
24 lfsup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
25 lfdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
26 lsdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
27 stfdup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
28 stfsup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
29 stfdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
30 stfsupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
31 # LD/ST-Shifted-Postincrement
32 lbzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W
33 lhzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W
34 lhauspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W
35 lwzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W
36 lwauspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W
37 lduspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W
38 stbuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W
39 sthuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W
40 stwuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W
41 stduspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W
42 # FP LD/ST-Shifted-Postincrement
43 lfdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W
44 lsdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W
45 stfdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W
46 stfsupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W
47 # LD/ST-Index-Shifted (w/Update)
48 lbzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
49 lbzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W
50 lhzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
51 lhzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W
52 lhasx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
53 lhausx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W
54 lwzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
55 lwzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W
56 lwasx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
57 lwausx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W
58 ldsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
59 ldusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W
60 lhbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
61 lwbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
62 ldbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
63 stbsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R
64 stbusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W
65 sthsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R
66 sthusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W
67 stwsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R
68 stwusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W
69 stdsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R
70 stdusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W
71 sthbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R
72 stwbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R
73 stdbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R
74 # FP LD/ST-Index-Shifted (w/Update)
75 lfsxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
76 lfsuxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
77 lfdxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
78 lfduxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
79 lfiwaxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
80 lfiwzxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W
81 stfsxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R
82 stfsuxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W
83 stfdxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R
84 stfduxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W
85 stfiwxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R
86 # Bitmanip LUT2/3 operations. high cost high reward
87 grevlut, TBD, high, 3, yes, TBD, no, sv/bitmanip, 2R1W
88 grevluti, TBD, high, 3, yes, TBD, yes, sv/bitmanip, 1R1W
89 ternlogi, ls007, high, 2, yes, TBD, yes, sv/bitmanip, 3R1W1w
90 crternlogi, ls007, high, 5, yes, TBD, yes, sv/bitmanip, 3r1w
91 binlut, ls007, high, 6, yes, TBD, no, sv/bitmanip, 3R1W
92 crbinlut, ls007, high, 5, yes, TBD, no, sv/bitmanip, 3r1w
93 # Float-Load-Immediate (always saves one LD L1/2/3 D-Cache op)
94 fmvis, ls002, high, 5, yes, TBD, no, sv/bitmanip, 1W
95 fishmv, ls002, high, 5, yes, TBD, no, sv/bitmanip, 1R1W
96 # Shift-and-Add (mitigates LD-ST-Shift; Cryptography e.g. twofish)
97 shadd, ls003, med, 7, yes, TBD, no, sv/bitmanip, 2R1W1w
98 shadduw, ls003, med, 7, yes, TBD, no, sv/bitmanip, 2R1W1w
99 shaddw, ls003, med, 7, yes, TBD, no, sv/bitmanip, 2R1W1w
100 # Audio-Video
101 absdu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w
102 avgadd, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w
103 minmax, TBD, high, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w
104 absaccs, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 3R1W1w
105 absaccu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 3R1W1w
106 # BMI group
107 bmask, TBD, high, 5, yes, TBD, yes, sv/vector_ops, 2R1W1w
108 cprop, TBD, high, 5, yes, TBD, yes, sv/vector_ops, 2R1W1w
109 # SVP64 Management.
110 setvl, ls008, high, 5, no, EXT0xx, yes, sv/setvl, 3R2W
111 svstep, ls008, high, 5, no, EXT0xx, yes, sv/svstep, 1R2W1w
112 svremap, ls009, high, 5, no, EXT0xx, yes, sv/remap, 1R1W
113 svshape, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W
114 svshape2, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W
115 svindex, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W
116 # GPU swizzle
117 mv.swizzle, TBD, TBD, 4, yes, TBD, yes, sv/mv.swizzle, 2R2W
118 fmv.swizzle, TBD, TBD, 4, yes, TBD, yes, sv/mv.swizzle, 2R2W
119 # CR weirds
120 crrweird, TBD, high, 8, yes, TBD, no, sv/cr_int_predication, 1r1W1w
121 mfcrweird, TBD, high, 8, yes, TBD, no, sv/cr_int_predication, 1r1W1w
122 mtcrrweird, TBD, high, 9, yes, TBD, no, sv/cr_int_predication, 1R1r1w
123 mtcrweird, TBD, high, 9, yes, TBD, no, sv/cr_int_predication, 1R1r1w
124 crweirder, TBD, high, 9, yes, TBD, no, sv/cr_int_predication, 2r1w
125 mcrfm, TBD, high, 9, yes, EXT0xx, no, sv/cr_int_predication, 2r1w
126 # fclass (Scalar variant of xvtstdcsp)
127 fptstp(s), TBD, high, 10, yes, EXT0xx, no, sv/fclass, 1R1w
128 # INT<->FP mv
129 fmvfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w
130 fcvtfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w
131 fcvttg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w
132 fcvtstg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w
133 # Big-Integer Chained 3-in 2-out (64-bit Carry)
134 dsld, ls003, high, 5, yes, EXT0xx, no, sv/biginteger, 3R2W1w
135 dsrd, ls003, high, 5, yes, EXT0xx, no, sv/biginteger, 3R2W1w
136 maddedu, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W
137 maddedus, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W
138 divmod2du, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W1w
139 # FP DCT/FFT Butterfly (2/3-in 2-out)
140 ffadd(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w
141 ffsub(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w
142 ffmul(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w
143 ffdiv(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w
144 fdmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w
145 ffmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w
146 ffmsub(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w
147 ffnmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w
148 ffnmsub(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w
149 # Trigonometric (1-arg)
150 fsin(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
151 fcos(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
152 ftan(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
153 fasin(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
154 facos(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
155 fatan(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
156 fsinpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w
157 fcospi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w
158 ftanpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w
159 fasinpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
160 facospi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
161 fatanpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
162 fsinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
163 fcosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
164 ftanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
165 fasinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
166 facosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
167 fatanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
168 # Transcendentals (1-arg)
169 frsqrt(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
170 fcbrt(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
171 frecip(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
172 fexp2m1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
173 flog2p1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
174 fexp2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
175 flog2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
176 fexpm1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
177 flogp1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
178 fexp(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
179 flog(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
180 fexp10m1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
181 flog10p1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
182 fexp10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
183 flog10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
184 # Transcendentals (2-arg)
185 fatan2(s), TBD, med, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
186 fatan2pi(s), TBD, med, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
187 fpow(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
188 fpown(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
189 fpowr(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
190 frootn(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
191 fhypot(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w
192 fminnum08(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
193 fmaxnum08(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
194 fmin19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
195 fmax19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
196 fminnum19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
197 fmaxnum19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
198 fminc(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
199 fmaxc(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
200 fminmagnum08(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
201 fmaxmagnum08(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
202 fminmag19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
203 fmaxmag19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
204 fminmagnum19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
205 fmaxmagnum19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
206 fminmagc(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
207 fmaxmagc(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
208 fmod(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w
209 fremainder(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w