Rev 431 | Rev 501 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 431 | Rev 432 | ||
---|---|---|---|
Line 30... | Line 30... | ||
30 | #define __ia64_BARRIER_H__ |
30 | #define __ia64_BARRIER_H__ |
31 | 31 | ||
32 | /* |
32 | /* |
33 | * TODO: Implement true IA-64 memory barriers for macros below. |
33 | * TODO: Implement true IA-64 memory barriers for macros below. |
34 | */ |
34 | */ |
35 | #define CS_ENTER_BARRIER() __asm__ volatile ("" ::: "memory") |
35 | #define CS_ENTER_BARRIER() memory_barrier() |
36 | #define CS_LEAVE_BARRIER() __asm__ volatile ("" ::: "memory") |
36 | #define CS_LEAVE_BARRIER() memory_barrier() |
37 | 37 | ||
38 | #define memory_barrier() |
38 | #define memory_barrier() __asm__ volatile ("mf\n" ::: "memory") |
39 | #define read_barrier() |
39 | #define read_barrier() memory_barrier() |
40 | #define write_barrier() |
40 | #define write_barrier() memory_barrier() |
41 | 41 | ||
42 | #define srlz_i() __asm__ volatile (";; srlz.i ;;\n" ::: "memory") |
42 | #define srlz_i() __asm__ volatile (";; srlz.i ;;\n" ::: "memory") |
43 | #define srlz_d() __asm__ volatile (";; srlz.d ;;\n" ::: "memory") |
43 | #define srlz_d() __asm__ volatile (";; srlz.d\n" ::: "memory") |
44 | 44 | ||
45 | #endif |
45 | #endif |