[clang] Fixes for the clang compiler.
authorGerd Zellweger <mail@gerdzellweger.com>
Thu, 11 Dec 2014 21:22:16 +0000 (22:22 +0100)
committerGerd Zellweger <mail@gerdzellweger.com>
Thu, 18 Dec 2014 09:26:52 +0000 (10:26 +0100)
kernel/arch/x86_64/syscall.c
kernel/arch/x86_64/vmkit.c
lib/nfs/nfs_xdr.c
usr/bench/bench.c
usr/examples/xmpl-trace/trace.c

index 7580a7c..e972476 100644 (file)
@@ -328,21 +328,6 @@ static struct sysret monitor_handle_register(struct capability *kernel_cap,
     return sr;
 }
 
-static inline void __monitor(const void *eax, unsigned long ecx,
-                 unsigned long edx)
-{
-    /* "monitor %eax, %ecx, %edx;" */
-    __asm__ __volatile__ (".byte 0x0f, 0x01, 0xc8;"
-                          :: "a" (eax), "c" (ecx), "d"(edx));
-}
-
-static inline void __mwait(unsigned long eax, unsigned long ecx)
-{
-    /* "mwait %eax, %ecx;" */
-    __asm__ __volatile__ (".byte 0x0f, 0x01, 0xc9;"
-                          :: "a" (eax), "c" (ecx));
-}
-
 static struct sysret monitor_get_core_id(struct capability *kernel_cap,
                                          int cmd, uintptr_t *args)
 {
index 4849f1a..4f6ad5e 100644 (file)
@@ -133,7 +133,7 @@ vm_exec (struct dcb *dcb)
     register uintptr_t rbp __asm("rbp") = ctrl->regs.rbp;
 
     __asm volatile ("sti\n\t"       // allow intr to happen inside the host
-                    "vmrun\n\t"     // execute the guest
+                    "vmrun %%rax\n\t"     // execute the guest
                     "cli\n\t"       // disable intr in the host again
                     "stgi\n\t"      // enable the global intr flag
         : "+r" (rbx), "+r" (rcx), "+r" (rdx), "+r" (rbp), "+r" (rsi), "+r" (rdi),
@@ -150,7 +150,7 @@ vm_exec (struct dcb *dcb)
 
     __asm volatile ("mov %[nrbp], %%rbp\n\t"
                     "sti\n\t"       // allow intr to happen inside the host
-                    "vmrun\n\t"     // execute the guest
+                    "vmrun %%rax\n\t"     // execute the guest
                     "cli\n\t"       // disable intr in the host again
                     "stgi\n\t"      // enable the global intr flag
                     "mov %%rbp, %[nrbp]\n\t"
@@ -182,12 +182,12 @@ vm_exec (struct dcb *dcb)
 
 static inline void
 vmload (lpaddr_t vmcb) {
-    __asm volatile ("vmload" : : "a" (vmcb) : "memory");
+    __asm volatile ("vmload %%rax" : : "a" (vmcb) : "memory");
 }
 
 static inline void
 vmsave (lpaddr_t vmcb) {
-    __asm volatile ("vmsave" : : "a" (vmcb) : "memory");
+    __asm volatile ("vmsave %%rax" : : "a" (vmcb) : "memory");
 }
 
 static inline void
index 52f7fdd..661a607 100644 (file)
@@ -191,16 +191,11 @@ xdr_post_op_attr (XDR *xdrs, post_op_attr *objp)
 {
      if (!xdr_bool (xdrs, &objp->attributes_follow))
          return FALSE;
-    switch (objp->attributes_follow) {
-    case TRUE:
+    if (objp->attributes_follow) {
          if (!xdr_fattr3 (xdrs, &objp->post_op_attr_u.attributes))
              return FALSE;
-        break;
-    case FALSE:
-        break;
-    default:
-        return FALSE;
     }
+
     return TRUE;
 }
 
@@ -221,15 +216,9 @@ xdr_pre_op_attr (XDR *xdrs, pre_op_attr *objp)
 {
      if (!xdr_bool (xdrs, &objp->attributes_follow))
          return FALSE;
-    switch (objp->attributes_follow) {
-    case TRUE:
+    if (objp->attributes_follow) {
          if (!xdr_wcc_attr (xdrs, &objp->pre_op_attr_u.attributes))
              return FALSE;
-        break;
-    case FALSE:
-        break;
-    default:
-        return FALSE;
     }
     return TRUE;
 }
@@ -249,15 +238,9 @@ xdr_post_op_fh3 (XDR *xdrs, post_op_fh3 *objp)
 {
      if (!xdr_bool (xdrs, &objp->handle_follows))
          return FALSE;
-    switch (objp->handle_follows) {
-    case TRUE:
+    if (objp->handle_follows) {
          if (!xdr_nfs_fh3 (xdrs, &objp->post_op_fh3_u.handle))
              return FALSE;
-        break;
-    case FALSE:
-        break;
-    default:
-        return FALSE;
     }
     return TRUE;
 }
@@ -275,13 +258,9 @@ xdr_set_mode3 (XDR *xdrs, set_mode3 *objp)
 {
      if (!xdr_bool (xdrs, &objp->set_it))
          return FALSE;
-    switch (objp->set_it) {
-    case TRUE:
+    if (objp->set_it) {
          if (!xdr_mode3 (xdrs, &objp->set_mode3_u.mode))
              return FALSE;
-        break;
-    default:
-        break;
     }
     return TRUE;
 }
@@ -291,13 +270,9 @@ xdr_set_uid3 (XDR *xdrs, set_uid3 *objp)
 {
      if (!xdr_bool (xdrs, &objp->set_it))
          return FALSE;
-    switch (objp->set_it) {
-    case TRUE:
+    if (objp->set_it) {
          if (!xdr_uid3 (xdrs, &objp->set_uid3_u.uid))
              return FALSE;
-        break;
-    default:
-        break;
     }
     return TRUE;
 }
@@ -307,13 +282,9 @@ xdr_set_gid3 (XDR *xdrs, set_gid3 *objp)
 {
      if (!xdr_bool (xdrs, &objp->set_it))
          return FALSE;
-    switch (objp->set_it) {
-    case TRUE:
+    if (objp->set_it) {
          if (!xdr_gid3 (xdrs, &objp->set_gid3_u.gid))
              return FALSE;
-        break;
-    default:
-        break;
     }
     return TRUE;
 }
@@ -323,13 +294,9 @@ xdr_set_size3 (XDR *xdrs, set_size3 *objp)
 {
      if (!xdr_bool (xdrs, &objp->set_it))
          return FALSE;
-    switch (objp->set_it) {
-    case TRUE:
+    if (objp->set_it) {
          if (!xdr_size3 (xdrs, &objp->set_size3_u.size))
              return FALSE;
-        break;
-    default:
-        break;
     }
     return TRUE;
 }
@@ -431,15 +398,9 @@ xdr_sattrguard3 (XDR *xdrs, sattrguard3 *objp)
 {
      if (!xdr_bool (xdrs, &objp->check))
          return FALSE;
-    switch (objp->check) {
-    case TRUE:
+    if (objp->check) {
          if (!xdr_nfstime3 (xdrs, &objp->sattrguard3_u.obj_ctime))
              return FALSE;
-        break;
-    case FALSE:
-        break;
-    default:
-        return FALSE;
     }
     return TRUE;
 }
index 7decb5c..3112587 100644 (file)
@@ -203,7 +203,7 @@ static void bts_clr_benchmark(void)
 
 static void clr_benchmark(void)
 {
-    uint64_t mem;
+    uint64_t mem = 0;
 
     for(int i = 0; i < MICROBENCH_ITERATIONS; i++) {
         __asm__ __volatile__ (
index b7f6d5e..56fd6cf 100644 (file)
@@ -25,8 +25,6 @@ static void after_prepare(void *arg);
 
 static volatile bool finished;
 
-static volatile int counter = 0;
-
 static errval_t init_tracing(void)
 {
     trace_reset_all();