Subversion Repositories HelenOS

Rev

Rev 3564 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3564 Rev 4343
Line 67... Line 67...
67
        ::: "eax", "ecx", "edx", "esi", "memory"
67
        ::: "eax", "ecx", "edx", "esi", "memory"
68
    );
68
    );
69
#endif
69
#endif
70
}
70
}
71
 
71
 
72
#ifdef CONFIG_FENCES_P4
72
#if defined(CONFIG_FENCES_P4)
73
#   define memory_barrier()     asm volatile ("mfence\n" ::: "memory")
73
#   define memory_barrier()     asm volatile ("mfence\n" ::: "memory")
74
#   define read_barrier()       asm volatile ("lfence\n" ::: "memory")
74
#   define read_barrier()       asm volatile ("lfence\n" ::: "memory")
75
#   ifdef CONFIG_WEAK_MEMORY
75
#   ifdef CONFIG_WEAK_MEMORY
76
#       define write_barrier()  asm volatile ("sfence\n" ::: "memory")
76
#       define write_barrier()  asm volatile ("sfence\n" ::: "memory")
77
#   else
77
#   else
78
#       define write_barrier()  asm volatile( "" ::: "memory");
78
#       define write_barrier()  asm volatile( "" ::: "memory");
79
#   endif
79
#   endif
80
#elif CONFIG_FENCES_P3
80
#elif defined(CONFIG_FENCES_P3)
81
#   define memory_barrier()     cpuid_serialization()
81
#   define memory_barrier()     cpuid_serialization()
82
#   define read_barrier()       cpuid_serialization()
82
#   define read_barrier()       cpuid_serialization()
83
#   ifdef CONFIG_WEAK_MEMORY
83
#   ifdef CONFIG_WEAK_MEMORY
84
#       define write_barrier()  asm volatile ("sfence\n" ::: "memory")
84
#       define write_barrier()  asm volatile ("sfence\n" ::: "memory")
85
#   else
85
#   else