193 | | " .endr /* end loop */\n" |
| 193 | " movq (%%esi), %%mm1; /* 8 Pixels from line */\n" |
| 194 | " movq (%%edi), %%mm2; /* 8 Pixels from displaced */\n" |
| 195 | " movq %%mm2 , %%mm3; /* hold a copy of mm2 in mm3 */\n" |
| 196 | " psubusb %%mm1 , %%mm3; /* positive differences between mm2 and mm1 */\n" |
| 197 | " psubusb %%mm2 , %%mm1; /* positive differences between mm1 and mm3 */\n" |
| 198 | " paddusb %%mm3 , %%mm1; /* mm1 now contains abs(mm1-mm2) */\n" |
| 199 | " movq %%mm1 , %%mm2; /* copy mm1 to mm2 */\n" |
| 200 | " punpcklbw %%mm7 , %%mm1; /* unpack mm1 into mm1 and mm2 */\n" |
| 201 | " punpckhbw %%mm7 , %%mm2; /* */\n" |
| 202 | " paddusw %%mm1 , %%mm0; /* add mm1 (stored in mm1 and mm2...) */\n" |
| 203 | " paddusw %%mm2 , %%mm0; /* to mm0 */\n" |
| 204 | " /* */\n" |
| 205 | " movq (%%eax), %%mm1; /* 8 Pixels from line */\n" |
| 206 | " movq (%%edi), %%mm2; /* 8 Pixels from displaced line */\n" |
| 207 | " movq %%mm2 , %%mm3; /* hold a copy of mm2 in mm3 */\n" |
| 208 | " psubusb %%mm1 , %%mm3; /* positive differences between mm2 and mm1 */\n" |
| 209 | " psubusb %%mm2 , %%mm1; /* positive differences between mm1 and mm3 */\n" |
| 210 | " paddusb %%mm3 , %%mm1; /* mm1 now contains abs(mm1-mm2) */\n" |
| 211 | " movq %%mm1 , %%mm2; /* copy mm1 to mm2 */\n" |
| 212 | " punpcklbw %%mm7 , %%mm1; /* unpack mm1 into mm1 and mm2 */\n" |
| 213 | " punpckhbw %%mm7 , %%mm2; /* */\n" |
| 214 | " paddusw %%mm1 , %%mm0; /* add mm1 (stored in mm1 and mm2...) */\n" |
| 215 | " paddusw %%mm2 , %%mm0; /* to mm0 */\n" |
| 216 | " addl $8 , %%esi; /* add 8 to frameaddress */\n" |
| 217 | " addl $8 , %%eax; /* add 8 to frameaddress */\n" |
| 218 | " addl $8 , %%edi; /* add 8 to frameaddress */\n" |
| 219 | " movq (%%esi), %%mm1; /* 8 Pixels from line */\n" |
| 220 | " movq (%%edi), %%mm2; /* 8 Pixels from displaced */\n" |
| 221 | " movq %%mm2 , %%mm3; /* hold a copy of mm2 in mm3 */\n" |
| 222 | " psubusb %%mm1 , %%mm3; /* positive differences between mm2 and mm1 */\n" |
| 223 | " psubusb %%mm2 , %%mm1; /* positive differences between mm1 and mm3 */\n" |
| 224 | " paddusb %%mm3 , %%mm1; /* mm1 now contains abs(mm1-mm2) */\n" |
| 225 | " movq %%mm1 , %%mm2; /* copy mm1 to mm2 */\n" |
| 226 | " punpcklbw %%mm7 , %%mm1; /* unpack mm1 into mm1 and mm2 */\n" |
| 227 | " punpckhbw %%mm7 , %%mm2; /* */\n" |
| 228 | " paddusw %%mm1 , %%mm0; /* add mm1 (stored in mm1 and mm2...) */\n" |
| 229 | " paddusw %%mm2 , %%mm0; /* to mm0 */\n" |
| 230 | " /* */\n" |
| 231 | " movq (%%eax), %%mm1; /* 8 Pixels from line */\n" |
| 232 | " movq (%%edi), %%mm2; /* 8 Pixels from displaced line */\n" |
| 233 | " movq %%mm2 , %%mm3; /* hold a copy of mm2 in mm3 */\n" |
| 234 | " psubusb %%mm1 , %%mm3; /* positive differences between mm2 and mm1 */\n" |
| 235 | " psubusb %%mm2 , %%mm1; /* positive differences between mm1 and mm3 */\n" |
| 236 | " paddusb %%mm3 , %%mm1; /* mm1 now contains abs(mm1-mm2) */\n" |
| 237 | " movq %%mm1 , %%mm2; /* copy mm1 to mm2 */\n" |
| 238 | " punpcklbw %%mm7 , %%mm1; /* unpack mm1 into mm1 and mm2 */\n" |
| 239 | " punpckhbw %%mm7 , %%mm2; /* */\n" |
| 240 | " paddusw %%mm1 , %%mm0; /* add mm1 (stored in mm1 and mm2...) */\n" |
| 241 | " paddusw %%mm2 , %%mm0; /* to mm0 */\n" |
| 242 | " addl $8 , %%esi; /* add 8 to frameaddress */\n" |
| 243 | " addl $8 , %%eax; /* add 8 to frameaddress */\n" |
| 244 | " addl $8 , %%edi; /* add 8 to frameaddress */\n" |
| 245 | |
| 246 | /*" .end end loop \n" */ |