Changeset 389f41e in mainline for arch/ia32/include/barrier.h


Ignore:
Timestamp:
2005-11-08T11:57:23Z (20 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5f85c91
Parents:
5b65205
Message:

new build system almost finished

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/ia32/include/barrier.h

    r5b65205 r389f41e  
    4444#define CS_LEAVE_BARRIER()      __asm__ volatile ("" ::: "memory")
    4545
    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")
    5254#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
    5856#endif
    5957
Note: See TracChangeset for help on using the changeset viewer.