diff --git a/util/udma_barrier.h b/util/udma_barrier.h index 5730576..05281cf 100644 --- a/util/udma_barrier.h +++ b/util/udma_barrier.h @@ -84,6 +84,9 @@ #define udma_to_device_barrier() asm volatile("" ::: "memory") #elif defined(__x86_64__) #define udma_to_device_barrier() asm volatile("" ::: "memory") +#elif defined(__e2k__) +#include +#define udma_to_device_barrier() __builtin_ia32_mfence() #elif defined(__PPC64__) #define udma_to_device_barrier() asm volatile("sync" ::: "memory") #elif defined(__PPC__) @@ -118,6 +121,8 @@ #define udma_from_device_barrier() asm volatile("lock; addl $0,0(%%esp) " ::: "memory") #elif defined(__x86_64__) #define udma_from_device_barrier() asm volatile("lfence" ::: "memory") +#elif defined(__e2k__) +#define udma_from_device_barrier() __builtin_ia32_lfence() #elif defined(__PPC64__) #define udma_from_device_barrier() asm volatile("lwsync" ::: "memory") #elif defined(__PPC__) @@ -184,6 +189,8 @@ #define mmio_flush_writes() asm volatile("lock; addl $0,0(%%esp) " ::: "memory") #elif defined(__x86_64__) #define mmio_flush_writes() asm volatile("sfence" ::: "memory") +#elif defined(__e2k__) +#define mmio_flush_writes() __builtin_ia32_sfence() #elif defined(__PPC64__) #define mmio_flush_writes() asm volatile("sync" ::: "memory") #elif defined(__PPC__)