__asm__ __volatile__ (
" cld\n"
" mov %0, %%eax\n"
+" mov %2, %%edi\n"
" test $0x03, %%edi\n" /* Align to fullword boundary */
" jnz .L1\n"
" mov %1,%%ecx\n" /* Setup count of fullwords to fill */
" stosw\n"
".L2:\n"
: /* no output */
- : "r"(c), "r"(cx), "D"(addr)
- : "%eax", "%ecx");
+ : "m"(c), "r"(cx), "m"(addr)
+ : "%eax", "%ecx", "%edi");
}