/* read the pixels */
p = block;
pix = pixels;
- __asm __volatile("pxor %%mm7, %%mm7":::"memory");
+ __asm __volatile("pxor %%mm7, %%mm7":);
for(i=0;i<4;i++) {
__asm __volatile(
"movq %1, %%mm0\n\t"
pix = pixels;
for(i=0;i<2;i++) {
__asm __volatile(
- "movq %4, %%mm0\n\t"
- "movq 8%4, %%mm1\n\t"
- "movq 16%4, %%mm2\n\t"
- "movq 24%4, %%mm3\n\t"
- "movq 32%4, %%mm4\n\t"
- "movq 40%4, %%mm5\n\t"
- "movq 48%4, %%mm6\n\t"
- "movq 56%4, %%mm7\n\t"
+ "movq %3, %%mm0\n\t"
+ "movq 8%3, %%mm1\n\t"
+ "movq 16%3, %%mm2\n\t"
+ "movq 24%3, %%mm3\n\t"
+ "movq 32%3, %%mm4\n\t"
+ "movq 40%3, %%mm5\n\t"
+ "movq 48%3, %%mm6\n\t"
+ "movq 56%3, %%mm7\n\t"
"packuswb %%mm1, %%mm0\n\t"
"packuswb %%mm3, %%mm2\n\t"
"packuswb %%mm5, %%mm4\n\t"
"packuswb %%mm7, %%mm6\n\t"
- "movq %%mm0, %0\n\t"
- "movq %%mm2, %1\n\t"
- "movq %%mm4, %2\n\t"
- "movq %%mm6, %3\n\t"
- :"=m"(*pix), "=m"(*(pix+line_size))
- ,"=m"(*(pix+line_size*2)), "=m"(*(pix+line_size*3))
- :"m"(*p)
+ "movq %%mm0, (%0)\n\t"
+ "movq %%mm2, (%0, %1)\n\t"
+ "movq %%mm4, (%0, %1, 2)\n\t"
+ "movq %%mm6, (%0, %2)\n\t"
+ ::"r" (pix), "r" (line_size), "r" (line_size*3), "m"(*p)
:"memory");
pix += line_size*4;
p += 32;
/* read the pixels */
p = block;
pix = pixels;
- __asm __volatile("pxor %%mm7, %%mm7":::"memory");
+ __asm __volatile("pxor %%mm7, %%mm7":);
for(i=0;i<4;i++) {
__asm __volatile(
"movq %2, %%mm0\n\t"
"packuswb %%mm3, %%mm2\n\t"
"movq %%mm0, %0\n\t"
"movq %%mm2, %1\n\t"
- :"=m"(*pix), "=m"(*(pix+line_size))
+ :"+m"(*pix), "+m"(*(pix+line_size))
:"m"(*p)
:"memory");
pix += line_size*2;
dh=h&3;
while(hh--) {
__asm __volatile(
- "movq %4, %%mm0\n\t"
- "movq %5, %%mm1\n\t"
- "movq %6, %%mm2\n\t"
- "movq %7, %%mm3\n\t"
- "movq %%mm0, %0\n\t"
- "movq %%mm1, %1\n\t"
- "movq %%mm2, %2\n\t"
- "movq %%mm3, %3\n\t"
- :"=m"(*p), "=m"(*(p+line_size)), "=m"(*(p+line_size*2)), "=m"(*(p+line_size*3))
- :"m"(*pix), "m"(*(pix+line_size)), "m"(*(pix+line_size*2)), "m"(*(pix+line_size*3))
+ "movq (%1), %%mm0 \n\t"
+ "movq (%1, %2), %%mm1 \n\t"
+ "movq (%1, %2, 2), %%mm2 \n\t"
+ "movq (%1, %3), %%mm3 \n\t"
+ "movq %%mm0, (%0) \n\t"
+ "movq %%mm1, (%0, %2) \n\t"
+ "movq %%mm2, (%0, %2, 2) \n\t"
+ "movq %%mm3, (%0, %3) \n\t"
+ ::"r"(p), "r"(pix), "r"(line_size), "r"(line_size*3)
:"memory");
pix = pix + line_size*4;
p = p + line_size*4;
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm4\n\t"
- ::"m"(mm_wone):"memory");
+ ::"m"(mm_wone));
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm4\n\t"
- ::"m"(mm_wone):"memory");
+ ::"m"(mm_wone));
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm6\n\t"
- ::"m"(mm_wtwo):"memory");
+ ::"m"(mm_wtwo));
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
const UINT8 *pix;
p = block;
pix = pixels;
- __asm __volatile("pxor %%mm7, %%mm7\n\t":::"memory");
+ __asm __volatile("pxor %%mm7, %%mm7\n\t":);
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
const UINT8 *pix;
p = block;
pix = pixels;
- __asm __volatile("pxor %%mm7, %%mm7\n\t":::"memory");
+ __asm __volatile("pxor %%mm7, %%mm7\n\t":);
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm6\n\t"
- ::"m"(mm_wone):"memory");
+ ::"m"(mm_wone));
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm6\n\t"
- ::"m"(mm_wone):"memory");
+ ::"m"(mm_wone));
do {
__asm __volatile(
"movq %0, %%mm0\n\t"
"psrlw $1, %%mm2\n\t"
"packuswb %%mm2, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix)
:"memory");
pix += line_size;
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm6\n\t"
- ::"m"(mm_wone):"memory");
+ ::"m"(mm_wone));
do {
__asm __volatile(
"movq %1, %%mm1\n\t"
"psrlw $1, %%mm2\n\t"
"packuswb %%mm2, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix)
:"memory");
pix += line_size;
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm6\n\t"
- ::"m"(mm_wone):"memory");
+ ::"m"(mm_wone));
do {
__asm __volatile(
"movq %1, %%mm1\n\t"
"psrlw $1, %%mm2\n\t"
"packuswb %%mm2, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix), "m"(*(pix+line_size))
:"memory");
pix += line_size;
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm6\n\t"
- ::"m"(mm_wtwo):"memory");
+ ::"m"(mm_wtwo));
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
"psrlw $1, %%mm2\n\t"
"packuswb %%mm2, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix),
"m"(*(pix+line_size)), "m"(mm_wone)
:"memory");
const UINT8 *pix;
p = block;
pix = pixels;
- __asm __volatile("pxor %%mm7, %%mm7\n\t":::"memory");
+ __asm __volatile("pxor %%mm7, %%mm7\n\t":);
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
"psrlw $1, %%mm2\n\t"
"packuswb %%mm2, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix)
:"memory");
pix += line_size;
p = block;
pix = pixels;
__asm __volatile(
- "pxor %%mm7, %%mm7\n\t":::"memory");
+ "pxor %%mm7, %%mm7\n\t":);
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
"psrlw $1, %%mm2\n\t"
"packuswb %%mm2, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix)
:"memory");
pix += line_size;
p = block;
pix = pixels;
__asm __volatile(
- "pxor %%mm7, %%mm7\n\t":::"memory");
+ "pxor %%mm7, %%mm7\n\t":);
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
"psrlw $1, %%mm2\n\t"
"packuswb %%mm2, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix), "m"(*(pix+line_size))
:"memory");
pix += line_size;
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm6\n\t"
- ::"m"(mm_wone):"memory");
+ ::"m"(mm_wone));
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
"psrlw $1, %%mm2\n\t"
"packuswb %%mm2, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix),
"m"(*(pix+line_size))
:"memory");
const UINT8 *pix;
p = block;
pix = pixels;
- __asm __volatile("pxor %%mm7, %%mm7":::"memory");
+ __asm __volatile("pxor %%mm7, %%mm7":);
do {
__asm __volatile(
"movq %0, %%mm0\n\t"
"psubsw %%mm3, %%mm1\n\t"
"movq %%mm0, %0\n\t"
"movq %%mm1, 8%0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix)
:"memory");
pix += line_size;
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm6"
- ::"m"(mm_wone):"memory");
+ ::"m"(mm_wone));
do {
__asm __volatile(
"movq %0, %%mm0\n\t"
"psubsw %%mm3, %%mm1\n\t"
"movq %%mm0, %0\n\t"
"movq %%mm1, 8%0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix)
:"memory");
pix += line_size;
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm6"
- ::"m"(mm_wone):"memory");
+ ::"m"(mm_wone));
do {
__asm __volatile(
"movq %0, %%mm0\n\t"
"psubsw %%mm3, %%mm1\n\t"
"movq %%mm0, %0\n\t"
"movq %%mm1, 8%0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix), "m"(*(pix+line_size))
:"memory");
pix += line_size;
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm6\n\t"
- ::"m"(mm_wtwo):"memory");
+ ::"m"(mm_wtwo));
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
"psubsw %%mm2, %%mm3\n\t"
"movq %%mm1, %0\n\t"
"movq %%mm3, 8%0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix),
"m"(*(pix+line_size))
:"memory");
dh=h&3;
while(hh--) {
__asm __volatile(
- "movq %4, %%mm0\n\t"
- "movq 1%4, %%mm1\n\t"
- "movq %5, %%mm2\n\t"
- "movq 1%5, %%mm3\n\t"
- "movq %6, %%mm4\n\t"
- "movq 1%6, %%mm5\n\t"
- "movq %7, %%mm6\n\t"
- "movq 1%7, %%mm7\n\t"
+ "movq (%1), %%mm0\n\t"
+ "movq 1(%1), %%mm1\n\t"
+ "movq (%1, %2), %%mm2\n\t"
+ "movq 1(%1, %2), %%mm3\n\t"
+ "movq (%1, %2, 2), %%mm4\n\t"
+ "movq 1(%1, %2, 2), %%mm5\n\t"
+ "movq (%1, %3), %%mm6\n\t"
+ "movq 1(%1, %3), %%mm7\n\t"
PAVGB" %%mm1, %%mm0\n\t"
PAVGB" %%mm3, %%mm2\n\t"
PAVGB" %%mm5, %%mm4\n\t"
PAVGB" %%mm7, %%mm6\n\t"
- "movq %%mm0, %0\n\t"
- "movq %%mm2, %1\n\t"
- "movq %%mm4, %2\n\t"
- "movq %%mm6, %3\n\t"
- :"=m"(*p), "=m"(*(p+line_size)), "=m"(*(p+line_size*2)), "=m"(*(p+line_size*3))
- :"m"(*pix), "m"(*(pix+line_size)), "m"(*(pix+line_size*2)), "m"(*(pix+line_size*3))
+ "movq %%mm0, (%0)\n\t"
+ "movq %%mm2, (%0, %2)\n\t"
+ "movq %%mm4, (%0, %2, 2)\n\t"
+ "movq %%mm6, (%0, %3)\n\t"
+ ::"r"(p), "r"(pix), "r" (line_size), "r" (line_size*3)
:"memory");
pix += line_size*4; p += line_size*4;
}
dh=h&3;
while(hh--) {
__asm __volatile(
- "movq %0, %%mm0\n\t"
- "movq %4, %%mm1\n\t"
- "movq %1, %%mm2\n\t"
- "movq %5, %%mm3\n\t"
- "movq %2, %%mm4\n\t"
- "movq %6, %%mm5\n\t"
- "movq %3, %%mm6\n\t"
- "movq %7, %%mm7\n\t"
+ "movq (%0), %%mm0\n\t"
+ "movq (%1), %%mm1\n\t"
+ "movq (%0, %2), %%mm2\n\t"
+ "movq (%1, %2), %%mm3\n\t"
+ "movq (%0, %2, 2), %%mm4\n\t"
+ "movq (%1, %2, 2), %%mm5\n\t"
+ "movq (%0, %3), %%mm6\n\t"
+ "movq (%1, %3), %%mm7\n\t"
PAVGB" %%mm1, %%mm0\n\t"
PAVGB" %%mm3, %%mm2\n\t"
PAVGB" %%mm5, %%mm4\n\t"
PAVGB" %%mm7, %%mm6\n\t"
- "movq %%mm0, %0\n\t"
- "movq %%mm2, %1\n\t"
- "movq %%mm4, %2\n\t"
- "movq %%mm6, %3\n\t"
- :"=m"(*p), "=m"(*(p+line_size)), "=m"(*(p+line_size*2)), "=m"(*(p+line_size*3))
- :"m"(*pix), "m"(*(pix+line_size)), "m"(*(pix+line_size*2)), "m"(*(pix+line_size*3))
+ "movq %%mm0, (%0)\n\t"
+ "movq %%mm2, (%0, %2)\n\t"
+ "movq %%mm4, (%0, %2, 2)\n\t"
+ "movq %%mm6, (%0, %3)\n\t"
+ ::"r"(p), "r"(pix), "r" (line_size), "r" (line_size*3)
:"memory");
pix += line_size*4; p += line_size*4;
}
"movq %1, %%mm1\n\t"
PAVGB" %%mm1, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix)
:"memory");
pix += line_size; p += line_size;
PAVGB" %%mm4, %%mm1\n\t"
"movq %%mm0, %0\n\t"
"movq %%mm1, %1\n\t"
- :"=m"(*p), "=m"(*(p+line_size))
+ :"+m"(*p), "+m"(*(p+line_size))
:"m"(*pix), "m"(*(pix+line_size))
:"memory");
pix += line_size*2;
PAVGB" %%mm2, %%mm1\n\t"
PAVGB" %%mm1, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix)
:"memory");
}
PAVGB" %%mm4, %%mm1\n\t"
"movq %%mm0, %0\n\t"
"movq %%mm1, %1\n\t"
- :"=m"(*p), "=m"(*(p+line_size))
+ :"+m"(*p), "+m"(*(p+line_size))
:"m"(*pix), "m"(*(pix+line_size)), "m"(*(pix+line_size*2))
:"memory");
pix += line_size*2;
PAVGB" %%mm2, %%mm1\n\t"
PAVGB" %%mm1, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix), "m"(*(pix+line_size))
:"memory");
}
__asm __volatile(
"pxor %%mm7, %%mm7\n\t"
"movq %0, %%mm6\n\t"
- ::"m"(mm_wtwo):"memory");
+ ::"m"(mm_wtwo));
do {
__asm __volatile(
"movq %1, %%mm0\n\t"
"packuswb %%mm2, %%mm0\n\t"
PAVGB" %0, %%mm0\n\t"
"movq %%mm0, %0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix),
"m"(*(pix+line_size))
:"memory");
p = block;
pix = pixels;
__asm __volatile(
- "pxor %%mm7, %%mm7":::"memory");
+ "pxor %%mm7, %%mm7":);
do {
__asm __volatile(
"movq 1%1, %%mm2\n\t"
"psubsw %%mm3, %%mm1\n\t"
"movq %%mm0, %0\n\t"
"movq %%mm1, 8%0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix)
:"memory");
pix += line_size;
p = block;
pix = pixels;
__asm __volatile(
- "pxor %%mm7, %%mm7":::"memory");
+ "pxor %%mm7, %%mm7":);
do {
__asm __volatile(
"movq %2, %%mm2\n\t"
"psubsw %%mm3, %%mm1\n\t"
"movq %%mm0, %0\n\t"
"movq %%mm1, 8%0\n\t"
- :"=m"(*p)
+ :"+m"(*p)
:"m"(*pix), "m"(*(pix+line_size))
:"memory");
pix += line_size;