Changeset 0b5ac364 in mainline
- Timestamp:
- 2005-11-08T18:02:44Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e2ec980f
- Parents:
- 0187fd0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/include/barrier.h
r0187fd0 r0b5ac364 30 30 #define __ia32_BARRIER_H__ 31 31 32 #include <arch/types.h> 33 32 34 /* 33 35 * NOTE: … … 44 46 #define CS_LEAVE_BARRIER() __asm__ volatile ("" ::: "memory") 45 47 48 static inline void cpuid_serialization(void) 49 { 50 __asm__ volatile ( 51 "xorl %%eax, %%eax\n" 52 "cpuid\n" 53 ::: "eax", "ebx", "ecx", "edx", "memory" 54 ); 55 } 56 46 57 #ifdef CONFIG_FENCES_P4 47 58 # define memory_barrier() __asm__ volatile ("mfence\n" ::: "memory") … … 49 60 # define write_barrier() __asm__ volatile ("sfence\n" ::: "memory") 50 61 #elif CONFIG_FENCES_P3 51 # define memory_barrier() __asm__ volatile ("\n" ::: "memory")52 # define read_barrier() __asm__ volatile ("\n" ::: "memory")62 # define memory_barrier() cpuid_serialization() 63 # define read_barrier() cpuid_serialization() 53 64 # define write_barrier() __asm__ volatile ("sfence\n" ::: "memory") 65 #else 66 # define memory_barrier() cpuid_serialization() 67 # define read_barrier() cpuid_serialization() 68 # define write_barrier() cpuid_serialization() 54 69 #endif 55 70
Note:
See TracChangeset
for help on using the changeset viewer.