s390/sysinfo: convert bogomips calculation to C
[sfrench/cifs-2.6.git] / arch / s390 / kernel / sysinfo.c
index 4cd6428bfab2a497d20c528ac176fc3a69fce1e7..1b1be3110cfc111e71ecf06d2c513700a63b59aa 100644 (file)
@@ -447,21 +447,14 @@ void s390_adjust_jiffies(void)
                 * point division ..
                 */
                kernel_fpu_begin(&fpu, KERNEL_FPR);
-               asm volatile(
-                       "       sfpc    %3\n"
-                       "       l       %0,%1\n"
-                       "       tmlh    %0,0xff80\n"
-                       "       jnz     0f\n"
-                       "       cefbr   %%f2,%0\n"
-                       "       j       1f\n"
-                       "0:     le      %%f2,%1\n"
-                       "1:     cefbr   %%f0,%2\n"
-                       "       debr    %%f0,%%f2\n"
-                       "       cgebr   %0,5,%%f0\n"
-                       : "=&d" (capability)
-                       : "Q" (info->capability), "d" (10000000), "d" (0)
-                       : "cc"
-                       );
+               fpu_sfpc(0);
+               if (info->capability & 0xff800000)
+                       fpu_ldgr(2, info->capability);
+               else
+                       fpu_cefbr(2, info->capability);
+               fpu_cefbr(0, 10000000);
+               fpu_debr(0, 2);
+               capability = fpu_cgebr(0, 5);
                kernel_fpu_end(&fpu, KERNEL_FPR);
        } else
                /*