]> git.sesse.net Git - x264/blob - common/sparc/pixel.asm
Add support for arbitrary user SEIs
[x264] / common / sparc / pixel.asm
1 /*****************************************************************************
2  * pixel.asm: sparc pixel metrics
3  *****************************************************************************
4  * Copyright (C) 2005-2010 x264 project
5  *
6  * Authors: Phil Jensen <philj@csufresno.edu>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111, USA.
21  *
22  * This program is also available under a commercial proprietary license.
23  * For more information, contact us at licensing@x264.com.
24  *****************************************************************************/
25
26 ! VIS optimized SAD for UltraSPARC
27
28 .text
29 .global x264_pixel_sad_8x8_vis
30 x264_pixel_sad_8x8_vis:
31         save %sp, -120, %sp
32
33         fzero %f12
34
35         alignaddr %i0, %g0, %l0
36         ldd [%l0], %f0
37         ldd [%l0+8], %f2
38         faligndata %f0, %f2, %f4
39
40         alignaddr %i2, %g0, %l2
41         ldd [%l2], %f6
42         ldd [%l2+8], %f8
43         faligndata %f6, %f8, %f10
44
45         add %i0, %i1, %i0
46         add %i2, %i3, %i2
47         pdist %f4, %f10, %f12
48
49         alignaddr %i0, %g0, %l0
50         ldd [%l0], %f0
51         ldd [%l0+8], %f2
52         faligndata %f0, %f2, %f4
53
54         alignaddr %i2, %g0, %l2
55         ldd [%l2], %f6
56         ldd [%l2+8], %f8
57         faligndata %f6, %f8, %f10
58
59         add %i0, %i1, %i0
60         add %i2, %i3, %i2
61         pdist %f4, %f10, %f12
62
63         alignaddr %i0, %g0, %l0
64         ldd [%l0], %f0
65         ldd [%l0+8], %f2
66         faligndata %f0, %f2, %f4
67
68         alignaddr %i2, %g0, %l2
69         ldd [%l2], %f6
70         ldd [%l2+8], %f8
71         faligndata %f6, %f8, %f10
72
73         add %i0, %i1, %i0
74         add %i2, %i3, %i2
75         pdist %f4, %f10, %f12
76
77         alignaddr %i0, %g0, %l0
78         ldd [%l0], %f0
79         ldd [%l0+8], %f2
80         faligndata %f0, %f2, %f4
81
82         alignaddr %i2, %g0, %l2
83         ldd [%l2], %f6
84         ldd [%l2+8], %f8
85         faligndata %f6, %f8, %f10
86
87         add %i0, %i1, %i0
88         add %i2, %i3, %i2
89         pdist %f4, %f10, %f12
90
91         alignaddr %i0, %g0, %l0
92         ldd [%l0], %f0
93         ldd [%l0+8], %f2
94         faligndata %f0, %f2, %f4
95
96         alignaddr %i2, %g0, %l2
97         ldd [%l2], %f6
98         ldd [%l2+8], %f8
99         faligndata %f6, %f8, %f10
100
101         add %i0, %i1, %i0
102         add %i2, %i3, %i2
103         pdist %f4, %f10, %f12
104
105         alignaddr %i0, %g0, %l0
106         ldd [%l0], %f0
107         ldd [%l0+8], %f2
108         faligndata %f0, %f2, %f4
109
110         alignaddr %i2, %g0, %l2
111         ldd [%l2], %f6
112         ldd [%l2+8], %f8
113         faligndata %f6, %f8, %f10
114
115         add %i0, %i1, %i0
116         add %i2, %i3, %i2
117         pdist %f4, %f10, %f12
118
119         alignaddr %i0, %g0, %l0
120         ldd [%l0], %f0
121         ldd [%l0+8], %f2
122         faligndata %f0, %f2, %f4
123
124         alignaddr %i2, %g0, %l2
125         ldd [%l2], %f6
126         ldd [%l2+8], %f8
127         faligndata %f6, %f8, %f10
128
129         add %i0, %i1, %i0
130         add %i2, %i3, %i2
131         pdist %f4, %f10, %f12
132
133         alignaddr %i0, %g0, %l0
134         ldd [%l0], %f0
135         ldd [%l0+8], %f2
136         faligndata %f0, %f2, %f4
137
138         alignaddr %i2, %g0, %l2
139         ldd [%l2], %f6
140         ldd [%l2+8], %f8
141         faligndata %f6, %f8, %f10
142
143         add %i0, %i1, %i0
144         add %i2, %i3, %i2
145         pdist %f4, %f10, %f12
146
147         std %f12, [%fp-24]
148         ld [%fp-20], %i0
149
150         ret
151         restore
152
153 .global x264_pixel_sad_8x16_vis
154 x264_pixel_sad_8x16_vis:
155         save %sp, -120, %sp
156
157         fzero %f12
158
159         alignaddr %i0, %g0, %l0
160         ldd [%l0], %f0
161         ldd [%l0+8], %f2
162         faligndata %f0, %f2, %f4
163
164         alignaddr %i2, %g0, %l2
165         ldd [%l2], %f6
166         ldd [%l2+8], %f8
167         faligndata %f6, %f8, %f10
168
169         add %i0, %i1, %i0
170         add %i2, %i3, %i2
171         pdist %f4, %f10, %f12
172
173         alignaddr %i0, %g0, %l0
174         ldd [%l0], %f0
175         ldd [%l0+8], %f2
176         faligndata %f0, %f2, %f4
177
178         alignaddr %i2, %g0, %l2
179         ldd [%l2], %f6
180         ldd [%l2+8], %f8
181         faligndata %f6, %f8, %f10
182
183         add %i0, %i1, %i0
184         add %i2, %i3, %i2
185         pdist %f4, %f10, %f12
186
187         alignaddr %i0, %g0, %l0
188         ldd [%l0], %f0
189         ldd [%l0+8], %f2
190         faligndata %f0, %f2, %f4
191
192         alignaddr %i2, %g0, %l2
193         ldd [%l2], %f6
194         ldd [%l2+8], %f8
195         faligndata %f6, %f8, %f10
196
197         add %i0, %i1, %i0
198         add %i2, %i3, %i2
199         pdist %f4, %f10, %f12
200
201         alignaddr %i0, %g0, %l0
202         ldd [%l0], %f0
203         ldd [%l0+8], %f2
204         faligndata %f0, %f2, %f4
205
206         alignaddr %i2, %g0, %l2
207         ldd [%l2], %f6
208         ldd [%l2+8], %f8
209         faligndata %f6, %f8, %f10
210
211         add %i0, %i1, %i0
212         add %i2, %i3, %i2
213         pdist %f4, %f10, %f12
214
215         alignaddr %i0, %g0, %l0
216         ldd [%l0], %f0
217         ldd [%l0+8], %f2
218         faligndata %f0, %f2, %f4
219
220         alignaddr %i2, %g0, %l2
221         ldd [%l2], %f6
222         ldd [%l2+8], %f8
223         faligndata %f6, %f8, %f10
224
225         add %i0, %i1, %i0
226         add %i2, %i3, %i2
227         pdist %f4, %f10, %f12
228
229         alignaddr %i0, %g0, %l0
230         ldd [%l0], %f0
231         ldd [%l0+8], %f2
232         faligndata %f0, %f2, %f4
233
234         alignaddr %i2, %g0, %l2
235         ldd [%l2], %f6
236         ldd [%l2+8], %f8
237         faligndata %f6, %f8, %f10
238
239         add %i0, %i1, %i0
240         add %i2, %i3, %i2
241         pdist %f4, %f10, %f12
242
243         alignaddr %i0, %g0, %l0
244         ldd [%l0], %f0
245         ldd [%l0+8], %f2
246         faligndata %f0, %f2, %f4
247
248         alignaddr %i2, %g0, %l2
249         ldd [%l2], %f6
250         ldd [%l2+8], %f8
251         faligndata %f6, %f8, %f10
252
253         add %i0, %i1, %i0
254         add %i2, %i3, %i2
255         pdist %f4, %f10, %f12
256
257         alignaddr %i0, %g0, %l0
258         ldd [%l0], %f0
259         ldd [%l0+8], %f2
260         faligndata %f0, %f2, %f4
261
262         alignaddr %i2, %g0, %l2
263         ldd [%l2], %f6
264         ldd [%l2+8], %f8
265         faligndata %f6, %f8, %f10
266
267         add %i0, %i1, %i0
268         add %i2, %i3, %i2
269         pdist %f4, %f10, %f12
270
271         alignaddr %i0, %g0, %l0
272         ldd [%l0], %f0
273         ldd [%l0+8], %f2
274         faligndata %f0, %f2, %f4
275
276         alignaddr %i2, %g0, %l2
277         ldd [%l2], %f6
278         ldd [%l2+8], %f8
279         faligndata %f6, %f8, %f10
280
281         add %i0, %i1, %i0
282         add %i2, %i3, %i2
283         pdist %f4, %f10, %f12
284
285         alignaddr %i0, %g0, %l0
286         ldd [%l0], %f0
287         ldd [%l0+8], %f2
288         faligndata %f0, %f2, %f4
289
290         alignaddr %i2, %g0, %l2
291         ldd [%l2], %f6
292         ldd [%l2+8], %f8
293         faligndata %f6, %f8, %f10
294
295         add %i0, %i1, %i0
296         add %i2, %i3, %i2
297         pdist %f4, %f10, %f12
298
299         alignaddr %i0, %g0, %l0
300         ldd [%l0], %f0
301         ldd [%l0+8], %f2
302         faligndata %f0, %f2, %f4
303
304         alignaddr %i2, %g0, %l2
305         ldd [%l2], %f6
306         ldd [%l2+8], %f8
307         faligndata %f6, %f8, %f10
308
309         add %i0, %i1, %i0
310         add %i2, %i3, %i2
311         pdist %f4, %f10, %f12
312
313         alignaddr %i0, %g0, %l0
314         ldd [%l0], %f0
315         ldd [%l0+8], %f2
316         faligndata %f0, %f2, %f4
317
318         alignaddr %i2, %g0, %l2
319         ldd [%l2], %f6
320         ldd [%l2+8], %f8
321         faligndata %f6, %f8, %f10
322
323         add %i0, %i1, %i0
324         add %i2, %i3, %i2
325         pdist %f4, %f10, %f12
326
327         alignaddr %i0, %g0, %l0
328         ldd [%l0], %f0
329         ldd [%l0+8], %f2
330         faligndata %f0, %f2, %f4
331
332         alignaddr %i2, %g0, %l2
333         ldd [%l2], %f6
334         ldd [%l2+8], %f8
335         faligndata %f6, %f8, %f10
336
337         add %i0, %i1, %i0
338         add %i2, %i3, %i2
339         pdist %f4, %f10, %f12
340
341         alignaddr %i0, %g0, %l0
342         ldd [%l0], %f0
343         ldd [%l0+8], %f2
344         faligndata %f0, %f2, %f4
345
346         alignaddr %i2, %g0, %l2
347         ldd [%l2], %f6
348         ldd [%l2+8], %f8
349         faligndata %f6, %f8, %f10
350
351         add %i0, %i1, %i0
352         add %i2, %i3, %i2
353         pdist %f4, %f10, %f12
354
355         alignaddr %i0, %g0, %l0
356         ldd [%l0], %f0
357         ldd [%l0+8], %f2
358         faligndata %f0, %f2, %f4
359
360         alignaddr %i2, %g0, %l2
361         ldd [%l2], %f6
362         ldd [%l2+8], %f8
363         faligndata %f6, %f8, %f10
364
365         add %i0, %i1, %i0
366         add %i2, %i3, %i2
367         pdist %f4, %f10, %f12
368
369         alignaddr %i0, %g0, %l0
370         ldd [%l0], %f0
371         ldd [%l0+8], %f2
372         faligndata %f0, %f2, %f4
373
374         alignaddr %i2, %g0, %l2
375         ldd [%l2], %f6
376         ldd [%l2+8], %f8
377         faligndata %f6, %f8, %f10
378
379         add %i0, %i1, %i0
380         add %i2, %i3, %i2
381         pdist %f4, %f10, %f12
382
383         std %f12, [%fp-24]
384         ld [%fp-20], %i0
385
386         ret
387         restore
388
389 .global x264_pixel_sad_16x8_vis
390 x264_pixel_sad_16x8_vis:
391         save %sp, -120, %sp
392
393         fzero %f12                      ! zero out the accumulator used for pdist
394
395         sub %i1, 8, %i1                 ! reduce stride by 8, since we are moving forward 8 each block
396         sub %i3, 8, %i3                 ! same here, reduce stride by 8
397
398         alignaddr %i0, %g0, %l0 
399         ldd [%l0], %f0
400         ldd [%l0+8], %f2
401         faligndata %f0, %f2, %f4
402
403         alignaddr %i2, %g0, %l2
404         ldd [%l2], %f6
405         ldd [%l2+8], %f8
406         faligndata %f6, %f8, %f10
407
408         add %i0, 8, %i0
409         add %i2, 8, %i2
410         pdist %f4, %f10, %f12
411
412         alignaddr %i0, %g0, %l0 
413         ldd [%l0], %f0
414         ldd [%l0+8], %f2
415         faligndata %f0, %f2, %f4
416
417         alignaddr %i2, %g0, %l2
418         ldd [%l2], %f6
419         ldd [%l2+8], %f8
420         faligndata %f6, %f8, %f10
421
422         add %i0, %i1, %i0
423         add %i2, %i3, %i2
424         pdist %f4, %f10, %f12
425
426         alignaddr %i0, %g0, %l0 
427         ldd [%l0], %f0
428         ldd [%l0+8], %f2
429         faligndata %f0, %f2, %f4
430
431         alignaddr %i2, %g0, %l2
432         ldd [%l2], %f6
433         ldd [%l2+8], %f8
434         faligndata %f6, %f8, %f10
435
436         add %i0, 8, %i0
437         add %i2, 8, %i2
438         pdist %f4, %f10, %f12
439
440         alignaddr %i0, %g0, %l0 
441         ldd [%l0], %f0
442         ldd [%l0+8], %f2
443         faligndata %f0, %f2, %f4
444
445         alignaddr %i2, %g0, %l2
446         ldd [%l2], %f6
447         ldd [%l2+8], %f8
448         faligndata %f6, %f8, %f10
449
450         add %i0, %i1, %i0
451         add %i2, %i3, %i2
452         pdist %f4, %f10, %f12
453
454         alignaddr %i0, %g0, %l0 
455         ldd [%l0], %f0
456         ldd [%l0+8], %f2
457         faligndata %f0, %f2, %f4
458
459         alignaddr %i2, %g0, %l2
460         ldd [%l2], %f6
461         ldd [%l2+8], %f8
462         faligndata %f6, %f8, %f10
463
464         add %i0, 8, %i0
465         add %i2, 8, %i2
466         pdist %f4, %f10, %f12
467
468         alignaddr %i0, %g0, %l0 
469         ldd [%l0], %f0
470         ldd [%l0+8], %f2
471         faligndata %f0, %f2, %f4
472
473         alignaddr %i2, %g0, %l2
474         ldd [%l2], %f6
475         ldd [%l2+8], %f8
476         faligndata %f6, %f8, %f10
477
478         add %i0, %i1, %i0
479         add %i2, %i3, %i2
480         pdist %f4, %f10, %f12
481
482         alignaddr %i0, %g0, %l0 
483         ldd [%l0], %f0
484         ldd [%l0+8], %f2
485         faligndata %f0, %f2, %f4
486
487         alignaddr %i2, %g0, %l2
488         ldd [%l2], %f6
489         ldd [%l2+8], %f8
490         faligndata %f6, %f8, %f10
491
492         add %i0, 8, %i0
493         add %i2, 8, %i2
494         pdist %f4, %f10, %f12
495
496         alignaddr %i0, %g0, %l0 
497         ldd [%l0], %f0
498         ldd [%l0+8], %f2
499         faligndata %f0, %f2, %f4
500
501         alignaddr %i2, %g0, %l2
502         ldd [%l2], %f6
503         ldd [%l2+8], %f8
504         faligndata %f6, %f8, %f10
505
506         add %i0, %i1, %i0
507         add %i2, %i3, %i2
508         pdist %f4, %f10, %f12
509
510         alignaddr %i0, %g0, %l0 
511         ldd [%l0], %f0
512         ldd [%l0+8], %f2
513         faligndata %f0, %f2, %f4
514
515         alignaddr %i2, %g0, %l2
516         ldd [%l2], %f6
517         ldd [%l2+8], %f8
518         faligndata %f6, %f8, %f10
519
520         add %i0, 8, %i0
521         add %i2, 8, %i2
522         pdist %f4, %f10, %f12
523
524         alignaddr %i0, %g0, %l0 
525         ldd [%l0], %f0
526         ldd [%l0+8], %f2
527         faligndata %f0, %f2, %f4
528
529         alignaddr %i2, %g0, %l2
530         ldd [%l2], %f6
531         ldd [%l2+8], %f8
532         faligndata %f6, %f8, %f10
533
534         add %i0, %i1, %i0
535         add %i2, %i3, %i2
536         pdist %f4, %f10, %f12
537
538         alignaddr %i0, %g0, %l0 
539         ldd [%l0], %f0
540         ldd [%l0+8], %f2
541         faligndata %f0, %f2, %f4
542
543         alignaddr %i2, %g0, %l2
544         ldd [%l2], %f6
545         ldd [%l2+8], %f8
546         faligndata %f6, %f8, %f10
547
548         add %i0, 8, %i0
549         add %i2, 8, %i2
550         pdist %f4, %f10, %f12
551
552         alignaddr %i0, %g0, %l0 
553         ldd [%l0], %f0
554         ldd [%l0+8], %f2
555         faligndata %f0, %f2, %f4
556
557         alignaddr %i2, %g0, %l2
558         ldd [%l2], %f6
559         ldd [%l2+8], %f8
560         faligndata %f6, %f8, %f10
561
562         add %i0, %i1, %i0
563         add %i2, %i3, %i2
564         pdist %f4, %f10, %f12
565
566         alignaddr %i0, %g0, %l0 
567         ldd [%l0], %f0
568         ldd [%l0+8], %f2
569         faligndata %f0, %f2, %f4
570
571         alignaddr %i2, %g0, %l2
572         ldd [%l2], %f6
573         ldd [%l2+8], %f8
574         faligndata %f6, %f8, %f10
575
576         add %i0, 8, %i0
577         add %i2, 8, %i2
578         pdist %f4, %f10, %f12
579
580         alignaddr %i0, %g0, %l0 
581         ldd [%l0], %f0
582         ldd [%l0+8], %f2
583         faligndata %f0, %f2, %f4
584
585         alignaddr %i2, %g0, %l2
586         ldd [%l2], %f6
587         ldd [%l2+8], %f8
588         faligndata %f6, %f8, %f10
589
590         add %i0, %i1, %i0
591         add %i2, %i3, %i2
592         pdist %f4, %f10, %f12
593
594         alignaddr %i0, %g0, %l0 
595         ldd [%l0], %f0
596         ldd [%l0+8], %f2
597         faligndata %f0, %f2, %f4
598
599         alignaddr %i2, %g0, %l2
600         ldd [%l2], %f6
601         ldd [%l2+8], %f8
602         faligndata %f6, %f8, %f10
603
604         add %i0, 8, %i0
605         add %i2, 8, %i2
606         pdist %f4, %f10, %f12
607
608         alignaddr %i0, %g0, %l0 
609         ldd [%l0], %f0
610         ldd [%l0+8], %f2
611         faligndata %f0, %f2, %f4
612
613         alignaddr %i2, %g0, %l2
614         ldd [%l2], %f6
615         ldd [%l2+8], %f8
616         faligndata %f6, %f8, %f10
617
618         add %i0, %i1, %i0
619         add %i2, %i3, %i2
620         pdist %f4, %f10, %f12
621
622         std %f12, [%fp-24]
623         ld [%fp-20], %i0
624
625         ret
626         restore
627
628 .global x264_pixel_sad_16x16_vis
629 x264_pixel_sad_16x16_vis:
630         save %sp, -120, %sp
631
632         fzero %f12                      ! zero out the accumulator used for pdist
633
634         sub %i1, 8, %i1                 ! reduce stride by 8, since we are moving forward 8 each block
635         sub %i3, 8, %i3                 ! same here, reduce stride by 8
636
637         alignaddr %i0, %g0, %l0 
638         ldd [%l0], %f0
639         ldd [%l0+8], %f2
640         faligndata %f0, %f2, %f4
641
642         alignaddr %i2, %g0, %l2
643         ldd [%l2], %f6
644         ldd [%l2+8], %f8
645         faligndata %f6, %f8, %f10
646
647         add %i0, 8, %i0
648         add %i2, 8, %i2
649         pdist %f4, %f10, %f12
650
651         alignaddr %i0, %g0, %l0 
652         ldd [%l0], %f0
653         ldd [%l0+8], %f2
654         faligndata %f0, %f2, %f4
655
656         alignaddr %i2, %g0, %l2
657         ldd [%l2], %f6
658         ldd [%l2+8], %f8
659         faligndata %f6, %f8, %f10
660
661         add %i0, %i1, %i0
662         add %i2, %i3, %i2
663         pdist %f4, %f10, %f12
664
665         alignaddr %i0, %g0, %l0 
666         ldd [%l0], %f0
667         ldd [%l0+8], %f2
668         faligndata %f0, %f2, %f4
669
670         alignaddr %i2, %g0, %l2
671         ldd [%l2], %f6
672         ldd [%l2+8], %f8
673         faligndata %f6, %f8, %f10
674
675         add %i0, 8, %i0
676         add %i2, 8, %i2
677         pdist %f4, %f10, %f12
678
679         alignaddr %i0, %g0, %l0 
680         ldd [%l0], %f0
681         ldd [%l0+8], %f2
682         faligndata %f0, %f2, %f4
683
684         alignaddr %i2, %g0, %l2
685         ldd [%l2], %f6
686         ldd [%l2+8], %f8
687         faligndata %f6, %f8, %f10
688
689         add %i0, %i1, %i0
690         add %i2, %i3, %i2
691         pdist %f4, %f10, %f12
692
693         alignaddr %i0, %g0, %l0 
694         ldd [%l0], %f0
695         ldd [%l0+8], %f2
696         faligndata %f0, %f2, %f4
697
698         alignaddr %i2, %g0, %l2
699         ldd [%l2], %f6
700         ldd [%l2+8], %f8
701         faligndata %f6, %f8, %f10
702
703         add %i0, 8, %i0
704         add %i2, 8, %i2
705         pdist %f4, %f10, %f12
706
707         alignaddr %i0, %g0, %l0 
708         ldd [%l0], %f0
709         ldd [%l0+8], %f2
710         faligndata %f0, %f2, %f4
711
712         alignaddr %i2, %g0, %l2
713         ldd [%l2], %f6
714         ldd [%l2+8], %f8
715         faligndata %f6, %f8, %f10
716
717         add %i0, %i1, %i0
718         add %i2, %i3, %i2
719         pdist %f4, %f10, %f12
720
721         alignaddr %i0, %g0, %l0 
722         ldd [%l0], %f0
723         ldd [%l0+8], %f2
724         faligndata %f0, %f2, %f4
725
726         alignaddr %i2, %g0, %l2
727         ldd [%l2], %f6
728         ldd [%l2+8], %f8
729         faligndata %f6, %f8, %f10
730
731         add %i0, 8, %i0
732         add %i2, 8, %i2
733         pdist %f4, %f10, %f12
734
735         alignaddr %i0, %g0, %l0 
736         ldd [%l0], %f0
737         ldd [%l0+8], %f2
738         faligndata %f0, %f2, %f4
739
740         alignaddr %i2, %g0, %l2
741         ldd [%l2], %f6
742         ldd [%l2+8], %f8
743         faligndata %f6, %f8, %f10
744
745         add %i0, %i1, %i0
746         add %i2, %i3, %i2
747         pdist %f4, %f10, %f12
748
749         alignaddr %i0, %g0, %l0 
750         ldd [%l0], %f0
751         ldd [%l0+8], %f2
752         faligndata %f0, %f2, %f4
753
754         alignaddr %i2, %g0, %l2
755         ldd [%l2], %f6
756         ldd [%l2+8], %f8
757         faligndata %f6, %f8, %f10
758
759         add %i0, 8, %i0
760         add %i2, 8, %i2
761         pdist %f4, %f10, %f12
762
763         alignaddr %i0, %g0, %l0 
764         ldd [%l0], %f0
765         ldd [%l0+8], %f2
766         faligndata %f0, %f2, %f4
767
768         alignaddr %i2, %g0, %l2
769         ldd [%l2], %f6
770         ldd [%l2+8], %f8
771         faligndata %f6, %f8, %f10
772
773         add %i0, %i1, %i0
774         add %i2, %i3, %i2
775         pdist %f4, %f10, %f12
776
777         alignaddr %i0, %g0, %l0 
778         ldd [%l0], %f0
779         ldd [%l0+8], %f2
780         faligndata %f0, %f2, %f4
781
782         alignaddr %i2, %g0, %l2
783         ldd [%l2], %f6
784         ldd [%l2+8], %f8
785         faligndata %f6, %f8, %f10
786
787         add %i0, 8, %i0
788         add %i2, 8, %i2
789         pdist %f4, %f10, %f12
790
791         alignaddr %i0, %g0, %l0 
792         ldd [%l0], %f0
793         ldd [%l0+8], %f2
794         faligndata %f0, %f2, %f4
795
796         alignaddr %i2, %g0, %l2
797         ldd [%l2], %f6
798         ldd [%l2+8], %f8
799         faligndata %f6, %f8, %f10
800
801         add %i0, %i1, %i0
802         add %i2, %i3, %i2
803         pdist %f4, %f10, %f12
804
805         alignaddr %i0, %g0, %l0 
806         ldd [%l0], %f0
807         ldd [%l0+8], %f2
808         faligndata %f0, %f2, %f4
809
810         alignaddr %i2, %g0, %l2
811         ldd [%l2], %f6
812         ldd [%l2+8], %f8
813         faligndata %f6, %f8, %f10
814
815         add %i0, 8, %i0
816         add %i2, 8, %i2
817         pdist %f4, %f10, %f12
818
819         alignaddr %i0, %g0, %l0 
820         ldd [%l0], %f0
821         ldd [%l0+8], %f2
822         faligndata %f0, %f2, %f4
823
824         alignaddr %i2, %g0, %l2
825         ldd [%l2], %f6
826         ldd [%l2+8], %f8
827         faligndata %f6, %f8, %f10
828
829         add %i0, %i1, %i0
830         add %i2, %i3, %i2
831         pdist %f4, %f10, %f12
832
833         alignaddr %i0, %g0, %l0 
834         ldd [%l0], %f0
835         ldd [%l0+8], %f2
836         faligndata %f0, %f2, %f4
837
838         alignaddr %i2, %g0, %l2
839         ldd [%l2], %f6
840         ldd [%l2+8], %f8
841         faligndata %f6, %f8, %f10
842
843         add %i0, 8, %i0
844         add %i2, 8, %i2
845         pdist %f4, %f10, %f12
846
847         alignaddr %i0, %g0, %l0 
848         ldd [%l0], %f0
849         ldd [%l0+8], %f2
850         faligndata %f0, %f2, %f4
851
852         alignaddr %i2, %g0, %l2
853         ldd [%l2], %f6
854         ldd [%l2+8], %f8
855         faligndata %f6, %f8, %f10
856
857         add %i0, %i1, %i0
858         add %i2, %i3, %i2
859         pdist %f4, %f10, %f12
860
861         alignaddr %i0, %g0, %l0 
862         ldd [%l0], %f0
863         ldd [%l0+8], %f2
864         faligndata %f0, %f2, %f4
865
866         alignaddr %i2, %g0, %l2
867         ldd [%l2], %f6
868         ldd [%l2+8], %f8
869         faligndata %f6, %f8, %f10
870
871         add %i0, 8, %i0
872         add %i2, 8, %i2
873         pdist %f4, %f10, %f12
874
875         alignaddr %i0, %g0, %l0 
876         ldd [%l0], %f0
877         ldd [%l0+8], %f2
878         faligndata %f0, %f2, %f4
879
880         alignaddr %i2, %g0, %l2
881         ldd [%l2], %f6
882         ldd [%l2+8], %f8
883         faligndata %f6, %f8, %f10
884
885         add %i0, %i1, %i0
886         add %i2, %i3, %i2
887         pdist %f4, %f10, %f12
888
889         alignaddr %i0, %g0, %l0 
890         ldd [%l0], %f0
891         ldd [%l0+8], %f2
892         faligndata %f0, %f2, %f4
893
894         alignaddr %i2, %g0, %l2
895         ldd [%l2], %f6
896         ldd [%l2+8], %f8
897         faligndata %f6, %f8, %f10
898
899         add %i0, 8, %i0
900         add %i2, 8, %i2
901         pdist %f4, %f10, %f12
902
903         alignaddr %i0, %g0, %l0 
904         ldd [%l0], %f0
905         ldd [%l0+8], %f2
906         faligndata %f0, %f2, %f4
907
908         alignaddr %i2, %g0, %l2
909         ldd [%l2], %f6
910         ldd [%l2+8], %f8
911         faligndata %f6, %f8, %f10
912
913         add %i0, %i1, %i0
914         add %i2, %i3, %i2
915         pdist %f4, %f10, %f12
916
917         alignaddr %i0, %g0, %l0 
918         ldd [%l0], %f0
919         ldd [%l0+8], %f2
920         faligndata %f0, %f2, %f4
921
922         alignaddr %i2, %g0, %l2
923         ldd [%l2], %f6
924         ldd [%l2+8], %f8
925         faligndata %f6, %f8, %f10
926
927         add %i0, 8, %i0
928         add %i2, 8, %i2
929         pdist %f4, %f10, %f12
930
931         alignaddr %i0, %g0, %l0 
932         ldd [%l0], %f0
933         ldd [%l0+8], %f2
934         faligndata %f0, %f2, %f4
935
936         alignaddr %i2, %g0, %l2
937         ldd [%l2], %f6
938         ldd [%l2+8], %f8
939         faligndata %f6, %f8, %f10
940
941         add %i0, %i1, %i0
942         add %i2, %i3, %i2
943         pdist %f4, %f10, %f12
944
945         alignaddr %i0, %g0, %l0 
946         ldd [%l0], %f0
947         ldd [%l0+8], %f2
948         faligndata %f0, %f2, %f4
949
950         alignaddr %i2, %g0, %l2
951         ldd [%l2], %f6
952         ldd [%l2+8], %f8
953         faligndata %f6, %f8, %f10
954
955         add %i0, 8, %i0
956         add %i2, 8, %i2
957         pdist %f4, %f10, %f12
958
959         alignaddr %i0, %g0, %l0 
960         ldd [%l0], %f0
961         ldd [%l0+8], %f2
962         faligndata %f0, %f2, %f4
963
964         alignaddr %i2, %g0, %l2
965         ldd [%l2], %f6
966         ldd [%l2+8], %f8
967         faligndata %f6, %f8, %f10
968
969         add %i0, %i1, %i0
970         add %i2, %i3, %i2
971         pdist %f4, %f10, %f12
972
973         alignaddr %i0, %g0, %l0 
974         ldd [%l0], %f0
975         ldd [%l0+8], %f2
976         faligndata %f0, %f2, %f4
977
978         alignaddr %i2, %g0, %l2
979         ldd [%l2], %f6
980         ldd [%l2+8], %f8
981         faligndata %f6, %f8, %f10
982
983         add %i0, 8, %i0
984         add %i2, 8, %i2
985         pdist %f4, %f10, %f12
986
987         alignaddr %i0, %g0, %l0 
988         ldd [%l0], %f0
989         ldd [%l0+8], %f2
990         faligndata %f0, %f2, %f4
991
992         alignaddr %i2, %g0, %l2
993         ldd [%l2], %f6
994         ldd [%l2+8], %f8
995         faligndata %f6, %f8, %f10
996
997         add %i0, %i1, %i0
998         add %i2, %i3, %i2
999         pdist %f4, %f10, %f12
1000
1001         alignaddr %i0, %g0, %l0 
1002         ldd [%l0], %f0
1003         ldd [%l0+8], %f2
1004         faligndata %f0, %f2, %f4
1005
1006         alignaddr %i2, %g0, %l2
1007         ldd [%l2], %f6
1008         ldd [%l2+8], %f8
1009         faligndata %f6, %f8, %f10
1010
1011         add %i0, 8, %i0
1012         add %i2, 8, %i2
1013         pdist %f4, %f10, %f12
1014
1015         alignaddr %i0, %g0, %l0 
1016         ldd [%l0], %f0
1017         ldd [%l0+8], %f2
1018         faligndata %f0, %f2, %f4
1019
1020         alignaddr %i2, %g0, %l2
1021         ldd [%l2], %f6
1022         ldd [%l2+8], %f8
1023         faligndata %f6, %f8, %f10
1024
1025         add %i0, %i1, %i0
1026         add %i2, %i3, %i2
1027         pdist %f4, %f10, %f12
1028
1029         alignaddr %i0, %g0, %l0 
1030         ldd [%l0], %f0
1031         ldd [%l0+8], %f2
1032         faligndata %f0, %f2, %f4
1033
1034         alignaddr %i2, %g0, %l2
1035         ldd [%l2], %f6
1036         ldd [%l2+8], %f8
1037         faligndata %f6, %f8, %f10
1038
1039         add %i0, 8, %i0
1040         add %i2, 8, %i2
1041         pdist %f4, %f10, %f12
1042
1043         alignaddr %i0, %g0, %l0 
1044         ldd [%l0], %f0
1045         ldd [%l0+8], %f2
1046         faligndata %f0, %f2, %f4
1047
1048         alignaddr %i2, %g0, %l2
1049         ldd [%l2], %f6
1050         ldd [%l2+8], %f8
1051         faligndata %f6, %f8, %f10
1052
1053         add %i0, %i1, %i0
1054         add %i2, %i3, %i2
1055         pdist %f4, %f10, %f12
1056
1057         alignaddr %i0, %g0, %l0 
1058         ldd [%l0], %f0
1059         ldd [%l0+8], %f2
1060         faligndata %f0, %f2, %f4
1061
1062         alignaddr %i2, %g0, %l2
1063         ldd [%l2], %f6
1064         ldd [%l2+8], %f8
1065         faligndata %f6, %f8, %f10
1066
1067         add %i0, 8, %i0
1068         add %i2, 8, %i2
1069         pdist %f4, %f10, %f12
1070
1071         alignaddr %i0, %g0, %l0 
1072         ldd [%l0], %f0
1073         ldd [%l0+8], %f2
1074         faligndata %f0, %f2, %f4
1075
1076         alignaddr %i2, %g0, %l2
1077         ldd [%l2], %f6
1078         ldd [%l2+8], %f8
1079         faligndata %f6, %f8, %f10
1080
1081         add %i0, %i1, %i0
1082         add %i2, %i3, %i2
1083         pdist %f4, %f10, %f12
1084
1085         std %f12, [%fp-24]
1086         ld [%fp-20], %i0
1087
1088         ret
1089         restore