Changes in kernel/arch/ia32/include/barrier.h [1ea99cc:7a0359b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32/include/barrier.h
r1ea99cc r7a0359b 36 36 #define KERN_ia32_BARRIER_H_ 37 37 38 #include <trace.h> 39 38 40 /* 39 41 * NOTE: … … 50 52 #define CS_LEAVE_BARRIER() asm volatile ("" ::: "memory") 51 53 52 static inline void cpuid_serialization(void)54 NO_TRACE static inline void cpuid_serialization(void) 53 55 { 54 #ifndef __IN_SHARED_LIBC__55 56 asm volatile ( 56 57 "xorl %%eax, %%eax\n" … … 58 59 ::: "eax", "ebx", "ecx", "edx", "memory" 59 60 ); 60 #else61 /* Must not clobber PIC register ebx */62 asm volatile (63 "movl %%ebx, %%esi\n"64 "xorl %%eax, %%eax\n"65 "cpuid\n"66 "movl %%esi, %%ebx\n"67 ::: "eax", "ecx", "edx", "esi", "memory"68 );69 #endif70 61 } 71 62
Note:
See TracChangeset
for help on using the changeset viewer.