k1om: some fix-ups
authorAdam Turowski <adam.turowski@inf.ethz.ch>
Fri, 30 Jun 2017 15:05:19 +0000 (17:05 +0200)
committerAdam Turowski <adam.turowski@inf.ethz.ch>
Fri, 30 Jun 2017 15:05:19 +0000 (17:05 +0200)
Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>

include/arch/x86_64/machine/atomic.h
lib/libc/Hakefile
lib/msun/src/math_private.h
platforms/Hakefile
tools/weever/lib.c
usr/tests/xeon_phi_test/main_card.c
usr/tests/xeon_phi_test/main_inter_card.c

index c9526f4..dfe85c7 100644 (file)
  */
 #define        mb()    __asm __volatile("mfence;" : : : "memory")
 #define        wmb()   __asm __volatile("sfence;" : : : "memory")
+#ifndef __k1om__
 #define        rmb()   __asm __volatile("lfence;" : : : "memory")
+#else // there is no lfence on Xeon Phi
+#define        rmb()
+#endif
 
 /*
  * Various simple operations on memory, each of which is atomic in the
index 259da0a..9c17b6f 100644 (file)
 
 let
     arch_srcs "x86_64"  = [ "amd64/" ++ x | x <- ["gen/fabs.S", "gen/setjmp.S", "gen/_setjmp.S", "string/memcpy.S", "string/memset.S"]]
-    arch_srcs "k1om"    = [ "x86_64/" ++ x | x <- ["setjmp.S", "memcpy.S", "memset.S"]]
---    arch_srcs "armv7"   = [ "arm/setjmp.S" ]
+    arch_srcs "k1om"    = [ "amd64/" ++ x | x <- ["gen/setjmp.S", "gen/_setjmp.S", "string/memcpy.S", "string/memset.S"]]
     arch_srcs "armv7"   = [ "arm/" ++ x | x <- ["gen/setjmp.S", "string/memcpy.S", "string/memset.S", "aeabi/aeabi_vfp_double.S", "aeabi/aeabi_vfp_float.S"]]
---    arch_srcs "armv7"   = [ "arm/" ++ x | x <- ["gen/setjmp.S", "string/memcpy.S", "string/memset.S"]]
     arch_srcs "armv8"   = [ "aarch64/" ++ x | x <- ["gen/setjmp.S", "gen/fabs.S"]]
     arch_srcs  x        = error ("Unknown architecture for libc: " ++ x)
 in
@@ -31,7 +29,7 @@ in
                         "armv8" ->  [ "aarch64" ]),
         cFiles = [ "gen/assert.c" ] ++ case arch of
                         "x86_64" ->  [ "amd64/gen/flt_rounds.c" ]
-                        "k1om" ->  [ "amd64/gen/flt_rounds.c" ]
+                        "k1om" ->  [ "amd64/gen/flt_rounds.c", "arm/gen/fabs.c" ]
                         "armv7" ->  [ "arm/gen/flt_rounds.c", "arm/gen/fabs.c", "arm/gen/arm_initfini.c",
                             "arm/aeabi/aeabi_atexit.c", "arm/aeabi/aeabi_unwind_cpp.c",
                             "arm/aeabi/aeabi_unwind_exidx.c" ]
index afaf201..e6ae9c4 100644 (file)
@@ -502,7 +502,7 @@ CMPLXL(long double x, long double y)
 
 /* Asm versions of some functions. */
 
-#ifdef __amd64__
+#if defined(__amd64__) && !defined(__k1om__)
 static __inline int
 irint(double x)
 {
@@ -514,7 +514,7 @@ irint(double x)
 #define        HAVE_EFFICIENT_IRINT
 #endif
 
-#ifdef __i386__
+#if defined(__i386__) || defined(__k1om__)
 static __inline int
 irint(double x)
 {
index 018dd0d..8a43335 100644 (file)
@@ -29,8 +29,6 @@ let bin_rcce_lu = [ "/sbin/" ++ f | f <- [
 
     tests_common = [ "/sbin/" ++ f | f <- [
                         "fputest",
-                        "fread_test",
-                        "fscanf_test",
                         "hellotest",
                         "idctest",
                         "memtest",
@@ -64,6 +62,8 @@ let bin_rcce_lu = [ "/sbin/" ++ f | f <- [
                         "bomp_test",
                         "bulk_shm",
                         "cryptotest",
+                        "fread_test",
+                        "fscanf_test",
                         "mdbtest_addr_zero",
                         "mdbtest_range_query",
                         "mem_affinity",
index f826cc4..ba23cb6 100644 (file)
@@ -18,7 +18,7 @@
 #include <stdint.h>
 
 
-void __assert_func(const char *exp, int line, const char *func, const char *file)
+void __assert(const char *func, const char *file, int line, const char *exp)
 {
 /*     panic("elver assertion \"%s\" failed at %s:%d", exp, file, line); */
     for (;;) ;
index 9cb4384..d9bfe45 100644 (file)
@@ -208,15 +208,15 @@ static errval_t msg_open_cb(xphi_dom_id_t domain,
     }
 
     debug_printf("msg_open_cb | Frame base: %016lx, size=%lx\n", id.base,
-                 1UL << id.bits);
+                 id.bytes);
 
     host_frame = msgframe;
 
     host_base = id.base;
 
-    host_frame_sz = (1UL << id.bits);
+    host_frame_sz = id.bytes;
 
-    err = vspace_map_one_frame(&host_buf, 1UL << id.bits, msgframe, NULL, NULL);
+    err = vspace_map_one_frame(&host_buf, id.bytes, msgframe, NULL, NULL);
     if (err_is_fail(err)) {
         USER_PANIC_ERR(err, "Could not map the frame");
     }
@@ -394,4 +394,3 @@ int main(int argc,
                     host_base + 2* XPHI_BENCH_MSG_FRAME_SIZE);
 #endif
 }
-
index 6fda5da..9b69d7d 100644 (file)
@@ -135,13 +135,13 @@ static errval_t msg_open_cb(xphi_dom_id_t domain,
     }
 
     debug_printf("msg_open_cb | Frame base: %016lx, size=%lx, ud:%lx\n", id.base,
-                 1UL << id.bits, usrdata);
+                 id.bytes, usrdata);
 
     remote_frame = msgframe;
 
     remote_base = id.base;
 
-    remote_frame_sz = (1UL << id.bits);
+    remote_frame_sz = id.bytes;
 
     err = vspace_map_one_frame(&remote_buf, remote_frame_sz, msgframe,
     NULL,
@@ -323,4 +323,3 @@ int main(int argc,
         messages_wait_and_handle_next();
     }
 }
-