1 /*********************************************************************/
2 /* Copyright 2009, 2010 The University of Texas at Austin. */
3 /* All rights reserved. */
5 /* Redistribution and use in source and binary forms, with or */
6 /* without modification, are permitted provided that the following */
7 /* conditions are met: */
9 /* 1. Redistributions of source code must retain the above */
10 /* copyright notice, this list of conditions and the following */
13 /* 2. Redistributions in binary form must reproduce the above */
14 /* copyright notice, this list of conditions and the following */
15 /* disclaimer in the documentation and/or other materials */
16 /* provided with the distribution. */
18 /* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */
19 /* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */
20 /* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
21 /* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
22 /* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */
23 /* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
24 /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */
25 /* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */
26 /* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */
27 /* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
28 /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */
29 /* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */
30 /* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
31 /* POSSIBILITY OF SUCH DAMAGE. */
33 /* The views and conclusions contained in the software and */
34 /* documentation are those of the authors and should not be */
35 /* interpreted as representing official policies, either expressed */
36 /* or implied, of The University of Texas at Austin. */
37 /*********************************************************************/
78 #define PREFETCHSIZE 16
79 #define PREFETCHWSIZE 72
83 #define PREFETCHSIZE 16
84 #define PREFETCHWSIZE 72
88 #define PREFETCHSIZE 16
89 #define PREFETCHWSIZE 72
93 #define PREFETCHSIZE 16
94 #define PREFETCHWSIZE 72
98 #define PREFETCHSIZE 16
99 #define PREFETCHWSIZE 72
103 #define PREFETCHSIZE 16
104 #define PREFETCHWSIZE 72
108 #define PREFETCHSIZE 16
109 #define PREFETCHWSIZE 72
113 #define PREFETCHSIZE 16
114 #define PREFETCHWSIZE 72
120 addi SP, SP, -STACKSIZE
134 slwi LDA, LDA, BASE_SHIFT
136 li PREA, PREFETCHSIZE * SIZE
137 li PREB1, (PREFETCHWSIZE + 0) * SIZE
161 LFD c01, 0 * SIZE(AO1)
162 LFD c02, 1 * SIZE(AO1)
163 LFD c03, 2 * SIZE(AO1)
164 LFD c04, 3 * SIZE(AO1)
166 LFD c05, 0 * SIZE(AO2)
167 LFD c06, 1 * SIZE(AO2)
168 LFD c07, 2 * SIZE(AO2)
169 LFD c08, 3 * SIZE(AO2)
171 LFD c09, 0 * SIZE(AO3)
172 LFD c10, 1 * SIZE(AO3)
173 LFD c11, 2 * SIZE(AO3)
174 LFD c12, 3 * SIZE(AO3)
176 LFD c13, 0 * SIZE(AO4)
177 LFD c14, 1 * SIZE(AO4)
178 LFD c15, 2 * SIZE(AO4)
179 LFD c16, 3 * SIZE(AO4)
181 STFD c01, 0 * SIZE(B)
182 STFD c05, 1 * SIZE(B)
183 STFD c09, 2 * SIZE(B)
184 STFD c13, 3 * SIZE(B)
186 STFD c02, 4 * SIZE(B)
187 STFD c06, 5 * SIZE(B)
188 STFD c10, 6 * SIZE(B)
189 STFD c14, 7 * SIZE(B)
191 STFD c03, 8 * SIZE(B)
192 STFD c07, 9 * SIZE(B)
193 STFD c11, 10 * SIZE(B)
194 STFD c15, 11 * SIZE(B)
196 STFD c04, 12 * SIZE(B)
197 STFD c08, 13 * SIZE(B)
198 STFD c12, 14 * SIZE(B)
199 STFD c16, 15 * SIZE(B)
201 #if defined(POWER6) || defined(POWER8)
215 addi AO1, AO1, 4 * SIZE
216 addi AO2, AO2, 4 * SIZE
217 addi AO3, AO3, 4 * SIZE
218 addi AO4, AO4, 4 * SIZE
230 LFD c01, 0 * SIZE(AO1)
231 LFD c05, 0 * SIZE(AO2)
232 LFD c09, 0 * SIZE(AO3)
233 LFD c13, 0 * SIZE(AO4)
235 STFD c01, 0 * SIZE(B)
236 STFD c05, 1 * SIZE(B)
237 STFD c09, 2 * SIZE(B)
238 STFD c13, 3 * SIZE(B)
240 addi AO1, AO1, 1 * SIZE
241 addi AO2, AO2, 1 * SIZE
242 addi AO3, AO3, 1 * SIZE
243 addi AO4, AO4, 1 * SIZE
267 LFD c01, 0 * SIZE(AO1)
268 LFD c02, 1 * SIZE(AO1)
269 LFD c03, 2 * SIZE(AO1)
270 LFD c04, 3 * SIZE(AO1)
272 LFD c05, 0 * SIZE(AO2)
273 LFD c06, 1 * SIZE(AO2)
274 LFD c07, 2 * SIZE(AO2)
275 LFD c08, 3 * SIZE(AO2)
277 STFD c01, 0 * SIZE(B)
278 STFD c05, 1 * SIZE(B)
279 STFD c02, 2 * SIZE(B)
280 STFD c06, 3 * SIZE(B)
282 STFD c03, 4 * SIZE(B)
283 STFD c07, 5 * SIZE(B)
284 STFD c04, 6 * SIZE(B)
285 STFD c08, 7 * SIZE(B)
287 addi AO1, AO1, 4 * SIZE
288 addi AO2, AO2, 4 * SIZE
300 LFD c01, 0 * SIZE(AO1)
301 LFD c05, 0 * SIZE(AO2)
303 STFD c01, 0 * SIZE(B)
304 STFD c05, 1 * SIZE(B)
306 addi AO1, AO1, 1 * SIZE
307 addi AO2, AO2, 1 * SIZE
324 LFD c01, 0 * SIZE(AO1)
325 LFD c02, 1 * SIZE(AO1)
326 LFD c03, 2 * SIZE(AO1)
327 LFD c04, 3 * SIZE(AO1)
329 STFD c01, 0 * SIZE(B)
330 STFD c02, 1 * SIZE(B)
331 STFD c03, 2 * SIZE(B)
332 STFD c04, 3 * SIZE(B)
334 addi AO1, AO1, 4 * SIZE
346 LFD c01, 0 * SIZE(AO1)
348 STFD c01, 0 * SIZE(B)
350 addi AO1, AO1, 1 * SIZE
368 addi SP, SP, STACKSIZE