Browse Source

fix dereferencing stack on MIC

Samuel Thibault 9 years ago
parent
commit
0cf4ad059d
1 changed files with 6 additions and 1 deletions
  1. 6 1
      include/starpu_util.h

+ 6 - 1
include/starpu_util.h

@@ -219,15 +219,20 @@ STARPU_ATOMIC_SOMETHING(or, old | value)
 #define STARPU_SYNCHRONIZE() __sync_synchronize()
 #elif defined(__i386__)
 #define STARPU_SYNCHRONIZE() __asm__ __volatile__("lock; addl $0,0(%%esp)" ::: "memory")
+#elif defined(__KNC__) || defined(__KNF__)
+#define STARPU_SYNCHRONIZE() __asm__ __volatile__("lock; addl $0,0(%%rsp)" ::: "memory")
 #elif defined(__x86_64__)
 #define STARPU_SYNCHRONIZE() __asm__ __volatile__("mfence" ::: "memory")
 #elif defined(__ppc__) || defined(__ppc64__)
 #define STARPU_SYNCHRONIZE() __asm__ __volatile__("sync" ::: "memory")
 #endif
 
-#if defined(__i386__) || defined(__KNC__) || defined(__KNF__)
+#if defined(__i386__)
 #define STARPU_RMB() __asm__ __volatile__("lock; addl $0,0(%%esp)" ::: "memory")
 #define STARPU_WMB() __asm__ __volatile__("lock; addl $0,0(%%esp)" ::: "memory")
+#elif defined(__KNC__) || defined(__KNF__)
+#define STARPU_RMB() __asm__ __volatile__("lock; addl $0,0(%%rsp)" ::: "memory")
+#define STARPU_WMB() __asm__ __volatile__("lock; addl $0,0(%%rsp)" ::: "memory")
 #elif defined(__x86_64__)
 #define STARPU_RMB() __asm__ __volatile__("lfence" ::: "memory")
 #define STARPU_WMB() __asm__ __volatile__("sfence" ::: "memory")