初心者もOK! FreeBSD質問スレッド その79
■ このスレッドは過去ログ倉庫に格納されています
0404名無しさん@お腹いっぱい。
2006/11/07(火) 12:04:41__inline__ void * __memset (void *__s, char __c, size_t __n)
{
register unsigned long int __d0, __d1;
__asm__ __volatile__
("cld\n\t"
"rep; stosb"
: "=&D" (__d0), "=&c" (__d1)
: "a" (__c), "0" (__s), "1" (__n)
: "memory");
return __s;
}
__inline__ void * __memcpy(void * to, const void * from, size_t n)
{
int d0, d1, d2;
__asm__ __volatile__(
"rep ; movsl\n\t"
"testb $2,%b4\n\t"
"je 1f\n\t"
"movsw\n"
"1:\ttestb $1,%b4\n\t"
"je 2f\n\t"
"movsb\n"
"2:"
: "=&c" (d0), "=&D" (d1), "=&S" (d2)
:"0" (n/4), "q" (n),"1" ((long) to),"2" ((long) from)
: "memory");
return (to);
}
■ このスレッドは過去ログ倉庫に格納されています