Changeset 389f41e in mainline for arch/ia32/include/barrier.h
- Timestamp:
- 2005-11-08T11:57:23Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5f85c91
- Parents:
- 5b65205
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/include/barrier.h
r5b65205 r389f41e 44 44 #define CS_LEAVE_BARRIER() __asm__ volatile ("" ::: "memory") 45 45 46 #ifdef __STRONG_ORDERING__ 47 48 #define memory_barrier() 49 #define read_barrier() 50 #define write_barrier() 51 46 #if (FENCES == p4) 47 # define memory_barrier() __asm__ volatile ("mfence\n" ::: "memory") 48 # define read_barrier() __asm__ volatile ("sfence\n" ::: "memory") 49 # define write_barrier() __asm__ volatile ("lfence\n" ::: "memory") 50 #elif (FENCES == p3) 51 # define memory_barrier() __asm__ volatile ("xchgl %%eax,%%eax\n" ::: "memory") 52 # define read_barrier() __asm__ volatile ("sfence\n" ::: "memory") 53 # define write_barrier() __asm__ volatile ("xchgl %%eax,%%eax\n" ::: "memory") 52 54 #else 53 54 #define memory_barrier() __asm__ volatile ("mfence\n" ::: "memory") 55 #define read_barrier() __asm__ volatile ("sfence\n" ::: "memory") 56 #define write_barrier() __asm__ volatile ("lfence\n" ::: "memory") 57 55 # error Unsupported FENCES value 58 56 #endif 59 57
Note:
See TracChangeset
for help on using the changeset viewer.