Mercurial > mplayer.hg
annotate mp3lib/dct64_k7.c @ 34252:0d7b77bd5744
Add lmlm4 regression test.
author | cehoyos |
---|---|
date | Thu, 10 Nov 2011 16:06:23 +0000 |
parents | d0f70692a140 |
children |
rev | line source |
---|---|
4148 | 1 /* |
2 * This code was taken from http://www.mpg123.org | |
3 * See ChangeLog of mpg123-0.59s-pre.1 for detail | |
4 * Applied to mplayer by Nick Kurshev <nickols_k@mail.ru> | |
5 * Partial 3dnowex-DSP! optimization by Nick Kurshev | |
6 * | |
7 * TODO: optimize scalar 3dnow! code | |
8 * Warning: Phases 7 & 8 are not tested | |
9 */ | |
10 | |
16989 | 11 #include "config.h" |
12 #include "mangle.h" | |
30167
347d152a5cfa
Refactor real --> float #define to a typedef in a common header.
diego
parents:
27757
diff
changeset
|
13 #include "mpg123.h" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
14 #include "libavutil/x86_cpu.h" |
5291 | 15 |
13918 | 16 static unsigned long long int attribute_used __attribute__((aligned(8))) x_plus_minus_3dnow = 0x8000000000000000ULL; |
12292 | 17 static float attribute_used plus_1f = 1.0; |
4148 | 18 |
23441 | 19 void dct64_MMX_3dnowex(short *a,short *b,real *c) |
4148 | 20 { |
21 char tmp[256]; | |
27757
b5a46071062a
Replace all occurrences of '__volatile__' and '__volatile' by plain 'volatile'.
diego
parents:
27754
diff
changeset
|
22 __asm__ volatile( |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
23 " mov %2,%%"REG_a"\n\t" |
4148 | 24 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
25 " lea 128+%3,%%"REG_d"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
26 " mov %0,%%"REG_S"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
27 " mov %1,%%"REG_D"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
28 " mov $"MANGLE(costab_mmx)",%%"REG_b"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
29 " lea %3,%%"REG_c"\n\t" |
4148 | 30 |
31 /* Phase 1*/ | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
32 " movq (%%"REG_a"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
33 " movq 8(%%"REG_a"), %%mm4\n\t" |
30990 | 34 " movq %%mm0, %%mm3\n\t" |
35 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
36 " pswapd 120(%%"REG_a"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
37 " pswapd 112(%%"REG_a"), %%mm5\n\t" |
30990 | 38 " pfadd %%mm1, %%mm0\n\t" |
39 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
40 " movq %%mm0, (%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
41 " movq %%mm4, 8(%%"REG_d")\n\t" |
30990 | 42 " pfsub %%mm1, %%mm3\n\t" |
43 " pfsub %%mm5, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
44 " pfmul (%%"REG_b"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
45 " pfmul 8(%%"REG_b"), %%mm7\n\t" |
30990 | 46 " pswapd %%mm3, %%mm3\n\t" |
47 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
48 " movq %%mm3, 120(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
49 " movq %%mm7, 112(%%"REG_d")\n\t" |
4148 | 50 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
51 " movq 16(%%"REG_a"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
52 " movq 24(%%"REG_a"), %%mm4\n\t" |
30990 | 53 " movq %%mm0, %%mm3\n\t" |
54 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
55 " pswapd 104(%%"REG_a"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
56 " pswapd 96(%%"REG_a"), %%mm5\n\t" |
30990 | 57 " pfadd %%mm1, %%mm0\n\t" |
58 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
59 " movq %%mm0, 16(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
60 " movq %%mm4, 24(%%"REG_d")\n\t" |
30990 | 61 " pfsub %%mm1, %%mm3\n\t" |
62 " pfsub %%mm5, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
63 " pfmul 16(%%"REG_b"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
64 " pfmul 24(%%"REG_b"), %%mm7\n\t" |
30990 | 65 " pswapd %%mm3, %%mm3\n\t" |
66 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
67 " movq %%mm3, 104(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
68 " movq %%mm7, 96(%%"REG_d")\n\t" |
4148 | 69 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
70 " movq 32(%%"REG_a"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
71 " movq 40(%%"REG_a"), %%mm4\n\t" |
30990 | 72 " movq %%mm0, %%mm3\n\t" |
73 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
74 " pswapd 88(%%"REG_a"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
75 " pswapd 80(%%"REG_a"), %%mm5\n\t" |
30990 | 76 " pfadd %%mm1, %%mm0\n\t" |
77 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
78 " movq %%mm0, 32(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
79 " movq %%mm4, 40(%%"REG_d")\n\t" |
30990 | 80 " pfsub %%mm1, %%mm3\n\t" |
81 " pfsub %%mm5, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
82 " pfmul 32(%%"REG_b"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
83 " pfmul 40(%%"REG_b"), %%mm7\n\t" |
30990 | 84 " pswapd %%mm3, %%mm3\n\t" |
85 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
86 " movq %%mm3, 88(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
87 " movq %%mm7, 80(%%"REG_d")\n\t" |
4148 | 88 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
89 " movq 48(%%"REG_a"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
90 " movq 56(%%"REG_a"), %%mm4\n\t" |
30990 | 91 " movq %%mm0, %%mm3\n\t" |
92 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
93 " pswapd 72(%%"REG_a"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
94 " pswapd 64(%%"REG_a"), %%mm5\n\t" |
30990 | 95 " pfadd %%mm1, %%mm0\n\t" |
96 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
97 " movq %%mm0, 48(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
98 " movq %%mm4, 56(%%"REG_d")\n\t" |
30990 | 99 " pfsub %%mm1, %%mm3\n\t" |
100 " pfsub %%mm5, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
101 " pfmul 48(%%"REG_b"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
102 " pfmul 56(%%"REG_b"), %%mm7\n\t" |
30990 | 103 " pswapd %%mm3, %%mm3\n\t" |
104 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
105 " movq %%mm3, 72(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
106 " movq %%mm7, 64(%%"REG_d")\n\t" |
4148 | 107 |
108 /* Phase 2*/ | |
109 | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
110 " movq (%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
111 " movq 8(%%"REG_d"), %%mm4\n\t" |
30990 | 112 " movq %%mm0, %%mm3\n\t" |
113 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
114 " pswapd 56(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
115 " pswapd 48(%%"REG_d"), %%mm5\n\t" |
30990 | 116 " pfadd %%mm1, %%mm0\n\t" |
117 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
118 " movq %%mm0, (%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
119 " movq %%mm4, 8(%%"REG_c")\n\t" |
30990 | 120 " pfsub %%mm1, %%mm3\n\t" |
121 " pfsub %%mm5, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
122 " pfmul 64(%%"REG_b"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
123 " pfmul 72(%%"REG_b"), %%mm7\n\t" |
30990 | 124 " pswapd %%mm3, %%mm3\n\t" |
125 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
126 " movq %%mm3, 56(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
127 " movq %%mm7, 48(%%"REG_c")\n\t" |
4148 | 128 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
129 " movq 16(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
130 " movq 24(%%"REG_d"), %%mm4\n\t" |
30990 | 131 " movq %%mm0, %%mm3\n\t" |
132 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
133 " pswapd 40(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
134 " pswapd 32(%%"REG_d"), %%mm5\n\t" |
30990 | 135 " pfadd %%mm1, %%mm0\n\t" |
136 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
137 " movq %%mm0, 16(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
138 " movq %%mm4, 24(%%"REG_c")\n\t" |
30990 | 139 " pfsub %%mm1, %%mm3\n\t" |
140 " pfsub %%mm5, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
141 " pfmul 80(%%"REG_b"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
142 " pfmul 88(%%"REG_b"), %%mm7\n\t" |
30990 | 143 " pswapd %%mm3, %%mm3\n\t" |
144 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
145 " movq %%mm3, 40(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
146 " movq %%mm7, 32(%%"REG_c")\n\t" |
4148 | 147 |
148 /* Phase 3*/ | |
149 | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
150 " movq 64(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
151 " movq 72(%%"REG_d"), %%mm4\n\t" |
30990 | 152 " movq %%mm0, %%mm3\n\t" |
153 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
154 " pswapd 120(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
155 " pswapd 112(%%"REG_d"), %%mm5\n\t" |
30990 | 156 " pfadd %%mm1, %%mm0\n\t" |
157 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
158 " movq %%mm0, 64(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
159 " movq %%mm4, 72(%%"REG_c")\n\t" |
30990 | 160 " pfsubr %%mm1, %%mm3\n\t" |
161 " pfsubr %%mm5, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
162 " pfmul 64(%%"REG_b"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
163 " pfmul 72(%%"REG_b"), %%mm7\n\t" |
30990 | 164 " pswapd %%mm3, %%mm3\n\t" |
165 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
166 " movq %%mm3, 120(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
167 " movq %%mm7, 112(%%"REG_c")\n\t" |
4148 | 168 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
169 " movq 80(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
170 " movq 88(%%"REG_d"), %%mm4\n\t" |
30990 | 171 " movq %%mm0, %%mm3\n\t" |
172 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
173 " pswapd 104(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
174 " pswapd 96(%%"REG_d"), %%mm5\n\t" |
30990 | 175 " pfadd %%mm1, %%mm0\n\t" |
176 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
177 " movq %%mm0, 80(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
178 " movq %%mm4, 88(%%"REG_c")\n\t" |
30990 | 179 " pfsubr %%mm1, %%mm3\n\t" |
180 " pfsubr %%mm5, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
181 " pfmul 80(%%"REG_b"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
182 " pfmul 88(%%"REG_b"), %%mm7\n\t" |
30990 | 183 " pswapd %%mm3, %%mm3\n\t" |
184 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
185 " movq %%mm3, 104(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
186 " movq %%mm7, 96(%%"REG_c")\n\t" |
4148 | 187 |
188 /* Phase 4*/ | |
189 | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
190 " movq 96(%%"REG_b"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
191 " movq 104(%%"REG_b"), %%mm6\n\t" |
4148 | 192 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
193 " movq (%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
194 " movq 8(%%"REG_c"), %%mm4\n\t" |
30990 | 195 " movq %%mm0, %%mm3\n\t" |
196 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
197 " pswapd 24(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
198 " pswapd 16(%%"REG_c"), %%mm5\n\t" |
30990 | 199 " pfadd %%mm1, %%mm0\n\t" |
200 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
201 " movq %%mm0, (%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
202 " movq %%mm4, 8(%%"REG_d")\n\t" |
30990 | 203 " pfsub %%mm1, %%mm3\n\t" |
204 " pfsub %%mm5, %%mm7\n\t" | |
205 " pfmul %%mm2, %%mm3\n\t" | |
206 " pfmul %%mm6, %%mm7\n\t" | |
207 " pswapd %%mm3, %%mm3\n\t" | |
208 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
209 " movq %%mm3, 24(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
210 " movq %%mm7, 16(%%"REG_d")\n\t" |
4148 | 211 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
212 " movq 32(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
213 " movq 40(%%"REG_c"), %%mm4\n\t" |
30990 | 214 " movq %%mm0, %%mm3\n\t" |
215 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
216 " pswapd 56(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
217 " pswapd 48(%%"REG_c"), %%mm5\n\t" |
30990 | 218 " pfadd %%mm1, %%mm0\n\t" |
219 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
220 " movq %%mm0, 32(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
221 " movq %%mm4, 40(%%"REG_d")\n\t" |
30990 | 222 " pfsubr %%mm1, %%mm3\n\t" |
223 " pfsubr %%mm5, %%mm7\n\t" | |
224 " pfmul %%mm2, %%mm3\n\t" | |
225 " pfmul %%mm6, %%mm7\n\t" | |
226 " pswapd %%mm3, %%mm3\n\t" | |
227 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
228 " movq %%mm3, 56(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
229 " movq %%mm7, 48(%%"REG_d")\n\t" |
4148 | 230 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
231 " movq 64(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
232 " movq 72(%%"REG_c"), %%mm4\n\t" |
30990 | 233 " movq %%mm0, %%mm3\n\t" |
234 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
235 " pswapd 88(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
236 " pswapd 80(%%"REG_c"), %%mm5\n\t" |
30990 | 237 " pfadd %%mm1, %%mm0\n\t" |
238 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
239 " movq %%mm0, 64(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
240 " movq %%mm4, 72(%%"REG_d")\n\t" |
30990 | 241 " pfsub %%mm1, %%mm3\n\t" |
242 " pfsub %%mm5, %%mm7\n\t" | |
243 " pfmul %%mm2, %%mm3\n\t" | |
244 " pfmul %%mm6, %%mm7\n\t" | |
245 " pswapd %%mm3, %%mm3\n\t" | |
246 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
247 " movq %%mm3, 88(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
248 " movq %%mm7, 80(%%"REG_d")\n\t" |
4148 | 249 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
250 " movq 96(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
251 " movq 104(%%"REG_c"), %%mm4\n\t" |
30990 | 252 " movq %%mm0, %%mm3\n\t" |
253 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
254 " pswapd 120(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
255 " pswapd 112(%%"REG_c"), %%mm5\n\t" |
30990 | 256 " pfadd %%mm1, %%mm0\n\t" |
257 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
258 " movq %%mm0, 96(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
259 " movq %%mm4, 104(%%"REG_d")\n\t" |
30990 | 260 " pfsubr %%mm1, %%mm3\n\t" |
261 " pfsubr %%mm5, %%mm7\n\t" | |
262 " pfmul %%mm2, %%mm3\n\t" | |
263 " pfmul %%mm6, %%mm7\n\t" | |
264 " pswapd %%mm3, %%mm3\n\t" | |
265 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
266 " movq %%mm3, 120(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
267 " movq %%mm7, 112(%%"REG_d")\n\t" |
4148 | 268 |
269 /* Phase 5 */ | |
270 | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
271 " movq 112(%%"REG_b"), %%mm2\n\t" |
4148 | 272 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
273 " movq (%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
274 " movq 16(%%"REG_d"), %%mm4\n\t" |
30990 | 275 " movq %%mm0, %%mm3\n\t" |
276 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
277 " pswapd 8(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
278 " pswapd 24(%%"REG_d"), %%mm5\n\t" |
30990 | 279 " pfadd %%mm1, %%mm0\n\t" |
280 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
281 " movq %%mm0, (%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
282 " movq %%mm4, 16(%%"REG_c")\n\t" |
30990 | 283 " pfsub %%mm1, %%mm3\n\t" |
284 " pfsubr %%mm5, %%mm7\n\t" | |
285 " pfmul %%mm2, %%mm3\n\t" | |
286 " pfmul %%mm2, %%mm7\n\t" | |
287 " pswapd %%mm3, %%mm3\n\t" | |
288 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
289 " movq %%mm3, 8(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
290 " movq %%mm7, 24(%%"REG_c")\n\t" |
4148 | 291 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
292 " movq 32(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
293 " movq 48(%%"REG_d"), %%mm4\n\t" |
30990 | 294 " movq %%mm0, %%mm3\n\t" |
295 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
296 " pswapd 40(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
297 " pswapd 56(%%"REG_d"), %%mm5\n\t" |
30990 | 298 " pfadd %%mm1, %%mm0\n\t" |
299 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
300 " movq %%mm0, 32(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
301 " movq %%mm4, 48(%%"REG_c")\n\t" |
30990 | 302 " pfsub %%mm1, %%mm3\n\t" |
303 " pfsubr %%mm5, %%mm7\n\t" | |
304 " pfmul %%mm2, %%mm3\n\t" | |
305 " pfmul %%mm2, %%mm7\n\t" | |
306 " pswapd %%mm3, %%mm3\n\t" | |
307 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
308 " movq %%mm3, 40(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
309 " movq %%mm7, 56(%%"REG_c")\n\t" |
4148 | 310 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
311 " movq 64(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
312 " movq 80(%%"REG_d"), %%mm4\n\t" |
30990 | 313 " movq %%mm0, %%mm3\n\t" |
314 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
315 " pswapd 72(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
316 " pswapd 88(%%"REG_d"), %%mm5\n\t" |
30990 | 317 " pfadd %%mm1, %%mm0\n\t" |
318 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
319 " movq %%mm0, 64(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
320 " movq %%mm4, 80(%%"REG_c")\n\t" |
30990 | 321 " pfsub %%mm1, %%mm3\n\t" |
322 " pfsubr %%mm5, %%mm7\n\t" | |
323 " pfmul %%mm2, %%mm3\n\t" | |
324 " pfmul %%mm2, %%mm7\n\t" | |
325 " pswapd %%mm3, %%mm3\n\t" | |
326 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
327 " movq %%mm3, 72(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
328 " movq %%mm7, 88(%%"REG_c")\n\t" |
4148 | 329 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
330 " movq 96(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
331 " movq 112(%%"REG_d"), %%mm4\n\t" |
30990 | 332 " movq %%mm0, %%mm3\n\t" |
333 " movq %%mm4, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
334 " pswapd 104(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
335 " pswapd 120(%%"REG_d"), %%mm5\n\t" |
30990 | 336 " pfadd %%mm1, %%mm0\n\t" |
337 " pfadd %%mm5, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
338 " movq %%mm0, 96(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
339 " movq %%mm4, 112(%%"REG_c")\n\t" |
30990 | 340 " pfsub %%mm1, %%mm3\n\t" |
341 " pfsubr %%mm5, %%mm7\n\t" | |
342 " pfmul %%mm2, %%mm3\n\t" | |
343 " pfmul %%mm2, %%mm7\n\t" | |
344 " pswapd %%mm3, %%mm3\n\t" | |
345 " pswapd %%mm7, %%mm7\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
346 " movq %%mm3, 104(%%"REG_c")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
347 " movq %%mm7, 120(%%"REG_c")\n\t" |
4148 | 348 |
349 | |
350 /* Phase 6. This is the end of easy road. */ | |
351 /* Code below is coded in scalar mode. Should be optimized */ | |
352 | |
30990 | 353 " movd "MANGLE(plus_1f)", %%mm6\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
354 " punpckldq 120(%%"REG_b"), %%mm6\n\t" /* mm6 = 1.0 | 120(%%"REG_b")*/ |
30990 | 355 " movq "MANGLE(x_plus_minus_3dnow)", %%mm7\n\t" /* mm7 = +1 | -1 */ |
4148 | 356 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
357 " movq 32(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
358 " movq 64(%%"REG_c"), %%mm2\n\t" |
30990 | 359 " movq %%mm0, %%mm1\n\t" |
360 " movq %%mm2, %%mm3\n\t" | |
361 " pxor %%mm7, %%mm1\n\t" | |
362 " pxor %%mm7, %%mm3\n\t" | |
363 " pfacc %%mm1, %%mm0\n\t" | |
364 " pfacc %%mm3, %%mm2\n\t" | |
365 " pfmul %%mm6, %%mm0\n\t" | |
366 " pfmul %%mm6, %%mm2\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
367 " movq %%mm0, 32(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
368 " movq %%mm2, 64(%%"REG_d")\n\t" |
4148 | 369 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
370 " movd 44(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
371 " movd 40(%%"REG_c"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
372 " movd 120(%%"REG_b"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
373 " punpckldq 76(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
374 " punpckldq 72(%%"REG_c"), %%mm2\n\t" |
30990 | 375 " punpckldq %%mm3, %%mm3\n\t" |
376 " movq %%mm0, %%mm4\n\t" | |
377 " movq %%mm2, %%mm5\n\t" | |
378 " pfsub %%mm2, %%mm0\n\t" | |
379 " pfmul %%mm3, %%mm0\n\t" | |
380 " movq %%mm0, %%mm1\n\t" | |
381 " pfadd %%mm5, %%mm0\n\t" | |
382 " pfadd %%mm4, %%mm0\n\t" | |
383 " movq %%mm0, %%mm2\n\t" | |
384 " punpckldq %%mm1, %%mm0\n\t" | |
385 " punpckhdq %%mm1, %%mm2\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
386 " movq %%mm0, 40(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
387 " movq %%mm2, 72(%%"REG_d")\n\t" |
4148 | 388 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
389 " movd 48(%%"REG_c"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
390 " movd 60(%%"REG_c"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
391 " pfsub 52(%%"REG_c"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
392 " pfsub 56(%%"REG_c"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
393 " pfmul 120(%%"REG_b"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
394 " pfmul 120(%%"REG_b"), %%mm2\n\t" |
30990 | 395 " movq %%mm2, %%mm1\n\t" |
4148 | 396 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
397 " pfadd 56(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
398 " pfadd 60(%%"REG_c"), %%mm1\n\t" |
30990 | 399 " movq %%mm1, %%mm0\n\t" |
4148 | 400 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
401 " pfadd 48(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
402 " pfadd 52(%%"REG_c"), %%mm0\n\t" |
30990 | 403 " pfadd %%mm3, %%mm1\n\t" |
404 " punpckldq %%mm2, %%mm1\n\t" | |
405 " pfadd %%mm3, %%mm2\n\t" | |
406 " punpckldq %%mm2, %%mm0\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
407 " movq %%mm1, 56(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
408 " movq %%mm0, 48(%%"REG_d")\n\t" |
4148 | 409 |
410 /*---*/ | |
411 | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
412 " movd 92(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
413 " pfsub 88(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
414 " pfmul 120(%%"REG_b"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
415 " movd %%mm1, 92(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
416 " pfadd 92(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
417 " pfadd 88(%%"REG_c"), %%mm1\n\t" |
30990 | 418 " movq %%mm1, %%mm0\n\t" |
4148 | 419 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
420 " pfadd 80(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
421 " pfadd 84(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
422 " movd %%mm0, 80(%%"REG_d")\n\t" |
4148 | 423 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
424 " movd 80(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
425 " pfsub 84(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
426 " pfmul 120(%%"REG_b"), %%mm0\n\t" |
30990 | 427 " pfadd %%mm0, %%mm1\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
428 " pfadd 92(%%"REG_d"), %%mm0\n\t" |
30990 | 429 " punpckldq %%mm1, %%mm0\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
430 " movq %%mm0, 84(%%"REG_d")\n\t" |
4148 | 431 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
432 " movq 96(%%"REG_c"), %%mm0\n\t" |
30990 | 433 " movq %%mm0, %%mm1\n\t" |
434 " pxor %%mm7, %%mm1\n\t" | |
435 " pfacc %%mm1, %%mm0\n\t" | |
436 " pfmul %%mm6, %%mm0\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
437 " movq %%mm0, 96(%%"REG_d")\n\t" |
4148 | 438 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
439 " movd 108(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
440 " pfsub 104(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
441 " pfmul 120(%%"REG_b"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
442 " movd %%mm0, 108(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
443 " pfadd 104(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
444 " pfadd 108(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
445 " movd %%mm0, 104(%%"REG_d")\n\t" |
4148 | 446 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
447 " movd 124(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
448 " pfsub 120(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
449 " pfmul 120(%%"REG_b"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
450 " movd %%mm1, 124(%%"REG_d")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
451 " pfadd 120(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
452 " pfadd 124(%%"REG_c"), %%mm1\n\t" |
30990 | 453 " movq %%mm1, %%mm0\n\t" |
4148 | 454 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
455 " pfadd 112(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
456 " pfadd 116(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
457 " movd %%mm0, 112(%%"REG_d")\n\t" |
4148 | 458 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
459 " movd 112(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
460 " pfsub 116(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
461 " pfmul 120(%%"REG_b"), %%mm0\n\t" |
30990 | 462 " pfadd %%mm0,%%mm1\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
463 " pfadd 124(%%"REG_d"), %%mm0\n\t" |
30990 | 464 " punpckldq %%mm1, %%mm0\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
465 " movq %%mm0, 116(%%"REG_d")\n\t" |
4148 | 466 |
20504
27fb949fffa9
disable nonworking/broken code for now till I find out what it is supposed to do.
reimar
parents:
18834
diff
changeset
|
467 // this code is broken, there is nothing modifying the z flag above. |
27fb949fffa9
disable nonworking/broken code for now till I find out what it is supposed to do.
reimar
parents:
18834
diff
changeset
|
468 #if 0 |
30990 | 469 " jnz .L01\n\t" |
4148 | 470 |
471 /* Phase 7*/ | |
472 /* Code below is coded in scalar mode. Should be optimized */ | |
473 | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
474 " movd (%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
475 " pfadd 4(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
476 " movd %%mm0, 1024(%%"REG_S")\n\t" |
4148 | 477 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
478 " movd (%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
479 " pfsub 4(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
480 " pfmul 120(%%"REG_b"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
481 " movd %%mm0, (%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
482 " movd %%mm0, (%%"REG_D")\n\t" |
4148 | 483 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
484 " movd 12(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
485 " pfsub 8(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
486 " pfmul 120(%%"REG_b"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
487 " movd %%mm0, 512(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
488 " pfadd 12(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
489 " pfadd 8(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
490 " movd %%mm0, 512(%%"REG_S")\n\t" |
4148 | 491 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
492 " movd 16(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
493 " pfsub 20(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
494 " pfmul 120(%%"REG_b"), %%mm0\n\t" |
30990 | 495 " movq %%mm0, %%mm3\n\t" |
4148 | 496 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
497 " movd 28(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
498 " pfsub 24(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
499 " pfmul 120(%%"REG_b"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
500 " movd %%mm0, 768(%%"REG_D")\n\t" |
30990 | 501 " movq %%mm0, %%mm2\n\t" |
4148 | 502 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
503 " pfadd 24(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
504 " pfadd 28(%%"REG_c"), %%mm0\n\t" |
30990 | 505 " movq %%mm0, %%mm1\n\t" |
4148 | 506 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
507 " pfadd 16(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
508 " pfadd 20(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
509 " movd %%mm0, 768(%%"REG_S")\n\t" |
30990 | 510 " pfadd %%mm3, %%mm1\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
511 " movd %%mm1, 256(%%"REG_S")\n\t" |
30990 | 512 " pfadd %%mm3, %%mm2\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
513 " movd %%mm2, 256(%%"REG_D")\n\t" |
4148 | 514 |
515 /* Phase 8*/ | |
516 | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
517 " movq 32(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
518 " movq 48(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
519 " pfadd 48(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
520 " pfadd 40(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
521 " movd %%mm0, 896(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
522 " movd %%mm1, 640(%%"REG_S")\n\t" |
30990 | 523 " psrlq $32, %%mm0\n\t" |
524 " psrlq $32, %%mm1\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
525 " movd %%mm0, 128(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
526 " movd %%mm1, 384(%%"REG_D")\n\t" |
4148 | 527 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
528 " movd 40(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
529 " pfadd 56(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
530 " movd %%mm0, 384(%%"REG_S")\n\t" |
4148 | 531 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
532 " movd 56(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
533 " pfadd 36(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
534 " movd %%mm0, 128(%%"REG_S")\n\t" |
4148 | 535 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
536 " movd 60(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
537 " movd %%mm0, 896(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
538 " pfadd 44(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
539 " movd %%mm0, 640(%%"REG_D")\n\t" |
4148 | 540 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
541 " movq 96(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
542 " movq 112(%%"REG_d"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
543 " movq 104(%%"REG_d"), %%mm4\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
544 " pfadd 112(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
545 " pfadd 104(%%"REG_d"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
546 " pfadd 120(%%"REG_d"), %%mm4\n\t" |
30990 | 547 " movq %%mm0, %%mm1\n\t" |
548 " movq %%mm2, %%mm3\n\t" | |
549 " movq %%mm4, %%mm5\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
550 " pfadd 64(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
551 " pfadd 80(%%"REG_d"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
552 " pfadd 72(%%"REG_d"), %%mm4\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
553 " movd %%mm0, 960(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
554 " movd %%mm2, 704(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
555 " movd %%mm4, 448(%%"REG_S")\n\t" |
30990 | 556 " psrlq $32, %%mm0\n\t" |
557 " psrlq $32, %%mm2\n\t" | |
558 " psrlq $32, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
559 " movd %%mm0, 64(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
560 " movd %%mm2, 320(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
561 " movd %%mm4, 576(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
562 " pfadd 80(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
563 " pfadd 72(%%"REG_d"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
564 " pfadd 88(%%"REG_d"), %%mm5\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
565 " movd %%mm1, 832(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
566 " movd %%mm3, 576(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
567 " movd %%mm5, 320(%%"REG_S")\n\t" |
30990 | 568 " psrlq $32, %%mm1\n\t" |
569 " psrlq $32, %%mm3\n\t" | |
570 " psrlq $32, %%mm5\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
571 " movd %%mm1, 192(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
572 " movd %%mm3, 448(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
573 " movd %%mm5, 704(%%"REG_D")\n\t" |
4148 | 574 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
575 " movd 120(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
576 " pfadd 100(%%"REG_d"), %%mm0\n\t" |
30990 | 577 " movq %%mm0, %%mm1\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
578 " pfadd 88(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
579 " movd %%mm0, 192(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
580 " pfadd 68(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
581 " movd %%mm1, 64(%%"REG_S")\n\t" |
4148 | 582 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
583 " movd 124(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
584 " movd %%mm0, 960(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
585 " pfadd 92(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
586 " movd %%mm0, 832(%%"REG_D")\n\t" |
4148 | 587 |
30990 | 588 " jmp .L_bye\n\t" |
589 ".L01: \n\t" | |
20504
27fb949fffa9
disable nonworking/broken code for now till I find out what it is supposed to do.
reimar
parents:
18834
diff
changeset
|
590 #endif |
4148 | 591 /* Phase 9*/ |
592 | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
593 " movq (%%"REG_c"), %%mm0\n\t" |
30990 | 594 " movq %%mm0, %%mm1\n\t" |
595 " pxor %%mm7, %%mm1\n\t" | |
596 " pfacc %%mm1, %%mm0\n\t" | |
597 " pfmul %%mm6, %%mm0\n\t" | |
598 " pf2iw %%mm0, %%mm0\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
599 " movd %%mm0, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
600 " movw %%ax, 512(%%"REG_S")\n\t" |
30990 | 601 " psrlq $32, %%mm0\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
602 " movd %%mm0, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
603 " movw %%ax, (%%"REG_S")\n\t" |
4148 | 604 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
605 " movd 12(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
606 " pfsub 8(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
607 " pfmul 120(%%"REG_b"), %%mm0\n\t" |
30990 | 608 " pf2iw %%mm0, %%mm7\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
609 " movd %%mm7, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
610 " movw %%ax, 256(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
611 " pfadd 12(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
612 " pfadd 8(%%"REG_c"), %%mm0\n\t" |
30990 | 613 " pf2iw %%mm0, %%mm0\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
614 " movd %%mm0, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
615 " movw %%ax, 256(%%"REG_S")\n\t" |
4148 | 616 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
617 " movd 16(%%"REG_c"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
618 " pfsub 20(%%"REG_c"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
619 " pfmul 120(%%"REG_b"), %%mm3\n\t" |
30990 | 620 " movq %%mm3, %%mm2\n\t" |
4148 | 621 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
622 " movd 28(%%"REG_c"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
623 " pfsub 24(%%"REG_c"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
624 " pfmul 120(%%"REG_b"), %%mm2\n\t" |
30990 | 625 " movq %%mm2, %%mm1\n\t" |
4148 | 626 |
30990 | 627 " pf2iw %%mm2, %%mm7\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
628 " movd %%mm7, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
629 " movw %%ax, 384(%%"REG_D")\n\t" |
4148 | 630 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
631 " pfadd 24(%%"REG_c"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
632 " pfadd 28(%%"REG_c"), %%mm1\n\t" |
30990 | 633 " movq %%mm1, %%mm0\n\t" |
4148 | 634 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
635 " pfadd 16(%%"REG_c"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
636 " pfadd 20(%%"REG_c"), %%mm0\n\t" |
30990 | 637 " pf2iw %%mm0, %%mm0\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
638 " movd %%mm0, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
639 " movw %%ax, 384(%%"REG_S")\n\t" |
30990 | 640 " pfadd %%mm3, %%mm1\n\t" |
641 " pf2iw %%mm1, %%mm1\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
642 " movd %%mm1, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
643 " movw %%ax, 128(%%"REG_S")\n\t" |
30990 | 644 " pfadd %%mm3, %%mm2\n\t" |
645 " pf2iw %%mm2, %%mm2\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
646 " movd %%mm2, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
647 " movw %%ax, 128(%%"REG_D")\n\t" |
4148 | 648 |
649 /* Phase 10*/ | |
650 | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
651 " movq 32(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
652 " movq 48(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
653 " pfadd 48(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
654 " pfadd 40(%%"REG_d"), %%mm1\n\t" |
30990 | 655 " pf2iw %%mm0, %%mm0\n\t" |
656 " pf2iw %%mm1, %%mm1\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
657 " movd %%mm0, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
658 " movd %%mm1, %%"REG_c"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
659 " movw %%ax, 448(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
660 " movw %%cx, 320(%%"REG_S")\n\t" |
30990 | 661 " psrlq $32, %%mm0\n\t" |
662 " psrlq $32, %%mm1\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
663 " movd %%mm0, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
664 " movd %%mm1, %%"REG_c"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
665 " movw %%ax, 64(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
666 " movw %%cx, 192(%%"REG_D")\n\t" |
4148 | 667 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
668 " movd 40(%%"REG_d"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
669 " movd 56(%%"REG_d"), %%mm4\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
670 " movd 60(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
671 " movd 44(%%"REG_d"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
672 " movd 120(%%"REG_d"), %%mm5\n\t" |
30990 | 673 " punpckldq %%mm4, %%mm3\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
674 " punpckldq 124(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
675 " pfadd 100(%%"REG_d"), %%mm5\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
676 " punpckldq 36(%%"REG_d"), %%mm4\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
677 " punpckldq 92(%%"REG_d"), %%mm2\n\t" |
30990 | 678 " movq %%mm5, %%mm6\n\t" |
679 " pfadd %%mm4, %%mm3\n\t" | |
680 " pf2iw %%mm0, %%mm1\n\t" | |
681 " pf2iw %%mm3, %%mm3\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
682 " pfadd 88(%%"REG_d"), %%mm5\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
683 " movd %%mm1, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
684 " movd %%mm3, %%"REG_c"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
685 " movw %%ax, 448(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
686 " movw %%cx, 192(%%"REG_S")\n\t" |
30990 | 687 " pf2iw %%mm5, %%mm5\n\t" |
688 " psrlq $32, %%mm1\n\t" | |
4148 | 689 " psrlq $32, %%mm3\n\t" |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
690 " movd %%mm5, %%"REG_b"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
691 " movd %%mm1, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
692 " movd %%mm3, %%"REG_c"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
693 " movw %%bx, 96(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
694 " movw %%ax, 480(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
695 " movw %%cx, 64(%%"REG_S")\n\t" |
30990 | 696 " pfadd %%mm2, %%mm0\n\t" |
697 " pf2iw %%mm0, %%mm0\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
698 " movd %%mm0, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
699 " pfadd 68(%%"REG_d"), %%mm6\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
700 " movw %%ax, 320(%%"REG_D")\n\t" |
30990 | 701 " psrlq $32, %%mm0\n\t" |
702 " pf2iw %%mm6, %%mm6\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
703 " movd %%mm0, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
704 " movd %%mm6, %%"REG_b"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
705 " movw %%ax, 416(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
706 " movw %%bx, 32(%%"REG_S")\n\t" |
4148 | 707 |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
708 " movq 96(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
709 " movq 112(%%"REG_d"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
710 " movq 104(%%"REG_d"), %%mm4\n\t" |
30990 | 711 " pfadd %%mm2, %%mm0\n\t" |
712 " pfadd %%mm4, %%mm2\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
713 " pfadd 120(%%"REG_d"), %%mm4\n\t" |
30990 | 714 " movq %%mm0, %%mm1\n\t" |
715 " movq %%mm2, %%mm3\n\t" | |
716 " movq %%mm4, %%mm5\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
717 " pfadd 64(%%"REG_d"), %%mm0\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
718 " pfadd 80(%%"REG_d"), %%mm2\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
719 " pfadd 72(%%"REG_d"), %%mm4\n\t" |
30990 | 720 " pf2iw %%mm0, %%mm0\n\t" |
721 " pf2iw %%mm2, %%mm2\n\t" | |
722 " pf2iw %%mm4, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
723 " movd %%mm0, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
724 " movd %%mm2, %%"REG_c"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
725 " movd %%mm4, %%"REG_b"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
726 " movw %%ax, 480(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
727 " movw %%cx, 352(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
728 " movw %%bx, 224(%%"REG_S")\n\t" |
30990 | 729 " psrlq $32, %%mm0\n\t" |
730 " psrlq $32, %%mm2\n\t" | |
731 " psrlq $32, %%mm4\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
732 " movd %%mm0, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
733 " movd %%mm2, %%"REG_c"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
734 " movd %%mm4, %%"REG_b"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
735 " movw %%ax, 32(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
736 " movw %%cx, 160(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
737 " movw %%bx, 288(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
738 " pfadd 80(%%"REG_d"), %%mm1\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
739 " pfadd 72(%%"REG_d"), %%mm3\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
740 " pfadd 88(%%"REG_d"), %%mm5\n\t" |
30990 | 741 " pf2iw %%mm1, %%mm1\n\t" |
742 " pf2iw %%mm3, %%mm3\n\t" | |
743 " pf2iw %%mm5, %%mm5\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
744 " movd %%mm1, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
745 " movd %%mm3, %%"REG_c"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
746 " movd %%mm5, %%"REG_b"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
747 " movw %%ax, 416(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
748 " movw %%cx, 288(%%"REG_S")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
749 " movw %%bx, 160(%%"REG_S")\n\t" |
30990 | 750 " psrlq $32, %%mm1\n\t" |
751 " psrlq $32, %%mm3\n\t" | |
752 " psrlq $32, %%mm5\n\t" | |
31215
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
753 " movd %%mm1, %%"REG_a"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
754 " movd %%mm3, %%"REG_c"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
755 " movd %%mm5, %%"REG_b"\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
756 " movw %%ax, 96(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
757 " movw %%cx, 224(%%"REG_D")\n\t" |
d0f70692a140
Make 3dnow and MMX code compile for 64 bit (just stupid search-and-replace).
reimar
parents:
30990
diff
changeset
|
758 " movw %%bx, 352(%%"REG_D")\n\t" |
4148 | 759 |
30990 | 760 " movsw\n\t" |
4148 | 761 |
762 ".L_bye:\n\t" | |
30990 | 763 " femms\n\t" |
764 : | |
765 :"m"(a),"m"(b),"m"(c),"m"(tmp[0]) | |
766 :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi"); | |
5842
d6eab895c742
Avoid stdcall on cygwin, it causes undefined ref, code needs testing as I have no athlon or k6-2.
atmos4
parents:
5291
diff
changeset
|
767 } |