Lines 101-123
Link Here
|
101 |
* post : mm3 & mm4 : coefs for this position |
101 |
* post : mm3 & mm4 : coefs for this position |
102 |
* mm1 : X vector [0|X] |
102 |
* mm1 : X vector [0|X] |
103 |
* |
103 |
* |
104 |
* modif : eax,ebx |
104 |
* modif : eax,ecx |
105 |
*/ |
105 |
*/ |
106 |
__asm__ __volatile__ ( |
106 |
__asm__ __volatile__ ( |
107 |
"movd %%mm0,%%ebx\n" |
107 |
"movd %%mm0,%%ecx\n" |
108 |
"movq %%mm0,%%mm1\n" |
108 |
"movq %%mm0,%%mm1\n" |
109 |
|
109 |
|
110 |
"andl $15,%%ebx\n" |
110 |
"andl $15,%%ecx\n" |
111 |
"psrlq $32,%%mm1\n" |
111 |
"psrlq $32,%%mm1\n" |
112 |
|
112 |
|
113 |
"shll $6,%%ebx\n" |
113 |
"shll $6,%%ecx\n" |
114 |
"movd %%mm1,%%eax\n" |
114 |
"movd %%mm1,%%eax\n" |
115 |
|
115 |
|
116 |
"addl %0,%%ebx\n" |
116 |
"addl %0,%%ecx\n" |
117 |
"andl $15,%%eax\n" |
117 |
"andl $15,%%eax\n" |
118 |
|
118 |
|
119 |
"movd (%%ebx,%%eax,4),%%mm3\n" |
119 |
"movd (%%ecx,%%eax,4),%%mm3\n" |
120 |
::"m"(precalCoef):"eax","ebx"); |
120 |
::"m"(precalCoef):"eax","ecx"); |
121 |
|
121 |
|
122 |
/* |
122 |
/* |
123 |
* extraction des coefficients... |
123 |
* extraction des coefficients... |
Lines 145-151
Link Here
|
145 |
* post : mm0 : expix1[position] |
145 |
* post : mm0 : expix1[position] |
146 |
* mm2 : expix1[position+largeur] |
146 |
* mm2 : expix1[position+largeur] |
147 |
* |
147 |
* |
148 |
* modif : eax,ebx |
148 |
* modif : eax,ecx |
149 |
*/ |
149 |
*/ |
150 |
psrld_i2r (PERTEDEC,mm0); |
150 |
psrld_i2r (PERTEDEC,mm0); |
151 |
psrld_i2r (PERTEDEC,mm1); |
151 |
psrld_i2r (PERTEDEC,mm1); |
Lines 154-176
Link Here
|
154 |
/*^*/ "movq %%mm3,%%mm5\n" /*^*/ |
154 |
/*^*/ "movq %%mm3,%%mm5\n" /*^*/ |
155 |
|
155 |
|
156 |
"mull %1\n" |
156 |
"mull %1\n" |
157 |
"movd %%mm0,%%ebx\n" |
157 |
"movd %%mm0,%%ecx\n" |
158 |
/*^*/ "punpcklbw %%mm5, %%mm3\n" /*^*/ |
158 |
/*^*/ "punpcklbw %%mm5, %%mm3\n" /*^*/ |
159 |
|
159 |
|
160 |
"addl %%ebx,%%eax\n" |
160 |
"addl %%ecx,%%eax\n" |
161 |
/*^*/ "movq %%mm3,%%mm4\n" /*^*/ |
161 |
/*^*/ "movq %%mm3,%%mm4\n" /*^*/ |
162 |
/*^*/ "movq %%mm3,%%mm5\n" /*^*/ |
162 |
/*^*/ "movq %%mm3,%%mm5\n" /*^*/ |
163 |
|
163 |
|
164 |
"movl %0,%%ebx\n" |
164 |
"movl %0,%%ecx\n" |
165 |
/*^*/ "punpcklbw %%mm5,%%mm3\n" /*^*/ |
165 |
/*^*/ "punpcklbw %%mm5,%%mm3\n" /*^*/ |
166 |
|
166 |
|
167 |
"movq (%%ebx,%%eax,4),%%mm0\n" |
167 |
"movq (%%ecx,%%eax,4),%%mm0\n" |
168 |
/*^*/ "punpckhbw %%mm5,%%mm4\n" /*^*/ |
168 |
/*^*/ "punpckhbw %%mm5,%%mm4\n" /*^*/ |
169 |
|
169 |
|
170 |
"addl %1,%%eax\n" |
170 |
"addl %1,%%eax\n" |
171 |
"movq (%%ebx,%%eax,4),%%mm2\n" |
171 |
"movq (%%ecx,%%eax,4),%%mm2\n" |
172 |
|
172 |
|
173 |
: : "X"(expix1), "X"(prevX):"eax","ebx" |
173 |
: : "X"(expix1), "X"(prevX):"eax","ecx" |
174 |
); |
174 |
); |
175 |
|
175 |
|
176 |
/* |
176 |
/* |