PentiumMMX
PentiumÀÇ MMXÀÇ »ç¿ë ¶1.1. MMX¶õ? ¶
1.2. MMXÀÇ Áö¿ø¿©ºÎ ÆÇ´Ü ¶
int MZ_IsMMX(void)
{
static int s_Return = (-1);^I
if(s_Return == (-1))
{
__asm__ __volatile__(
"\n\t"
"movl $1, %%eax\n\t"
"cpuid\n\t"
"xorl %%eax, %%eax\n\t"
"testl $0x800000, %%edx\n\t"
"jz L_Return\n\t"
"incl %%eax\n\t"
"L_Return:\n\t"
"movl %%eax, %0\n\t"
"\n\t"
: "=m"(s_Return)
:
: "ebx"
);
}
return(s_Return);
}
1.3. MMX ¸í·É¾î ¿ä¾àÇ¥ ¶
1.4.1. Inline assembly¿¡ ¾î¶»°Ô Àû¿ëÇÒ °ÍÀΰ¡? ¶
unsigned long long MZ_NopMMX(unsigned long long s_Value)
{
unsigned long long s_Return;
__asm__ volatile(
"\n\t"
"movd %1, %%mm0\n\t"
"movd %%mm0, %0\n\t"
"emms\n\t"
"\n\t"
: "=X"(s_Return)
: "X"(s_Value)
);
return(s_Return);
}
1.5. ¹®¼¸¦ ¸¶Ä¡¸ç ¶
|