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. ¹®¼¸¦ ¸¶Ä¡¸ç ¶
|
You will be given a post of trust and responsibility. |